2.1 KiB
2.1 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 AstroNvim v4+ framework. The configuration follows a modular plugin architecture using lazy.nvim as the plugin manager.
Commands
Neovim Development
- Install/Update plugins: Launch Neovim and run
:Lazyto manage plugins - Sync plugins:
:Lazy syncto update all plugins - Check plugin health:
:checkhealthto verify Neovim setup
Code Quality Tools
- Lua linting: Uses Selene for Lua linting (configured in
selene.toml) - Lua formatting: Uses Stylua with 120-character line width, 2-space indents (configured in
.stylua.toml)
Architecture
Core Structure
The configuration bootstraps lazy.nvim and loads plugins in a specific order:
init.lua- Entry point that bootstraps lazy.nvim and sets leaderslua/lazy_setup.lua- Configures lazy.nvim with AstroNvim and importslua/community.lua- Imports AstroCommunity plugin packs for language supportlua/plugins/- Custom plugin configurationslua/polish.lua- Final configuration applied after all plugins load
Plugin Organization
- Base Framework: AstroNvim v4 provides the core configuration framework
- Language Packs: Imported from AstroCommunity for Go, TypeScript, Markdown, HTML/CSS, etc.
- Custom Plugins: Located in
lua/plugins/directory, each file configures specific functionality:astrocore.lua- Core settings, keymappings, and autocmdsastroui.lua- UI configurationbufferline.lua- Buffer/tab managementneotree.lua- File explorer configuration with extensive ignore patternsmason.lua- LSP server managementobsidian.lua- Note-taking integration
Key Configuration Patterns
- The configuration uses environment variables (e.g.,
LAZYfor custom lazy.nvim path) - Defensive programming with pcall() for robust loading across environments
- Shared ignore patterns between neotree and other file explorers to maintain consistency
- Leaders: Space as main leader, comma as local leader