kickstart.nvim/CLAUDE.md

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