Files
2025-11-08 15:32:14 +01:00

72 lines
2.3 KiB
Markdown

# 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