This document outlines a modular architecture for building a modern Integrated Development Environment (IDE). Each component is designed as a standalone package with a clear responsibility, promoting reusability, testability, and ease of maintenance.
The structure is grouped into six major areas:
- Core Editor Components: Responsible for the primary editing experience, including code input, tab management, and file navigation.
- Development Tools: Provide essential developer utilities such as terminal access, version control, and search tools.
- Information Panels: UI regions like sidebars and outline views that help in navigating and organizing the codebase.
- UI Foundation: Manages layout, menus, and window behaviors to ensure a consistent and responsive user interface.
- Extension & Configuration: Support for plugins, user preferences, keybindings, and other customizable IDE features.
- Utility & Project Management: Extra components that enhance user experience and assist with project-level operations.
Each section includes a short purpose description, feature list, dependency notes, and an indicator for whether UI/UX design is needed before implementation.
🎯 Core Editor Components
1. @ide/code-editor
Purpose: Main code editing interface
- Syntax highlighting for multiple languages
- Code completion and IntelliSense
- Line numbers and folding
- Multi-cursor support
- Find and replace functionality
- Vim/Emacs key bindings support
Depends on @ide/tab-manager
, @ide/outline-view