84 lines
3.3 KiB
Markdown
84 lines
3.3 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Overview
|
|
|
|
This is a Neovim configuration based on kickstart.nvim, a minimal starting point for Neovim configuration. The codebase is primarily single-file (init.lua) with modular plugin extensions.
|
|
|
|
## Commands
|
|
|
|
### Formatting and Linting
|
|
- **Format Lua code**: Use stylua via Mason tool installer (automatically configured)
|
|
- **Lint files**: Configured through nvim-lint plugin with markdownlint for markdown files
|
|
- **Check formatting**: GitHub Actions workflow runs stylua formatting checks
|
|
|
|
### Development Workflow
|
|
- **Start Neovim**: `nvim`
|
|
- **Plugin management**: `:Lazy` (view plugin status, updates, etc.)
|
|
- **Health check**: `:checkhealth` (verify external dependencies)
|
|
- **Mason management**: `:Mason` (manage LSP servers, formatters, linters)
|
|
|
|
### Key External Dependencies
|
|
- `git`, `make`, `unzip`, C Compiler (`gcc`)
|
|
- `ripgrep` (for Telescope search functionality)
|
|
- Clipboard tool (xclip/xsel/win32yank)
|
|
- Optional: Nerd Font (set `vim.g.have_nerd_font = true` in init.lua)
|
|
|
|
## Architecture
|
|
|
|
### File Structure
|
|
```
|
|
init.lua # Main configuration file (single-file approach)
|
|
lua/
|
|
├── kickstart/ # Kickstart.nvim optional plugins
|
|
│ ├── health.lua # Health check functionality
|
|
│ └── plugins/ # Modular plugin configurations
|
|
│ ├── autopairs.lua
|
|
│ ├── debug.lua
|
|
│ ├── gitsigns.lua
|
|
│ ├── indent_line.lua
|
|
│ ├── lint.lua
|
|
│ └── neo-tree.lua
|
|
└── custom/ # User custom plugins and configurations
|
|
└── plugins/
|
|
├── init.lua # Custom plugin loader (sets relativenumber)
|
|
├── dap.lua # Debug adapter protocol
|
|
├── hardtime.lua
|
|
└── codium.lua # Codeium AI completion
|
|
```
|
|
|
|
### Plugin Management
|
|
- **Plugin manager**: lazy.nvim
|
|
- **LSP management**: Mason + mason-lspconfig + mason-tool-installer
|
|
- **Automatic installation**: Tools specified in `ensure_installed` table are auto-installed via Mason
|
|
|
|
### Core Plugin Categories
|
|
1. **LSP & Completion**: nvim-lspconfig, nvim-cmp, mason ecosystem
|
|
2. **Fuzzy Finding**: Telescope with fzf-native extension
|
|
3. **Syntax**: nvim-treesitter with auto-update
|
|
4. **Formatting**: conform.nvim with stylua for Lua
|
|
5. **Git**: gitsigns for git integration
|
|
6. **UI**: which-key, neo-tree (file explorer)
|
|
7. **Debugging**: nvim-dap with UI extensions
|
|
|
|
### Configuration Philosophy
|
|
- Single init.lua file keeps configuration simple and readable
|
|
- Modular plugins in separate files for organization
|
|
- Lazy loading for performance
|
|
- Format-on-save enabled with LSP fallback
|
|
- Automatic tool installation via Mason
|
|
|
|
### Custom Extensions
|
|
- Relative line numbers enabled by default
|
|
- Codeium AI completion integration
|
|
- Additional debugging capabilities with nvim-dap
|
|
- Hard time plugin for Vim training
|
|
|
|
## Development Notes
|
|
|
|
- The configuration follows kickstart.nvim principles: readable, documented, and minimal
|
|
- LSP servers and tools are automatically installed via Mason
|
|
- Format-on-save is configured with LSP fallback for unsupported file types
|
|
- Plugin lazy-loading is used extensively for performance
|
|
- Custom plugins should be added to `lua/custom/plugins/` directory |