# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Overview This is a nixvim configuration repository that provides a standalone Neovim configuration using Nix flakes. The configuration is built using the nixvim framework, which allows declarative Neovim configuration through Nix expressions. ## Development Commands ### Testing Configuration ```bash # Test the current configuration by running nixvim nix run . # Verify configuration is not broken nix flake check . ``` ### Installation ```bash # Install the configuration to user profile (first time) ./install.sh # or manually: nix profile install . # Update existing installation ./update.sh ``` ### Git Workflow Scripts ```bash # Switch to dev branch and pull latest changes ./pull.sh # Commit changes with timestamp, merge to main, and push ./push.sh ``` ## Architecture ### Core Structure - **flake.nix**: Main flake definition with nixpkgs, nixvim, and flake-parts inputs - **config/**: Contains all nixvim configuration modules - **default.nix**: Main configuration file with plugins, options, and keymaps - **bufferline.nix**: Example modular configuration for bufferline plugin - **flake.lock**: Dependency lockfile ### Configuration System The configuration uses nixvim's module system: - Configurations are split into logical modules in the `config/` directory - Each module can be imported in `config/default.nix` - The main configuration includes essential plugins like Telescope, LSP support, Treesitter, and various productivity tools ### Key Features Enabled - Nord colorscheme with line numbers and relative numbering - Comprehensive plugin suite including Telescope, nvim-tree, fugitive, lazygit - Auto-completion with cmp and all sources enabled - Custom keymap for hop (two-character jump) on 's' key - Tab width set to 2 spaces ### Branch Strategy - **main**: Stable configuration - **dev**: Development branch for testing changes - Scripts automate switching and merging between branches ## Adding New Configurations 1. Create new `.nix` files in the `config/` directory for specific feature sets 2. Import them in `config/default.nix` using the imports array 3. Test with `nix run .` before committing 4. Use the git workflow scripts to maintain the branch structure