Skip to content

moreirawebmaster/stmr-vscode-plugin

Repository files navigation

🚀 STMR Flutter CLI - VSCode Extension

Version License Flutter

Integração completa do STMR CLI para desenvolvimento Flutter com MVC/MVVM + Clean Architecture diretamente no VSCode!

✨ Características

  • 🎯 Integração Nativa: Comandos STMR diretamente no Command Palette
  • 🏗️ MVC/MVVM + Clean Architecture: Estruturas organizadas seguindo melhores práticas
  • 🚀 Auto-instalação: Instala automaticamente o STMR CLI se necessário
  • 📱 Flutter Focused: Otimizado para desenvolvimento Flutter/Dart
  • 🎨 Interface Intuitiva: Formulários integrados para entrada de dados
  • Produtividade: Acelere seu desenvolvimento com templates prontos

🛠️ Comandos Disponíveis

🎨 Criação de Projetos

  • STMR: Criar Projeto - Cria um novo projeto Flutter com arquitetura limpa

🏗️ Estruturas de Código

  • STMR: Criar Módulo/Feature - Gera módulos completos com MVC/MVVM + Clean Architecture
  • STMR: Gerar Page - Cria páginas na camada de presentation com controllers
  • STMR: Gerar Controller - Gera controllers com lógica de negócio e binding
  • STMR: Gerar Repository - Cria camada de dados com DTOs organizados
  • STMR: Gerar DTO - Gera Request/Response DTOs com serialização JSON

🚀 Como Usar

Via Command Palette

  1. Pressione Ctrl+Shift+P (ou Cmd+Shift+P no Mac)
  2. Digite "STMR" para ver todos os comandos disponíveis
  3. Selecione o comando desejado
  4. Preencha os campos solicitados
  5. Aguarde a execução!

Via Menu Contextual

  1. Clique com o botão direito em qualquer pasta no Explorer
  2. Selecione "STMR CLI" no menu contextual
  3. Escolha a operação desejada
  4. Preencha o formulário
  5. Execute!

📋 Pré-requisitos

  • VSCode: Versão 1.74.0 ou superior
  • Node.js: Para instalação automática do STMR CLI
  • Flutter: SDK Flutter instalado (para projetos Flutter)

💡 Nota: O plugin instala automaticamente o STMR CLI se não estiver presente no sistema!

🎯 Funcionalidades Avançadas

✅ Instalação Automática

O plugin verifica automaticamente se o STMR CLI está instalado e oferece instalação automática se necessário.

✅ Validação Inteligente

  • Validação de nomes de projetos e módulos
  • Verificação de estruturas existentes
  • Prevenção de conflitos de nomenclatura

✅ Feedback Visual

  • Indicadores de progresso durante execução
  • Output detalhado em canal dedicado
  • Mensagens de erro claras e acionáveis

✅ Integração Completa

  • Atualização automática do Explorer após criação
  • Suporte a workspaces múltiplos
  • Compatibilidade com temas do VSCode

🏗️ Arquitetura Gerada

O STMR CLI gera estruturas tendo como referência MVC / MVVM e Clean Architecture com:

📁 Estrutura de Módulo Simples

lib/
├── app/
│   └── modules/
│       └── auth/
│           ├── models/
│           │   └── login_model.dart
│           ├── presentations/
│           │   └── components/
│           │       └── login_form_component.dart
│           │   └── login_controller.dart
│           │   └── login_page.dart
│           ├── repositories/
│           │   ├── login_repository.dart
│           │   └── dtos/
│           │       ├── requests/
│           │       │   └── login_request.dart
│           │       └── responses/
│           │           └── login_response.dart
│           ├── bindings/
│           │   └── login_binding.dart

📁 Estrutura com Múltiplas Features

lib/
├── app/
│   └── modules/
│       └── auth/
│           └── features/
│               ├── login/
│               │    ├── models/
│               │    │   └── login_model.dart
│               │    ├── presentations/
│               │    │   └── components/
│               │    │       └── login_form_component.dart
│               │    │   └── login_controller.dart
│               │    │   └── login_page.dart
│               │    ├── repositories/
│               │    │   ├── login_repository.dart
│               │    │   └── dtos/
│               │    │       ├── requests/
│               │    │       │   └── login_request.dart
│               │    │       └── responses/
│               │    │           └── login_response.dart
│               │    ├── bindings/
│               │    │   └── login_binding.dart
│               ├── recovery_password/
│               │    ├── models/
│               │    │   └── recovery_password_model.dart
│               │    ├── presentations/
│               │    │   └── components/
│               │    │       └── login_form_component.dart
│               │    │   └── recovery_password_controller.dart
│               │    │   └── recovery_password_page.dart
│               │    ├── repositories/
│               │    │   ├── recovery_password_repository.dart
│               │    │   └── dtos/
│               │    │       ├── requests/
│               │    │       │   └── recovery_password_request.dart
│               │    │       └── responses/
│               │    │           └── recovery_password_response.dart
│               │    ├── bindings/
│               │    │   └── recovery_password_binding.dart
│               └── create_account/
│                   ├── models/
│                   │   └── create_account_model.dart
│                   ├── presentations/
│                   │   └── components/
│                   │       └── create_form_component.dart
│                   │   └── create_account_controller.dart
│                   │   └── create_account_page.dart
│                   ├── repositories/
│                   │   ├── create_account_repository.dart
│                   │   └── dtos/
│                   │       ├── requests/
│                   │       │   └── create_account_request.dart
│                   │       └── responses/
│                   │           └── create_account_response.dart
│                   ├── bindings/
│                   │   └── create_account_binding.dart

🎯 Camadas da Arquitetura

  • Presentations: Controllers e Pages (UI/UX)
  • Repositories: Camada de dados e APIs
  • DTOs: Data Transfer Objects (Requests/Responses)
  • Routes: Configuração de rotas do módulo
  • Bindings: Injeção de dependências (GetX)
  • Constants: Constantes e configurações do módulo

📋 Quando Usar Cada Estrutura

  • Módulo Simples: Para funcionalidades únicas (ex: modules/auth/)
  • Múltiplas Features: Para módulos complexos com várias funcionalidades relacionadas (ex: modules/auth/features/login/, modules/auth/features/recovery_password/, modules/auth/features/create_account/)

🔧 Configuração

Não é necessária configuração adicional! O plugin funciona imediatamente após a instalação.

Configurações Opcionais

Você pode personalizar o comportamento através das configurações do VSCode:

{
  "stmr.autoInstall": true,
  "stmr.showProgress": true,
  "stmr.outputLevel": "detailed"
}

🤝 Contribuindo

Contribuições são bem-vindas! Veja nosso repositório no GitHub para mais informações.

📝 Changelog

1.0.0 (Versão Estável)

  • ✅ Sistema de lint integrado com ESLint e Prettier
  • ✅ Configuração de pre-commit hooks com Husky
  • ✅ Testes unitários implementados com Mocha
  • ✅ TypeScript modo estrito habilitado
  • ✅ Documentação completa do projeto
  • ✅ Arquitetura modular e manutenível
  • ✅ Qualidade de código enterprise-grade
  • ✅ Links úteis atualizados (GetX, MVVM, MVC)
  • ✅ Plugin empacotado e pronto para produção

0.0.1 (Inicial)

  • ✅ Implementação de todos os comandos STMR
  • ✅ Interface integrada com VSCode
  • ✅ Instalação automática do CLI
  • ✅ Menu contextual no Explorer
  • ✅ Sistema de validação e feedback

🐛 Reportar Problemas

Encontrou um bug? Abra uma issue no nosso repositório.

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

🔗 Links Úteis


Desenvolvido com ❤️ por Thiago Moreira para a comunidade Flutter

Acelere seu desenvolvimento Flutter com STMR CLI + VSCode!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors