Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>GetX ScaffoldNew to Visual Studio Code? Get it now.
GetX Scaffold

GetX Scaffold

dragonfenghua

| (0) | Free
Generate Flutter GetX pages, views, builders, and controllers effortlessly from the VS Code Explorer context menu.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GetX Scaffold

Visual Studio Marketplace Version Installs Rating License: MIT

A lightweight and robust Visual Studio Code extension for Flutter developers to generate GetX Scaffold (Page + Controller), GetView, GetBuilder, and GetxController directly from the file Explorer context menu.

一个专为 Flutter 开发者打造的轻量高效 VS Code 扩展,在资源管理器目录右键菜单中提供独立的 GetX 样板代码生成分组(支持 Scaffold、GetView、GetBuilder、Controller)。


✨ Features 特性亮点

  • ⚡ 快速生成:在 VS Code 侧边栏任意文件夹右键即可一键生成对应 GetX 结构。
  • 🧩 四种代码模版:
    • GetX: Scaffold - 一键生成完整页面(含路由快捷导航 to() / off() / offAll() 与延迟加载 Controller 绑定)与控制器。
    • GetX: GetView - 快速生成继承自 GetView<T> 的纯视图组件。
    • GetX: GetBuilder - 快速生成带有私有控制器的内聚局部状态管理组件。
    • GetX: Controller - 生成带有完整生命周期(onInit、onReady、onClose)的独立控制器。
  • 🛡️ 安全保障与原子回滚:当目标文件已存在时自动停止不覆盖;生成多文件遇到错误时自动回滚清理,防止残留脏文件。
  • ⚙️ 灵活定制导入:支持自定义全局或项目级 getxScaffold.getxImport 导入路径。

目录右键命令

在任意目录右击,可以看到以下连续分组:

GetX: Scaffold
GetX: GetView
GetX: GetBuilder
GetX: Controller

每个命令都会弹出名称输入框。支持 UserProfile、user_profile、user-profile 等格式,并直接在当前目录生成文件。

GetX: Scaffold

输入 UserProfile 后生成:

user_profile_page.dart
user_profile_controller.dart

Page 继承 GetView<UserProfileController>,通过 Binding 延迟注册 Controller,并提供:

UserProfilePage.to();
UserProfilePage.off();
UserProfilePage.offAll();

对应模板包含:

static Future<T?>? to<T>() => Get.to<T>(
      () => const UserProfilePage(),
      binding: BindingsBuilder(() {
        Get.lazyPut(UserProfileController.new);
      }),
    );

static Future<T?>? off<T>() => Get.off<T>(
      () => const UserProfilePage(),
      binding: BindingsBuilder(() {
        Get.lazyPut(UserProfileController.new);
      }),
    );

static Future<T?>? offAll<T>() => Get.offAll<T>(
      () => const UserProfilePage(),
      binding: BindingsBuilder(() {
        Get.lazyPut(UserProfileController.new);
      }),
    );

Controller 包含 onInit、onReady 和 onClose 生命周期。

GetX: GetView

输入 UserProfile 后生成:

user_profile_view.dart

核心模板:

class UserProfileView extends GetView<T> {
  const UserProfileView({super.key});

  @override
  Widget build(BuildContext context) {
    return const SizedBox.shrink();
  }
}

GetView<T> 中的 T 是待替换占位符。请将 T 改为实际 Controller;替换前该 Dart 文件无法编译。

GetX: GetBuilder

输入 UserProfile 后生成:

user_profile_widget.dart

文件内同时包含私有 Controller:

class _UserProfileController extends GetxController {}

class UserProfileWidget extends StatelessWidget {
  const UserProfileWidget({super.key});

  @override
  Widget build(BuildContext context) {
    return GetBuilder<_UserProfileController>(
      init: _UserProfileController(),
      builder: (controller) {
        return const SizedBox.shrink();
      },
    );
  }
}

GetX: Controller

输入 UserProfile 后只生成:

user_profile_controller.dart

Controller 包含:

@override
void onInit() {
  super.onInit();
}

@override
void onReady() {
  super.onReady();
}

@override
void onClose() {
  super.onClose();
}

安全策略

  • 任一目标文件已经存在时,整个操作停止,不覆盖文件。
  • Scaffold 多文件生成中途失败时,自动回滚本次已经创建的文件。
  • 成功后自动打开主要文件。
  • 输入取消、为空或非法时不生成文件。

自定义 GetX 导入

默认 GetX 导入为:

package:get/get.dart

可以在 VS Code 用户设置或项目 .vscode/settings.json 中覆盖:

{
  "getxScaffold.getxImport": "package:flutter_base/flutter_base.dart"
}

配置值只填写 Dart URI,不要填写完整的 import 语句。

本地开发

要求:

  • Node.js 22 LTS 或更高版本
  • npm
  • VS Code 1.90 或更高版本

安装依赖:

npm install

打开本项目后按 F5,VS Code 会编译 TypeScript 并启动 Extension Development Host。

检查与测试

npm run check

该命令运行 ESLint、TypeScript 编译和自动化测试。

打包和本地安装

npm run package

产物名称:

getx-scaffold-0.2.0.vsix

在 VS Code 扩展面板右上角选择 Install from VSIX...,然后选择该文件。

License

MIT License,完整文本见插件根目录的 LICENSE 文件。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft