feat: feat: add comprehensive documentation for Neovim configuration project
Signed-off-by: juliano.barbosa <julianomb@gmail.com>
This commit is contained in:
parent
57f551ebd9
commit
f8b3501df1
8 changed files with 727 additions and 0 deletions
27
memory-bank/activeContext.md
Normal file
27
memory-bank/activeContext.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Current Session Context
|
||||
*Last Updated: 2025-02-17 21:57*
|
||||
|
||||
## Current State
|
||||
- Rolled back to v0.1.0 tag (commit 57f551e)
|
||||
- Backup branch created for pre-rollback state
|
||||
|
||||
## Recent Changes
|
||||
- Created backup branch of pre-rollback state
|
||||
- Rolled back codebase to v0.1.0 tag
|
||||
- Previous state preserved in backup branch
|
||||
|
||||
## Active Decisions
|
||||
1. Using Memory Bank for configuration documentation
|
||||
2. Following Kickstart.nvim's modular approach
|
||||
3. Implementing comprehensive LSP integration
|
||||
4. Using mode-based workflow with persistent Plan/Act toggle
|
||||
|
||||
## Current Focus
|
||||
- Verifying system stability after rollback
|
||||
- Ensuring core functionality remains intact
|
||||
- Planning next steps based on v0.1.0 state
|
||||
|
||||
## Open Questions
|
||||
- What were the key changes between v0.1.0 and the rolled back state?
|
||||
- Which features need to be reimplemented or reconsidered?
|
||||
- How to prevent future need for rollbacks?
|
||||
82
memory-bank/decisionLog.md
Normal file
82
memory-bank/decisionLog.md
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
# Architectural Decisions Log
|
||||
|
||||
## 2025-02-17 - Enhanced Mode State Management Architecture
|
||||
|
||||
### Context
|
||||
The current mode management system provides basic functionality for toggling between Plan and Act modes with simple state persistence. However, as the system grows, we need a more robust and feature-rich mode management system that can handle complex state management, mode-specific behaviors, and better integration with other components.
|
||||
|
||||
### Decision
|
||||
Implement an enhanced mode state management system with the following key components:
|
||||
|
||||
1. **Advanced State Management**
|
||||
- Implement mode-specific settings store
|
||||
- Add context preservation between mode switches
|
||||
- Create mode initialization hooks
|
||||
- Add state validation and recovery mechanisms
|
||||
|
||||
2. **Event System**
|
||||
- Implement pre/post mode change hooks
|
||||
- Add event queueing system
|
||||
- Create mode-specific event handlers
|
||||
- Support async event processing
|
||||
|
||||
3. **Persistence Layer**
|
||||
- Enhanced state file format with versioning
|
||||
- State migration system
|
||||
- Corruption detection and recovery
|
||||
- Mode-specific context preservation
|
||||
|
||||
4. **Integration System**
|
||||
- Mode-aware plugin architecture
|
||||
- LSP integration with mode context
|
||||
- Buffer and window layout persistence
|
||||
- Mode-specific UI elements
|
||||
|
||||
### Rationale
|
||||
- Current system lacks robust state management
|
||||
- Need better integration with other components
|
||||
- Require more sophisticated event handling
|
||||
- Want to support mode-specific behaviors
|
||||
- Need better error handling and recovery
|
||||
- Desire for mode-specific UI/UX customization
|
||||
|
||||
### Implementation
|
||||
1. Phase 1: Core State Management
|
||||
- Enhance state persistence
|
||||
- Add validation system
|
||||
- Implement context preservation
|
||||
|
||||
2. Phase 2: Event System
|
||||
- Add event hooks
|
||||
- Implement queueing
|
||||
- Create handlers
|
||||
|
||||
3. Phase 3: Persistence Layer
|
||||
- Update state format
|
||||
- Add versioning
|
||||
- Implement migration
|
||||
|
||||
4. Phase 4: Integration
|
||||
- Plugin integration
|
||||
- LSP integration
|
||||
- UI integration
|
||||
|
||||
### Consequences
|
||||
**Positive:**
|
||||
- More robust state management
|
||||
- Better error handling
|
||||
- Enhanced user experience
|
||||
- More flexible configuration
|
||||
- Better integration capabilities
|
||||
|
||||
**Negative:**
|
||||
- Increased complexity
|
||||
- More maintenance overhead
|
||||
- Larger codebase
|
||||
- More potential failure points
|
||||
|
||||
### Status
|
||||
- Decision approved
|
||||
- Implementation planning in progress
|
||||
- Initial architecture documented
|
||||
- Ready for code mode implementation
|
||||
24
memory-bank/productContext.md
Normal file
24
memory-bank/productContext.md
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# Project Overview: Neovim Configuration
|
||||
|
||||
## Purpose
|
||||
This project is a personal Neovim configuration based on Kickstart.nvim framework, designed to provide a powerful yet maintainable development environment.
|
||||
|
||||
## Goals
|
||||
1. Create a productive and efficient development environment
|
||||
2. Maintain a clean and organized configuration structure
|
||||
3. Support multiple programming languages
|
||||
4. Provide essential IDE-like features through LSP integration
|
||||
|
||||
## Key Features
|
||||
- LSP integration for multiple languages
|
||||
- Fuzzy finding with Telescope
|
||||
- Git integration
|
||||
- Code formatting and linting
|
||||
- Syntax highlighting with Treesitter
|
||||
- Completion with nvim-cmp
|
||||
|
||||
## User Experience Goals
|
||||
- Fast and responsive editing
|
||||
- Intuitive keybindings
|
||||
- Clear visual feedback
|
||||
- Minimal configuration needed for basic use
|
||||
63
memory-bank/progress.md
Normal file
63
memory-bank/progress.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# Project Progress
|
||||
|
||||
## Completed Work
|
||||
- Initial Memory Bank setup
|
||||
- Basic Plan/Act mode system implementation
|
||||
- Mode persistence with JSON storage
|
||||
- Simple event callback system
|
||||
- Status line integration
|
||||
- Basic mode toggling (`<leader>tm`)
|
||||
|
||||
## Recent Changes
|
||||
- Rolled back to v0.1.0 (commit 57f551e)
|
||||
- Created backup branch of pre-rollback state
|
||||
|
||||
## In Progress
|
||||
- Verifying system stability post-rollback
|
||||
- Reassessing implementation priorities
|
||||
- Evaluating core functionality
|
||||
|
||||
## Next Steps
|
||||
|
||||
### Phase 1: Post-Rollback Stabilization
|
||||
- [ ] Verify core functionality
|
||||
- [ ] Document differences from rolled back state
|
||||
- [ ] Reassess implementation priorities
|
||||
- [ ] Review backup branch for salvageable improvements
|
||||
|
||||
### Phase 2: Core State Management
|
||||
- [ ] Implement mode-specific settings store
|
||||
- [ ] Add mode context preservation
|
||||
- [ ] Create mode initialization hooks
|
||||
- [ ] Add state validation system
|
||||
- [ ] Implement error recovery mechanisms
|
||||
|
||||
### Phase 3: Event System Enhancement
|
||||
- [ ] Add pre-mode-change hooks
|
||||
- [ ] Implement post-mode-change hooks
|
||||
- [ ] Create event queueing system
|
||||
- [ ] Add mode-specific event handlers
|
||||
- [ ] Implement async event processing
|
||||
|
||||
### Phase 4: Integration Features
|
||||
- [ ] Add mode-specific colorschemes
|
||||
- [ ] Implement mode-specific keymaps
|
||||
- [ ] Create mode-specific status line content
|
||||
- [ ] Add mode-specific buffer handling
|
||||
- [ ] Implement window layout persistence
|
||||
|
||||
## Known Issues
|
||||
- Current state persistence is basic
|
||||
- No validation of stored state
|
||||
- Limited error recovery options
|
||||
- No mode-specific settings
|
||||
- Basic event handling system
|
||||
|
||||
## Future Considerations
|
||||
- Custom mode creation system
|
||||
- Mode-specific plugin configurations
|
||||
- Advanced state synchronization
|
||||
- Mode templates and presets
|
||||
- Mode groups
|
||||
- Mode transitions animations
|
||||
- Mode-specific help system
|
||||
73
memory-bank/systemPatterns.md
Normal file
73
memory-bank/systemPatterns.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# System Architecture & Patterns
|
||||
|
||||
## Core Architecture
|
||||
- Plugin management via lazy.nvim
|
||||
- LSP-based intellisense and code navigation
|
||||
- Event-driven configuration loading
|
||||
- Modular plugin configuration
|
||||
- Enhanced mode state management system
|
||||
|
||||
## Key Design Patterns
|
||||
|
||||
1. Mode Management
|
||||
- Advanced state persistence
|
||||
- Event-driven mode transitions
|
||||
- Mode-specific context preservation
|
||||
- Pre/post mode change hooks
|
||||
- Mode validation system
|
||||
- Mode-specific settings store
|
||||
|
||||
2. Event System
|
||||
- Hierarchical event handling
|
||||
- Event queueing mechanism
|
||||
- Async event processing
|
||||
- Event prioritization
|
||||
- Mode-specific event handlers
|
||||
|
||||
3. Persistence Layer
|
||||
- Versioned state storage
|
||||
- State migration system
|
||||
- Corruption detection
|
||||
- Fallback mechanisms
|
||||
- Incremental state updates
|
||||
|
||||
4. Integration Patterns
|
||||
- Mode-aware plugin system
|
||||
- LSP integration with mode context
|
||||
- Buffer grouping by mode
|
||||
- Window layout persistence
|
||||
- Mode-specific UI elements
|
||||
|
||||
5. Configuration Patterns
|
||||
- Centralized keybinding management
|
||||
- Plugin-specific configuration in separate modules
|
||||
- Default options set through vim.opt
|
||||
- Autocmd groups for event handling
|
||||
- Mode-specific settings and behaviors
|
||||
|
||||
6. LSP Integration
|
||||
- Mason for LSP server management
|
||||
- Uniform LSP configuration across languages
|
||||
- Shared capabilities for completion
|
||||
- Mode-specific language server configurations
|
||||
|
||||
7. Component Relationships
|
||||
- Mode Manager ↔ Event System
|
||||
- Event System ↔ Persistence Layer
|
||||
- Mode Manager ↔ Status Line
|
||||
- LSP ↔ Mode Context
|
||||
- Buffer Groups ↔ Mode State
|
||||
- Window Layout ↔ Mode State
|
||||
- Plugins ↔ Mode Context
|
||||
|
||||
## Implementation Standards
|
||||
- Lua for all configuration
|
||||
- Consistent error handling
|
||||
- Modular plugin organization
|
||||
- Clear separation of concerns
|
||||
- Mode-aware functionality
|
||||
- State validation
|
||||
- Event-driven architecture
|
||||
- Robust error recovery
|
||||
- Configuration versioning
|
||||
- Context preservation
|
||||
45
memory-bank/techContext.md
Normal file
45
memory-bank/techContext.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# Technical Context
|
||||
|
||||
## Core Technologies
|
||||
- Neovim (Text Editor)
|
||||
- Lua (Configuration Language)
|
||||
- Lazy.nvim (Plugin Manager)
|
||||
|
||||
## Major Dependencies
|
||||
1. LSP Servers & Tools
|
||||
- lua_ls
|
||||
- gopls
|
||||
- pyright
|
||||
- terraform-ls
|
||||
- and many others managed by Mason
|
||||
|
||||
2. Key Plugins
|
||||
- nvim-lspconfig: LSP configuration
|
||||
- telescope.nvim: Fuzzy finder
|
||||
- nvim-treesitter: Syntax highlighting
|
||||
- nvim-cmp: Completion engine
|
||||
- conform.nvim: Code formatting
|
||||
- which-key.nvim: Keybinding help
|
||||
- mini.nvim: Collection of utilities
|
||||
|
||||
## Development Setup
|
||||
- Uses the Kickstart.nvim framework as base
|
||||
- Nerd Font required for icons
|
||||
- Python 3 support configured
|
||||
- Git integration via fugitive and gitsigns
|
||||
|
||||
## Technical Constraints
|
||||
- Dependent on external LSP servers
|
||||
- Requires Neovim 0.8.0 or higher
|
||||
- Some features require system dependencies (make, git)
|
||||
- Terminal with true color support recommended
|
||||
|
||||
## Configuration Structure
|
||||
```
|
||||
.
|
||||
├── init.lua (Main configuration)
|
||||
└── lua/
|
||||
├── kickstart/
|
||||
│ └── plugins/ (Plugin-specific configs)
|
||||
└── custom/
|
||||
└── plugins/ (Custom plugin configs)
|
||||
Loading…
Add table
Add a link
Reference in a new issue