https://github.com/vncsmnl/bigon
🧩 Análise em tempo real da complexidade assintótica de Tempo (Big O) e Espaço (Big O) para VS Code e editores compatíveis.
https://github.com/vncsmnl/bigon
antigravity antigravity-ide asymptotic-analysis asymptotic-complexity bigon bigonotation code code-complexity complexity cursor cursor-extension portfolio typescript vscode vscode-extension vscodium vscodium-extension
Last synced: about 21 hours ago
JSON representation
🧩 Análise em tempo real da complexidade assintótica de Tempo (Big O) e Espaço (Big O) para VS Code e editores compatíveis.
- Host: GitHub
- URL: https://github.com/vncsmnl/bigon
- Owner: vncsmnl
- License: mit
- Created: 2026-07-22T03:57:49.000Z (5 days ago)
- Default Branch: main
- Last Pushed: 2026-07-22T17:11:42.000Z (5 days ago)
- Last Synced: 2026-07-25T17:13:48.754Z (2 days ago)
- Topics: antigravity, antigravity-ide, asymptotic-analysis, asymptotic-complexity, bigon, bigonotation, code, code-complexity, complexity, cursor, cursor-extension, portfolio, typescript, vscode, vscode-extension, vscodium, vscodium-extension
- Language: TypeScript
- Homepage: https://marketplace.visualstudio.com/publishers/vncsmnl
- Size: 2.25 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# BigON - Analisador de Complexidade Assintótica para VS Code
## Proposta da Extensão
O **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:
- **Análise Instantânea**: Feedback visual de complexidade enquanto você digita.
- **Não Executa Código**: Análise 100% estática e segura via AST.
- **Foco Educacional**: Explication detalhada embasada nos princípios de algoritmos (CLRS / Cormen et al.) com gráficos interativos de curvas Big-O.
- **Suporte Multi-Linguagem**: JavaScript, TypeScript, React (JSX/TSX), Python, Ruby, C++ e C.
CodeLens e Anotações In-line no Editor
CodeLens e Anotações In-line no Editor
Painel de Explicação Assintótica Interativo
## Como Baixar e Instalar
Você pode instalar o **BigON** diretamente pelo Marketplace do seu editor ou manualmente via pacote `.vsix`.
### 1. Pelo Marketplace (Recomendado)
#### No VS Code:
1. Abra o VS Code.
2. Acesse a aba de Extensões com `Ctrl+Shift+X` (no macOS: `Cmd+Shift+X`).
3. Pesquise por **`BigON`** ou **`vncsmnl.BigON`**.
4. Clique em **Instalar** (Install).
5. Alternativamente, acesse a página no [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=vncsmnl.BigON) e clique no botão **Install**.
#### No VSCodium, Cursor, Antigravity e outros editores baseados em VS Code / Open VSX:
1. Abra a aba de Extensões (`Ctrl+Shift+X` / `Cmd+Shift+X`).
2. Digite **`BigON`** na barra de busca.
3. Clique em **Instalar**.
---
### 2. Instalação Manual via Arquivo `.vsix`
Caso você esteja offline, utilizando uma rede corporativa restrita ou deseje testar uma versão pré-compilada específica:
#### Passo A: Obter o Arquivo `.vsix`
- **Via Releases do GitHub**: Baixe a versão mais recente `.vsix` diretamente na página de [Releases do Repositório](https://github.com/vncsmnl/BigON/releases).
- **Gerando Localmente**: Se você possui o código-fonte clonado, execute:
```bash
npx @vscode/vsce package
```
Isso gerará o arquivo `BigON-X.X.X.vsix` no diretório raiz do projeto.
#### Passo B: Instalar no Editor
##### Opção 1: Pela Interface Gráfica (GUI)
1. Abra o VS Code / VSCodium / Cursor / Antigravity.
2. Abra a aba de Extensões (`Ctrl+Shift+X`).
3. Clique no menu de três pontinhos **`...`** (no canto superior direito da aba de extensões).
4. Selecione **`Instalar a partir de VSIX...`** (`Install from VSIX...`).
5. Escolha o arquivo `BigON-X.X.X.vsix` baixado ou gerado.
##### Opção 2: Pela Linha de Comando (Terminal / CLI)
Abra seu terminal e execute o comando correspondente ao seu editor:
```bash
# Para VS Code:
code --install-extension BigON-X.X.X.vsix
# Para VSCodium:
codium --install-extension BigON-X.X.X.vsix
# Para Cursor:
cursor --install-extension BigON-X.X.X.vsix
```
---
## Como Usar
Assim que instalada, a extensão é ativada automaticamente ao abrir qualquer arquivo em uma das linguagens suportadas (`.js`, `.ts`, `.jsx`, `.tsx`, `.py`, `.rb`, `.cpp`, `.c`).
### Recursos no Editor
1. **CodeLens (Cabeçalho de Função)**:
- Acima de cada função declarada, aparecerá um resumo de complexidade:
`BigON: Tempo O(n²) | Espaço O(1) [Ver Explicação]`
- Clique em **`[Ver Explicação]`** para abrir o painel interativo.
2. **Anotações In-line (Linha a Linha)**:
- No final das linhas que contêm laços de repetição ou estruturas relevantes, a extensão indica o custo incremental (ex: `← Custo: O(n)` ou `← Custo: O(log n)`).
3. **Balão Informativo (Hover)**:
- Ao passar o mouse sobre o nome de uma função, um pop-up exibirá a complexidade calculada e uma breve justificativa.
4. **Painel Webview de Explicação**:
- Exibe a derivação matemática e lógica do cálculo da função, com explicações didáticas e gráficos comparativos das curvas de crescimento Big-O (\(O(1)\), \(O(\log n)\), \(O(n)\), \(O(n \log n)\), \(O(n^2)\), \(O(2^n)\), \(O(n!)\)).
---
## Comandos Disponíveis
Abra a paleta de comandos (`Ctrl+Shift+P` ou `Cmd+Shift+P`) e digite:
| 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`](./docs/README.md):**
- **[Guia de Contribuição (`/docs/CONTRIBUTING.md`)](./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`)](./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](./LICENSE) para mais detalhes.