2.1 KiB
2.1 KiB
AGENTS.md - Neovim Configuration Guide
Overview
This is a kickstart.nvim fork - a modular Neovim configuration written in Lua. Code is organized in:
/init.lua- Main entry point (kept concise for learning)/lua/custom/- User custom configurations and plugins/lua/kickstart/- Core plugin configurations
Code Style Guidelines
Lua Formatting
- Formatter: Stylua (enforced via CI)
- Config:
.stylua.toml(column_width=160, indent=2 spaces, auto quote style) - Command:
stylua .to format all files,stylua --check .to verify
Code Conventions
- Imports: Use
require()to load modules; prefer relative paths from/lua/ - Comments: Use
--for single-line,--[[for block comments; include URLs for plugins - Naming: snake_case for variables/functions, PascalCase for classes
- Lua tables: Preferred data structure; use clear key names
- Error handling: Use
pcall()for risky operations; fail gracefully with fallbacks
Plugin Structure
- Each plugin is a separate file returning a table with name, dependencies, config
- Use
event,cmd,ftkeys for lazy-loading optimization - Config functions should be self-contained and well-commented
Build/Lint/Test Commands
Format & Lint
# Format all Lua files
stylua .
# Check formatting without changing files
stylua --check .
# Format specific file
stylua path/to/file.lua
No traditional tests
This is a configuration repo, not a testable library. Validation is manual:
- Start Neovim:
nvim - Check
:Lazystatus for plugin errors - Review
:checkhealthfor configuration issues - Test manually in editor to verify keymaps/features work
Linting
- Neovim's built-in Lua LSP provides type checking (integrated via plugin)
- The GitHub Actions workflow runs
stylua --checkon PRs
Key Notes
- Language: Lua 5.1+ (Neovim's version)
- No external build process: Configuration is interpreted at runtime
- Plugin manager: Lazy.nvim (auto-installs missing plugins on startup)
- Target: Latest Neovim stable + nightly versions