docs: update project progress and context documentation for clarity and structure
Signed-off-by: juliano.barbosa <julianomb@gmail.com>
This commit is contained in:
parent
0a9b04a7c8
commit
b8fb6c42f6
|
@ -1,31 +1,34 @@
|
||||||
# Product Context
|
# Product Context
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
Kickstart.nvim is a starting point for Neovim configuration that aims to be:
|
Kickstart.nvim is a Neovim configuration starting point designed to be:
|
||||||
- Small and manageable
|
- **Small and manageable**
|
||||||
- Single-file based (though modular options exist)
|
- **Single-file based** (with modular options available)
|
||||||
- Completely documented
|
- **Completely documented**
|
||||||
- Educational and customizable
|
- **Educational and customizable**
|
||||||
|
|
||||||
## Problems Solved
|
## Problems Solved
|
||||||
1. Provides a quick start for new Neovim users without overwhelming them
|
Kickstart.nvim addresses the following challenges:
|
||||||
2. Offers a documented foundation that users can learn from and modify
|
1. **Quick Start**: Provides an easy entry point for new Neovim users without overwhelming them.
|
||||||
3. Reduces the complexity of initial Neovim setup
|
2. **Documentation**: Offers a well-documented foundation that users can learn from and modify.
|
||||||
4. Balances features with simplicity
|
3. **Simplified Setup**: Reduces the complexity of the initial Neovim setup.
|
||||||
|
4. **Balanced Features**: Strikes a balance between functionality and simplicity.
|
||||||
|
|
||||||
## How It Works
|
## How It Works
|
||||||
1. Users clone the repository to their Neovim config directory
|
Kickstart.nvim operates through the following steps:
|
||||||
2. The configuration automatically installs lazy.nvim (plugin manager)
|
1. **Cloning**: Users clone the repository into their Neovim configuration directory.
|
||||||
3. Core features are loaded through a well-documented init.lua file
|
2. **Automatic Installation**: The configuration automatically installs `lazy.nvim`, the plugin manager.
|
||||||
4. Additional features can be enabled through the plugins system
|
3. **Core Features**: Loads core features through a well-documented `init.lua` file.
|
||||||
5. Users can extend functionality through custom plugins in lua/custom/plugins/
|
4. **Plugins System**: Additional features can be enabled through the plugins system.
|
||||||
|
5. **Customization**: Users can extend functionality with custom plugins located in `lua/custom/plugins/`.
|
||||||
|
|
||||||
## Key Features
|
## Key Features
|
||||||
1. LSP (Language Server Protocol) integration
|
Kickstart.nvim includes the following key features:
|
||||||
2. Syntax highlighting via Treesitter
|
1. **LSP Integration**: Supports Language Server Protocol for enhanced coding assistance.
|
||||||
3. Fuzzy finding with Telescope
|
2. **Syntax Highlighting**: Utilizes Treesitter for advanced syntax highlighting.
|
||||||
4. Git integration
|
3. **Fuzzy Finding**: Includes Telescope for efficient fuzzy finding.
|
||||||
5. Auto-completion
|
4. **Git Integration**: Provides seamless Git integration.
|
||||||
6. File navigation
|
5. **Auto-completion**: Supports auto-completion for faster coding.
|
||||||
7. Custom keymaps for improved workflow
|
6. **File Navigation**: Facilitates easy file navigation.
|
||||||
8. Built-in formatting support
|
7. **Custom Keymaps**: Allows custom key mappings for an improved workflow.
|
||||||
|
8. **Formatting Support**: Comes with built-in formatting support.
|
|
@ -1,52 +1,54 @@
|
||||||
# Project Progress
|
# Project Progress Report
|
||||||
|
|
||||||
## What Works
|
## What Works
|
||||||
1. Core Functionality
|
|
||||||
|
### 1. Core Functionality
|
||||||
- ✅ Plugin management system (lazy.nvim)
|
- ✅ Plugin management system (lazy.nvim)
|
||||||
- ✅ Basic Vim configurations
|
- ✅ Basic Vim configurations
|
||||||
- ✅ Key mappings and shortcuts
|
- ✅ Key mappings and shortcuts
|
||||||
- ✅ LSP integration
|
- ✅ LSP integration
|
||||||
- ✅ Treesitter setup
|
- ✅ Treesitter setup
|
||||||
|
|
||||||
2. Plugin Features
|
### 2. Plugin Features
|
||||||
- ✅ Fuzzy finding (telescope.nvim)
|
- ✅ Fuzzy finding (telescope.nvim)
|
||||||
- ✅ Git integration (gitsigns.nvim)
|
- ✅ Git integration (gitsigns.nvim)
|
||||||
- ✅ Autocompletion (nvim-cmp)
|
- ✅ Autocompletion (nvim-cmp)
|
||||||
- ✅ File navigation
|
- ✅ File navigation
|
||||||
- ✅ Status line
|
- ✅ Status line
|
||||||
|
|
||||||
3. Development Tools
|
### 3. Development Tools
|
||||||
- ✅ LSP servers configuration
|
- ✅ LSP servers configuration
|
||||||
- ✅ Formatting setup
|
- ✅ Formatting setup
|
||||||
- ✅ Diagnostics
|
- ✅ Diagnostics
|
||||||
- ✅ Syntax highlighting
|
- ✅ Syntax highlighting
|
||||||
- ✅ Mason package management
|
- ✅ Mason package management
|
||||||
|
|
||||||
4. Documentation
|
### 4. Documentation
|
||||||
- ✅ Installation instructions
|
- ✅ Installation instructions
|
||||||
- ✅ Basic usage guide
|
- ✅ Basic usage guide
|
||||||
- ✅ Configuration explanations
|
- ✅ Configuration explanations
|
||||||
- ✅ Plugin documentation
|
- ✅ Plugin documentation
|
||||||
|
|
||||||
## What's Left to Build
|
## What's Left to Build
|
||||||
1. Enhancements
|
|
||||||
|
### 1. Enhancements
|
||||||
- ⏳ Additional language support
|
- ⏳ Additional language support
|
||||||
- ⏳ More custom snippets
|
- ⏳ More custom snippets
|
||||||
- ⏳ Enhanced debugging capabilities
|
- ⏳ Enhanced debugging capabilities
|
||||||
|
|
||||||
2. Documentation
|
### 2. Documentation
|
||||||
- ⏳ Advanced configuration guides
|
- ⏳ Advanced configuration guides
|
||||||
- ⏳ Troubleshooting guides
|
- ⏳ Troubleshooting guides
|
||||||
- ⏳ Best practices documentation
|
- ⏳ Best practices documentation
|
||||||
|
|
||||||
## Progress Status
|
## Progress Status
|
||||||
- Core functionality: 100% complete
|
- **Core functionality:** 100% complete
|
||||||
- Plugin integrations: 100% complete
|
- **Plugin integrations:** 100% complete
|
||||||
- Documentation: 80% complete
|
- **Documentation:** 80% complete
|
||||||
- Testing: Ongoing
|
- **Testing:** Ongoing
|
||||||
- Bug fixes: Ongoing maintenance
|
- **Bug fixes:** Ongoing maintenance
|
||||||
|
|
||||||
### Next Steps
|
## Next Steps
|
||||||
1. Continue gathering user feedback
|
1. Continue gathering user feedback
|
||||||
2. Address reported issues
|
2. Address reported issues
|
||||||
3. Enhance documentation
|
3. Enhance documentation
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
## Architecture Patterns
|
## Architecture Patterns
|
||||||
|
|
||||||
### 1. Plugin System
|
### 1. Plugin System
|
||||||
- Uses lazy.nvim for plugin management
|
- Uses `lazy.nvim` for plugin management.
|
||||||
- Plugins are defined in init.lua
|
- Plugins are defined in `init.lua`.
|
||||||
- Supports lazy loading via events/commands
|
- Supports lazy loading via events/commands.
|
||||||
- Custom plugins can be added in lua/custom/plugins/
|
- Custom plugins can be added in `lua/custom/plugins/`.
|
||||||
|
|
||||||
### 2. Configuration Structure
|
### 2. Configuration Structure
|
||||||
```
|
```
|
||||||
|
@ -23,80 +23,80 @@
|
||||||
### 3. Key Design Patterns
|
### 3. Key Design Patterns
|
||||||
|
|
||||||
#### Modular Configuration
|
#### Modular Configuration
|
||||||
- Core settings in init.lua
|
- Core settings in `init.lua`.
|
||||||
- Plugin-specific configurations in separate files
|
- Plugin-specific configurations in separate files.
|
||||||
- Custom configurations isolated in lua/custom/
|
- Custom configurations isolated in `lua/custom/`.
|
||||||
|
|
||||||
#### Event-Driven Architecture
|
#### Event-Driven Architecture
|
||||||
- Uses Neovim's event system for plugin loading
|
- Uses Neovim's event system for plugin loading.
|
||||||
- Autocommands for specific behaviors
|
- Autocommands for specific behaviors.
|
||||||
- LSP events for IDE features
|
- LSP events for IDE features.
|
||||||
|
|
||||||
#### Layer-Based Organization
|
#### Layer-Based Organization
|
||||||
1. Core Settings Layer
|
1. **Core Settings Layer**
|
||||||
- Basic Vim options
|
- Basic Vim options.
|
||||||
- Key mappings
|
- Key mappings.
|
||||||
- Global variables
|
- Global variables.
|
||||||
|
|
||||||
2. Plugin Layer
|
2. **Plugin Layer**
|
||||||
- Plugin management
|
- Plugin management.
|
||||||
- Plugin configurations
|
- Plugin configurations.
|
||||||
- Plugin-specific settings
|
- Plugin-specific settings.
|
||||||
|
|
||||||
3. LSP Layer
|
3. **LSP Layer**
|
||||||
- Language server configurations
|
- Language server configurations.
|
||||||
- Completion setup
|
- Completion setup.
|
||||||
- Diagnostic settings
|
- Diagnostic settings.
|
||||||
|
|
||||||
4. UI Layer
|
4. **UI Layer**
|
||||||
- Colorscheme
|
- Colorscheme.
|
||||||
- Statusline
|
- Statusline.
|
||||||
- Visual enhancements
|
- Visual enhancements.
|
||||||
|
|
||||||
## Technical Decisions
|
## Technical Decisions
|
||||||
|
|
||||||
### 1. Configuration Language
|
### 1. Configuration Language
|
||||||
- Lua chosen over VimScript for:
|
- Lua chosen over VimScript for:
|
||||||
- Better performance
|
- Better performance.
|
||||||
- Modern syntax
|
- Modern syntax.
|
||||||
- Rich data structures
|
- Rich data structures.
|
||||||
- Better integration with Neovim
|
- Better integration with Neovim.
|
||||||
|
|
||||||
### 2. Plugin Selection
|
### 2. Plugin Selection
|
||||||
- Minimal but powerful set of defaults
|
- Minimal but powerful set of defaults.
|
||||||
- Focus on maintained, actively developed plugins
|
- Focus on maintained, actively developed plugins.
|
||||||
- Preference for Lua-based plugins
|
- Preference for Lua-based plugins.
|
||||||
- Built-in LSP over CoC or similar alternatives
|
- Built-in LSP over CoC or similar alternatives.
|
||||||
|
|
||||||
### 3. Code Organization
|
### 3. Code Organization
|
||||||
- Single init.lua for easy understanding
|
- Single `init.lua` for easy understanding.
|
||||||
- Modular structure available through kickstart-modular.nvim
|
- Modular structure available through `kickstart-modular.nvim`.
|
||||||
- Clear separation between core and user customizations
|
- Clear separation between core and user customizations.
|
||||||
|
|
||||||
### 4. Performance Considerations
|
### 4. Performance Considerations
|
||||||
- Lazy loading of plugins
|
- Lazy loading of plugins.
|
||||||
- Efficient event handling
|
- Efficient event handling.
|
||||||
- Minimal startup impact
|
- Minimal startup impact.
|
||||||
- Careful LSP configuration
|
- Careful LSP configuration.
|
||||||
|
|
||||||
## Key Technical Standards
|
## Key Technical Standards
|
||||||
|
|
||||||
1. Code Style
|
1. **Code Style**
|
||||||
- Consistent Lua formatting
|
- Consistent Lua formatting.
|
||||||
- Clear commenting
|
- Clear commenting.
|
||||||
- Documented configuration options
|
- Documented configuration options.
|
||||||
|
|
||||||
2. Plugin Management
|
2. **Plugin Management**
|
||||||
- Versioned dependencies
|
- Versioned dependencies.
|
||||||
- Conditional loading
|
- Conditional loading.
|
||||||
- Clear plugin specifications
|
- Clear plugin specifications.
|
||||||
|
|
||||||
3. Error Handling
|
3. **Error Handling**
|
||||||
- Protected calls for plugin loading
|
- Protected calls for plugin loading.
|
||||||
- Fallbacks for missing dependencies
|
- Fallbacks for missing dependencies.
|
||||||
- Clear error messages
|
- Clear error messages.
|
||||||
|
|
||||||
4. Documentation
|
4. **Documentation**
|
||||||
- Inline documentation
|
- Inline documentation.
|
||||||
- Help files
|
- Help files.
|
||||||
- Clear user instructions
|
- Clear user instructions.
|
|
@ -3,62 +3,65 @@
|
||||||
## Technologies Used
|
## Technologies Used
|
||||||
|
|
||||||
### Core
|
### Core
|
||||||
- Neovim (Latest stable or nightly)
|
- **Neovim**: Latest stable or nightly version
|
||||||
- Lua (Primary configuration language)
|
- **Lua**: Primary configuration language
|
||||||
- Git (Version control and plugin management)
|
- **Git**: Version control and plugin management
|
||||||
|
|
||||||
### Plugin Management
|
### Plugin Management
|
||||||
- lazy.nvim (Plugin manager)
|
- **lazy.nvim**: Plugin manager
|
||||||
|
|
||||||
### Major Plugins and Tools
|
### Major Plugins and Tools
|
||||||
1. LSP Related
|
|
||||||
- nvim-lspconfig (LSP configuration)
|
|
||||||
- mason.nvim (LSP/DAP/Linter installer)
|
|
||||||
- mason-lspconfig.nvim (Mason/LSP integration)
|
|
||||||
- cmp-nvim-lsp (LSP completion integration)
|
|
||||||
|
|
||||||
2. Completion and Snippets
|
#### 1. LSP Related
|
||||||
- nvim-cmp (Completion engine)
|
- **nvim-lspconfig**: LSP configuration
|
||||||
- LuaSnip (Snippet engine)
|
- **mason.nvim**: LSP/DAP/Linter installer
|
||||||
|
- **mason-lspconfig.nvim**: Mason/LSP integration
|
||||||
|
- **cmp-nvim-lsp**: LSP completion integration
|
||||||
|
|
||||||
3. Development Tools
|
#### 2. Completion and Snippets
|
||||||
- nvim-treesitter (Syntax highlighting)
|
- **nvim-cmp**: Completion engine
|
||||||
- telescope.nvim (Fuzzy finder)
|
- **LuaSnip**: Snippet engine
|
||||||
- gitsigns.nvim (Git integration)
|
|
||||||
- conform.nvim (Formatting)
|
#### 3. Development Tools
|
||||||
|
- **nvim-treesitter**: Syntax highlighting
|
||||||
|
- **telescope.nvim**: Fuzzy finder
|
||||||
|
- **gitsigns.nvim**: Git integration
|
||||||
|
- **conform.nvim**: Formatting
|
||||||
|
|
||||||
## Development Setup
|
## Development Setup
|
||||||
Required external dependencies:
|
|
||||||
- git
|
|
||||||
- make
|
|
||||||
- unzip
|
|
||||||
- C Compiler (gcc)
|
|
||||||
- ripgrep
|
|
||||||
- Clipboard tool (platform dependent)
|
|
||||||
- Optional: Nerd Font
|
|
||||||
|
|
||||||
Language-specific requirements:
|
### Required External Dependencies
|
||||||
- npm (for TypeScript/JavaScript)
|
- **git**
|
||||||
- go (for Golang)
|
- **make**
|
||||||
- python3 (for Python)
|
- **unzip**
|
||||||
- etc. based on languages used
|
- **C Compiler (gcc)**
|
||||||
|
- **ripgrep**
|
||||||
|
- **Clipboard tool** (platform dependent)
|
||||||
|
- **Optional**: Nerd Font
|
||||||
|
|
||||||
|
### Language-Specific Requirements
|
||||||
|
- **npm**: for TypeScript/JavaScript
|
||||||
|
- **go**: for Golang
|
||||||
|
- **python3**: for Python
|
||||||
|
- Other dependencies based on languages used
|
||||||
|
|
||||||
## Technical Constraints
|
## Technical Constraints
|
||||||
1. Memory Usage
|
|
||||||
|
### 1. Memory Usage
|
||||||
- Configured for reasonable memory usage
|
- Configured for reasonable memory usage
|
||||||
- Plugin lazy-loading enabled
|
- Plugin lazy-loading enabled
|
||||||
|
|
||||||
2. Performance
|
### 2. Performance
|
||||||
- Startup optimizations in place
|
- Startup optimizations in place
|
||||||
- LSP configurations are lazy-loaded
|
- LSP configurations are lazy-loaded
|
||||||
- Treesitter ensures efficient syntax highlighting
|
- Treesitter ensures efficient syntax highlighting
|
||||||
|
|
||||||
3. Platform Compatibility
|
### 3. Platform Compatibility
|
||||||
- Works across Linux, macOS, and Windows
|
- Works across Linux, macOS, and Windows
|
||||||
- Some features may require platform-specific setup
|
- Some features may require platform-specific setup
|
||||||
- Windows may need additional configuration for certain tools
|
- Windows may need additional configuration for certain tools
|
||||||
|
|
||||||
4. Dependencies
|
### 4. Dependencies
|
||||||
- Requires Neovim 0.9.0 or newer
|
- Requires Neovim 0.9.0 or newer
|
||||||
- Some LSP features require external language servers
|
- Some LSP features require external language servers
|
||||||
- Format-on-save requires compatible formatters
|
- Format-on-save requires compatible formatters
|
Loading…
Reference in New Issue