Files
nvim/CLAUDE.md
T

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 :Lazy to manage plugins
  • Sync plugins: :Lazy sync to update all plugins
  • Check plugin health: :checkhealth to 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:

  1. init.lua - Entry point that bootstraps lazy.nvim and sets leaders
  2. lua/lazy_setup.lua - Configures lazy.nvim with AstroNvim and imports
  3. lua/community.lua - Imports AstroCommunity plugin packs for language support
  4. lua/plugins/ - Custom plugin configurations
  5. lua/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 autocmds
    • astroui.lua - UI configuration
    • bufferline.lua - Buffer/tab management
    • neotree.lua - File explorer configuration with extensive ignore patterns
    • mason.lua - LSP server management
    • obsidian.lua - Note-taking integration

Key Configuration Patterns

  • The configuration uses environment variables (e.g., LAZY for 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