72 lines
2.3 KiB
Markdown
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 |