Sobre el proyecto

Codium::Blocks es un prototipo de IDE nativo diseñado para el desarrollo en múltiples lenguajes, evitando explícitamente las dependencias de Electron. Basado en un núcleo de C++/wxWidgets, tiene como objetivo proporcionar un entorno ligero pero extensible para Windows, macOS y Linux. Los componentes arquitectónicos clave incluyen: - **Núcleo Nativo**: Una aplicación de C++ que utiliza wxWidgets para la interfaz de usuario y la gestión de documentos, con resaltado de sintaxis para C/C++, Python, Rust, Go, Java, JavaScript, TypeScript, JSON, HTML, CSS, Markdown, YAML y CMake. - **Host de Extensiones**: Un host opcional de Node.js fuera de proceso que implementa un subconjunto de la API de extensiones de VS Code (comandos, ventana, espacio de trabajo, lenguajes, etc.). Admite la carga de extensiones de CommonJS a través de paquetes `.vsix` con verificación SHA-256. - **Protocolo de Servidor de Lenguaje (LSP)**: Un cliente LSP integrado que admite inicialización, sincronización, hover, completado, tokens semánticos, definiciones, referencias, símbolos, renombrado y acciones de código. Incluye una matriz versionada para probar contra servidores reales como clangd, rust-analyzer, gopls y pyright. - **Protocolo de Adaptador de Depuración (DAP)**: Un cliente DAP nativo para la depuración, que admite puntos de interrupción, trazas de pila, variables y adaptadores como GDB, LLDB-DAP y OpenDebugAD7. - **Integración de Code::Blocks**: Un puente al SDK de Code::Blocks para descubrir plugins, importar proyectos `.cbp` y, opcionalmente, ejecutar un adaptador de host separado para una integración más profunda. - **Terminal**: Un terminal nativo interactivo con backends PTY/ConPTY, soporte para secuencias ANSI/VT y desplazamiento hacia atrás. - **Sistema de Construcción**: Detección automática de CMake, Make, Cargo y npm, con ejecutores de tareas para operaciones de configuración, construcción y prueba. El proyecto se encuentra actualmente en un estado de instantánea de desarrollo (v1.0.1), con un enfoque en la estabilidad y la compatibilidad. No reclama una compatibilidad completa con VS Code o Code::Blocks, pero proporciona un enfoque por capas para la extensibilidad y la integración de herramientas.