Flutter GetX Generator - VSCode 插件
一个强大的 VSCode 插件,用于快速生成 Flutter GetX 项目的样板代码,提升开发效率。
✨ 功能特性
1. 🚀 初始化项目结构
一键创建标准的 GetX 项目目录结构并生成基础文件:
目录结构:
lib/
├── controllers/
│ ├── theme_controller.dart # 主题管理
│ └── language_controller.dart # 语言管理
├── models/
├── pages/
├── routes/
│ ├── app_routes.dart # 路由常量
│ └── app_pages.dart # 路由配置
├── services/
├── widgets/
│ └── common/
└── core/
├── bindings/
│ └── initial_binding.dart # 全局绑定
├── constants/
│ └── app_constants.dart # 应用常量
├── services/
├── themes/
│ └── app_theme.dart # 主题配置
└── translations/
└── app_translations.dart # 国际化
自动配置依赖:
- ✅ 自动更新
pubspec.yaml 添加常用依赖
- ✅ dio - HTTP 客户端
- ✅ shared_preferences - 本地存储
- ✅ cached_network_image - 图片缓存
- ✅ connectivity_plus - 网络连接检测
- ✅ intl - 国际化支持
- ✅ 其他常用包...
2. 📄 创建 Page(页面三件套)
自动创建完整的页面文件结构:
{name}_page.dart - 页面 UI
{name}_controller.dart - 业务逻辑控制器
{name}_binding.dart - 依赖注入绑定
同时自动更新路由文件:
- 在
app_routes.dart 中添加路由常量
- 在
app_pages.dart 中添加 GetPage 配置
3. 🎮 创建 Controller
快速创建单独的 Controller 文件,包含基础的生命周期方法。
4. 🔧 创建 Service
创建 GetxService 服务类,用于全局服务管理。
5. 📦 创建 Model
生成数据模型类,包含 fromJson 和 toJson 方法。
📦 安装
方式一:从 VSIX 安装(推荐)
- 下载
.vsix 文件
- 在 VSCode 中按
Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac)
- 输入
Extensions: Install from VSIX...
- 选择下载的
.vsix 文件
方式二:从源码编译
cd flutter-getx-plugins/vscode-extension
npm install
npm run compile
然后在 VSCode 中按 F5 调试运行。
🚀 使用方法
🎯 右键菜单使用(推荐⭐)
所有功能都可以通过右键菜单快速访问!
- 在项目资源管理器中,右键点击任意文件夹
- 选择 "GetX" 子菜单
- 选择需要的功能:
- ✨ 初始化项目结构
- ✨ 创建Page
- ✨ 创建Controller
- ✨ 创建Service
- ✨ 创建Model
- 输入名称,回车完成
使用示例:
右键 lib/pages 文件夹
→ 选择 "GetX"
→ 选择 "创建Page"
→ 输入 "home"
→ 完成!✅
⌨️ 命令面板使用
如果你更喜欢键盘操作,也可以使用命令面板:
- 按
Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac)
- 输入对应的命令:
初始化项目结构
创建Page
创建Controller
创建Service
创建Model
- 输入名称,回车完成
📝 命名规范
- 输入格式:使用小写字母和下划线(snake_case),如:
user_profile、home
- 生成文件:自动转换为 snake_case,如:
user_profile_page.dart
- 类名:自动转换为 PascalCase,如:
UserProfilePage、UserProfileController
🎯 示例
创建 Home 页面
输入:home
生成文件:
lib/pages/home/
├── home_page.dart // HomePage 页面类
├── home_controller.dart // HomeController 控制器
└── home_binding.dart // HomeBinding 绑定类
自动更新路由:
// app_routes.dart
class AppRoutes {
static const String home = '/home';
}
// app_pages.dart
GetPage(
name: AppRoutes.home,
page: () => const HomePage(),
binding: HomeBinding(),
),
创建 UserProfile 页面
输入:user_profile
生成:
lib/pages/user_profile/
├── user_profile_page.dart
├── user_profile_controller.dart
└── user_profile_binding.dart
🔧 生成的代码模板
Page 模板
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:your_app/pages/home/home_controller.dart';
class HomePage extends GetView<HomeController> {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Home'),
),
body: const Center(
child: Text('Home Page'),
),
);
}
}
Controller 模板
import 'package:get/get.dart';
class HomeController extends GetxController {
@override
void onInit() {
super.onInit();
}
@override
void onReady() {
super.onReady();
}
@override
void onClose() {
super.onClose();
}
}
Binding 模板
import 'package:get/get.dart';
import 'package:your_app/pages/home/home_controller.dart';
class HomeBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut<HomeController>(() => HomeController());
}
}
🛠️ 系统要求
- VSCode 1.80.0 或更高版本
- Flutter 项目(需要有
lib 目录和 pubspec.yaml)
- GetX 依赖已配置在
pubspec.yaml 中
📄 许可证
MIT License
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📞 联系方式
如有问题或建议,请提交 Issue。
享受高效的 Flutter GetX 开发体验! 🎉