AltForce Eval Converter - Extensão VS Code
Esta extensão converte arquivos Dart para o formato JSON de EvalCodeFile,
facilitando o processo de análise e processamento de código.
Funcionalidades
- 🔄 Detecção automática de branch Git - Detecta automaticamente a branch
atual do seu repositório
- 📁 Detecção automática de Project ID - Extrai o nome do projeto do
pubspec.yaml
- 📄 Conversão para JSON - Gera um arquivo JSON com lista de objetos
EvalCodeFile
- 🎯 Conversão individual ou em lote - Converte arquivos individuais ou
diretórios inteiros
- 🚫 Padrões de exclusão - Ignora arquivos desnecessários como
.g.dart
,
.freezed.dart
, etc.
- ⏰ Timestamp Híbrido Inteligente - Combina Git e sistema de arquivos para
timestamp mais preciso da última modificação
- 🔄 Auto-Update Inteligente - Atualiza JSON automaticamente ao
salvar/deletar arquivos
- 📊 Status Bar Toggle - Controle visual e fácil para ativar/desativar
auto-update
Auto-Update Inteligente
A extensão oferece atualização automática do JSON com controle total:
📊 Status Bar Toggle
- Indicador visual no canto direito da status bar
- Clique para ativar/desativar auto-update instantaneamente
- Estados visuais:
- 🟢
$(sync) AltForce Auto
- Auto-update ATIVO (destacado)
- ⚪
$(sync-ignored) AltForce Manual
- Auto-update INATIVO
🔄 Atualização Incremental
- Criar arquivo → Automaticamente adicionado ao JSON
- Editar arquivo → Automaticamente atualizado no JSON
- Deletar arquivo → Automaticamente removido do JSON
- Preserva todos os outros arquivos existentes no JSON
- Processa apenas o arquivo específico (não todo o projeto)
- Lê JSON existente e faz merge inteligente
- Remove arquivos inexistentes automaticamente
Como ativar:
- Status Bar: Clique no ícone
AltForce Auto/Manual
- Command Palette:
Ctrl+Shift+P
→ "Toggle Auto-Update"
- Settings: Configurações → "Auto Update On Save"
Timestamp Híbrido
A extensão usa uma abordagem inteligente para determinar o timestamp mais
preciso:
- Timestamp do Git: Data do último commit que modificou o arquivo
- Timestamp do Sistema: Data da última modificação no disco
- Lógica Híbrida: Usa sempre o mais recente entre os dois
- Fallback Robusto: Se Git não estiver disponível, usa apenas sistema de
arquivos
Vantagens para equipes colaborativas:
- ✅ Detecta commits recentes de colegas
- ✅ Detecta trabalho em progresso (modificações não commitadas)
- ✅ Funciona em projetos sem Git
- ✅ Sempre reflete a modificação mais atual
Como usar
Auto-Update (Recomendado para desenvolvimento)
- Gere JSON inicial: Clique com botão direito na pasta
lib
→ "Convert
Directory to JSON EvalCodeFile"
- Ative auto-update: Clique no status bar
$(sync-ignored) AltForce Manual
→ vira $(sync) AltForce Auto
- Desenvolva normalmente: Crie, edite ou delete arquivos
.dart
- JSON sempre atualizado! ⚡
Conversão manual (Para uso esporádico)
Conversão de arquivo individual
- Clique com o botão direito em um arquivo
.dart
no explorador
- Selecione "Convert to JSON EvalCodeFile"
- O arquivo JSON será gerado na raiz do projeto
Conversão de diretório
- Clique com o botão direito em uma pasta no explorador
- Selecione "Convert Directory to JSON EvalCodeFile"
- Todos os arquivos
.dart
da pasta (e subpastas) serão processados
Via Command Palette
Ctrl+Shift+P
(Windows/Linux) ou Cmd+Shift+P
(Mac)
- Digite "AltForce Eval" para ver todos os comandos disponíveis
Configuração
A extensão pode ser configurada através das configurações do VS Code:
Detecção de Branch
- 🔄 Auto Detect Branch: Detecta automaticamente a branch do Git (padrão:
true
)
- 📝 Manual Branch: Branch usada quando auto-detect está desabilitado
(padrão:
main
)
Detecção de Project ID
- 🔄 Auto Detect Project ID: Detecta automaticamente do
pubspec.yaml
(padrão: true
)
- 📝 Manual Project ID: ID usado quando auto-detect está desabilitado
(padrão:
my-project
)
Auto-Update
- 🔄 Auto Update On Save: Atualizar JSON automaticamente ao salvar/deletar
arquivos (padrão:
false
)
Outras configurações
- Output File: Nome do arquivo JSON de saída (padrão:
evalcodefiles.json
)
- Exclude Patterns: Padrões de arquivos/pastas a serem ignorados
A extensão gera um arquivo JSON com uma lista de objetos no seguinte formato:
[
{
"projectPath": "meu_projeto_flutter",
"branch": "main",
"relativePath": "lib/main.dart",
"fileType": "dart",
"fileName": "main.dart",
"fileContent": "import 'package:flutter/material.dart';...",
"updatedAt": 1705315845123
}
]
Nota: O campo updatedAt
contém timestamp em milissegundos desde a época
Unix, determinado pela lógica híbrida Git + Sistema de Arquivos.
Exemplo de uso
- Primeira vez: Configure uma empresa com
AltForce Companies: Add Company
- Abra um projeto Flutter/Dart no VS Code
- Selecione a empresa ativa com
AltForce Companies: Select Active Company
- Clique com botão direito na pasta
lib
→ "Convert Directory to JSON EvalCodeFile"
- Clique no status bar para ativar auto-update:
⏸️ AltForce Manual | Minha Empresa
→ 🔄 AltForce Auto | Minha Empresa
- Desenvolva normalmente - JSON sempre sincronizado! 🎯
Fluxo manual (sem Auto-Update):
- Primeira vez: Configure uma empresa com
AltForce Companies: Add Company
- Abra um projeto Flutter/Dart no VS Code
- Selecione a empresa ativa com
AltForce Companies: Select Active Company
- Configure suas preferências (opcional)
- Clique com botão direito na pasta
lib
→ "Convert Directory to JSON EvalCodeFile"
- Repita processo quando precisar atualizar
🏢 Gerenciamento de Empresas
A extensão agora suporta múltiplas empresas com configuração por projeto:
- Empresas globais: Cadastre suas empresas uma vez (nome, Company ID, API Token)
- Seleção por projeto: Cada projeto pode ter sua própria empresa ativa
- Status bar: Visualize a empresa ativa diretamente na barra de status
- Colaboração: Cada desenvolvedor pode ter suas próprias empresas configuradas
Como usar:
- Primeira vez: Use
AltForce Companies: Add Company
para cadastrar suas empresas
- Por projeto: Use
AltForce Companies: Select Active Company
para escolher a empresa do projeto atual
- Gerenciar: Use
AltForce Companies: Manage Companies
para editar, remover ou ativar empresas
Status Bar:
🔄 AltForce Auto | Minha Empresa
- Auto-update ativo com empresa selecionada
⏸️ AltForce Manual | Sem empresa
- Auto-update inativo, nenhuma empresa ativa
Comandos disponíveis
📁 Conversão e Sincronização
AltForce Eval: Convert Directory to JSON EvalCodeFile
- Converte diretório
AltForce Eval: Force Send Folder to Backend
- Força envio direto de uma
pasta selecionada para o backend (padrão: lib/) - não gera JSON local
AltForce Eval: Toggle Auto-Update on Save
- Liga/desliga auto-update
🏢 Gerenciamento de Empresas
AltForce Companies: Add Company
- Adiciona uma nova empresa
AltForce Companies: Select Active Company
- Seleciona a empresa ativa para o projeto atual
AltForce Companies: Manage Companies
- Gerencia empresas (editar, remover, ativar)
⚙️ Configuração e Status
AltForce Eval: Configure Settings
- Abre configurações
AltForce Eval: Show Status
- Mostra status atual da configuração
Contribuição
Esta extensão foi desenvolvida pela AltForce para facilitar o processo de
análise de código Dart/Flutter.