Sobre o projeto
Codium::Blocks é um protótipo de IDE nativo projetado para desenvolvimento multilíngue, evitando explicitamente dependências do Electron. Construído sobre um núcleo C++/wxWidgets, ele visa fornecer um ambiente leve, mas extensível, para Windows, macOS e Linux.
Os principais componentes arquitetônicos incluem:
- **Núcleo Nativo**: Um aplicativo C++ usando wxWidgets para gerenciamento de UI e documentos, com destaque de sintaxe para C/C++, Python, Rust, Go, Java, JavaScript, TypeScript, JSON, HTML, CSS, Markdown, YAML e CMake.
- **Host de Extensão**: Um host Node.js opcional, fora do processo, que implementa um subconjunto da API de extensão do VS Code (comandos, janela, workspace, idiomas, etc.). Ele suporta o carregamento de extensões CommonJS via pacotes `.vsix` com verificação SHA-256.
- **Protocolo de Servidor de Linguagem (LSP)**: Cliente LSP integrado que suporta inicialização, sincronização, hover, conclusão, tokens semânticos, definições, referências, símbolos, renomeação e ações de código. Ele inclui uma matriz versionada para testes contra servidores reais como clangd, rust-analyzer, gopls e pyright.
- **Protocolo de Adaptador de Depuração (DAP)**: Um cliente DAP nativo para depuração, suportando breakpoints, traces de pilha, variáveis e adaptadores como GDB, LLDB-DAP e OpenDebugAD7.
- **Integração com Code::Blocks**: Uma ponte para o SDK do Code::Blocks para descobrir plugins, importar projetos `.cbp` e, opcionalmente, executar um adaptador de host separado para uma integração mais profunda.
- **Terminal**: Um terminal nativo interativo com backends PTY/ConPTY, suporte a sequências ANSI/VT e scrollback.
- **Sistema de Construção**: Detecção automática de CMake, Make, Cargo e npm, com executores de tarefas para operações de configuração, construção e teste.
O projeto está atualmente em um estado de snapshot de desenvolvimento (v1.0.1), com foco em estabilidade e compatibilidade. Ele não reivindica compatibilidade total com VS Code ou Code::Blocks, mas fornece uma abordagem em camadas para extensibilidade e integração de ferramentas.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.