BigON - Analisador de Complexidade Assintótica para VS Code
Proposta da ExtensãoO BigON é uma extensão para VS Code, VSCodium, Cursor, Antigravity e editores compatíveis, desenvolvida para analisar a complexidade assintótica de Tempo (O(...)) e Espaço (O(...)) de funções em tempo real. Diferente de profilings de execução, o BigON realiza análise estática através da Árvore Sintática Abstrata (AST) do código-fonte e heurísticas estruturais, calculando a ordem de grandeza do algoritmo sem a necessidade de executar o programa. Destaques Principais:
CodeLens e Anotações In-line no Editor
Painel de Explicação Assintótica Interativo
Como Baixar e InstalarVocê pode instalar o BigON diretamente pelo Marketplace do seu editor ou manualmente via pacote 1. Pelo Marketplace (Recomendado)No VS Code:
No VSCodium, Cursor, Antigravity e outros editores baseados em VS Code / Open VSX:
2. Instalação Manual via Arquivo
|
| Comando | ID do Comando | Descrição |
|---|---|---|
| BigON: Analisar Complexidade do Arquivo | BigON.analyzeFile |
Força a re-análise completa do arquivo atualmente aberto. |
| BigON: Alternar Anotações In-line | BigON.toggleDecorations |
Liga ou desliga as anotações visuais no final das linhas de laço. |
| BigON: Abrir Painel de Explicação | BigON.openExplanation |
Abre o painel Webview com os detalhes da função sob o cursor. |
Configurações
Nas configurações do editor (Settings -> pesquise por BigON), você pode customizar:
BigON.enableCodeLens: Exibir ou ocultar o cabeçalho CodeLens acima das funções (default: true).BigON.enableInlineDecorations: Exibir ou ocultar anotações no final das linhas (default: true).BigON.enableHover: Exibir balão explicativo ao passar o mouse sobre funções (default: true).
Padrões Reconhecidos
| Padrão de Código | Complexidade de Tempo | Explicação |
|---|---|---|
for (let i = 0; i < n; i++) |
O(n) |
Incremento linear constante |
Dois laços for aninhados |
O(n²) |
Produto das iterações (O(n) \times O(n)) |
Multiplicação no laço (i *= 2) |
O(log n) |
Crescimento logarítmico |
Divisão sucessiva (n /= 2) |
O(log n) |
Redução do espaço de busca |
Recursão simples f(n/2) |
O(log n) |
Divisão sucessiva (ex: Busca Binária) |
Recursão 2 * f(n/2) + O(n) |
O(n log n) |
Divisão e Conquista (ex: Merge Sort) |
Recursão f(n-1) + f(n-2) |
O(2ⁿ) |
Ramificação binária exponencial |
Recursão com laço interno for |
O(n!) |
Permutações / Arranjos |
Desenvolvimento e Contribuição
Se você é desenvolvedor e deseja compilar o projeto localmente, debugar, adicionar suporte a novas linguagens ou criar novas regras de análise AST:
Consulte a documentação técnica detalhada na pasta /docs:
- Guia de Contribuição (
/docs/CONTRIBUTING.md): Setup do ambiente, comandos de teste (npm test), compilação e tutorial para adicionar novas regras e parsers. - Arquitetura do Sistema (
/docs/ARCHITECTURE.md): Visão detalhada do motor de análise (ComplexityEngine), parsers sintáticos, pipeline Big-O e ciclo de vida das decorações e Webview.
Limitações da Análise Estática
A extensão BigON utiliza análise estática via AST (para JavaScript/TypeScript) e identificadores heurísticos sintáticos para Python, Ruby, C++ e C.
As estimativas representam diagnósticos estáticos baseados em padrões estruturais típicos de código e não constituem provas matemáticas formais em runtime. Códigos com compilação dinâmica, metaprogramação, dependência exclusiva de dados recebidos em tempo de execução ou recursões indiretas complexas podem apresentar estimativas aproximadas.
Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.