2.3 KiB
2.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 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
# Test the current configuration by running nixvim
nix run .
# Verify configuration is not broken
nix flake check .
Installation
# Install the configuration to user profile (first time)
./install.sh
# or manually:
nix profile install .
# Update existing installation
./update.sh
Git Workflow Scripts
# 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
- Create new
.nixfiles in theconfig/directory for specific feature sets - Import them in
config/default.nixusing the imports array - Test with
nix run .before committing - Use the git workflow scripts to maintain the branch structure