3.3 KiB
3.3 KiB
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
- LSP & Completion: nvim-lspconfig, nvim-cmp, mason ecosystem
- Fuzzy Finding: Telescope with fzf-native extension
- Syntax: nvim-treesitter with auto-update
- Formatting: conform.nvim with stylua for Lua
- Git: gitsigns for git integration
- UI: which-key, neo-tree (file explorer)
- 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