$ show github0null/eide
EIDE (Embedded IDE) is a VS Code extension for embedded microcontroller development, supporting a wide range of architectures (8051, STM8, Cortex-M, RISC-V, MIPS) and toolchains (GCC, Arm Compiler, IAR, SDCC, COSMIC, LLVM). It provides project management (create, import from Keil/IAR/Eclipse), build system integration, flash programming (JLink, STLink, OpenOCD, pyOCD, probe-rs), and analysis tools (callgraph visualization, stack usage, memory map, CMSIS pack management). The extension includes a web-based configuration UI, a Model Context Protocol (MCP) server for headless tool access, and custom language support for embedded assembly/linker scripts. The architecture is a VS Code extension with TypeScript core, Vue.js webviews, and platform-specific .NET binaries for build/flash operations. While deeply functional and feature-rich, the codebase exhibits some monolithic files, vendored outdated dependencies (Bootstrap 4.3.1, Vue 2.6), and a high degree of coupling between project management and UI logic.
The LLM identified 5 files worth highlighting for reuse:
A hand-written parser for GCC's VCG-format call graph output (`-fcallgraph-info`). Handles nested LTO `.ltrans.ci` files, multi-line statements, and Windows path escaping. Fully self-contained and reusable in any project needing to parse GCC VCG data.
Abstract base class for parsing Keil MDK (UV4/UV5) project files (.uvprojx, .uvproj). Extracts targets, file groups, compiler options, RTE dependencies, and settings. Can be extended for ARM or C51 variants. Demonstrates robust XML traversal with handling of Keil's specific schema.
Implements a lightweight framed IPC protocol for the Model Context Protocol (MCP) proxy. Uses length-prefixed JSON messages, lock files, log rotation, and health checks. Clean separation of transport (stdin/stdout/tcp) from protocol logic. Reusable for any multi-process VS Code extension or CLI tool communication.
Modular collection of parser functions that convert compiler diagnostics (GCC, ArmCC, IAR, Keil C51, SDCC, Cosmic) into VS Code Diagnostic objects. Each parser is isolated and follows a common interface, making it easy to add new compilers. Reusable in any tool that needs to parse embedded compiler output.
Provides mappings from ARM architecture identifiers (e.g., 'Cortex-M4', 'ARMv7E-M') to CPU listings, VFP capabilities, and architecture extensions for GCC and AC6 toolchains. Pure data logic, no side effects. Could be extracted and used in any ARM compiler configuration tool.