This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a macOS dotfiles repository managing configuration for development tools and terminal environments. The primary structure uses a config/.config/ directory containing all application configurations.
config/.config/- Main configuration directory containing:fish/- Fish shell configuration and completionsnvim/- Neovim (LazyVim) configurationghostty/- Ghostty terminal emulator configkitty/- Kitty terminal emulator configstarship/- Starship prompt configuration
config.fish- Main shell configuration with:- Homebrew environment setup (macOS)
- PATH configuration for Cargo, Bun, and Bob (nvim version manager)
- Starship prompt initialization
- Shell aliases (eza for ls, bat for cat)
completions/- Auto-completion scripts for various tools (uv, bun, swift, colima)conf.d/- Additional configuration snippets loaded on shell startup
Based on LazyVim distribution. Configuration uses Lua plugin system in lua/plugins/:
-
lsp.lua- LSP configurations with detailed setup for:- Swift (sourcekit LSP with custom root detection)
- Python (commented ty + ruff setup)
- Zig (commented zls setup)
- Custom diagnostic formatting showing source prefixes
- Language-specific priority and file settings
-
coding.lua- Coding tools:- Claude Code integration (
coder/claudecode.nvim) with extensive keybindings under<leader>a - UFO folding with LSP and indent providers
- Claude Code integration (
-
format.lua- Conform.nvim formatters:- Swift: swiftformat (Homebrew installed at
/opt/homebrew/bin/swiftformat) - Python: ruff_format (installed at
/Users/guzman.109/.local/bin/ruff) - Zig: zigfmt
- Format on save enabled with 500ms timeout
- Swift: swiftformat (Homebrew installed at
-
lint.lua- Linting configuration -
theme.lua- Theme management:- Catppuccin and Tokyo Night themes
- Transparent background enabled for Catppuccin
- Themery plugin for theme switching (
<leader>tt) - Rainbow delimiters plugin
-
snacks.lua- Snacks.nvim dashboard with Git integration:- Custom dashboard sections showing GitHub notifications, issues, PRs
- Git status terminal section
- Uses
ghCLI andcolorscript
-
lua/config/options.lua- Global settings:- Auto-format disabled by default (
vim.g.autoformat = false) - Root detection set to current working directory
- Python LSP set to basedpyright and ruff
- Auto-format disabled by default (
Ghostty (config/.config/ghostty/config):
- MonoLisa font at 14pt
- Catppuccin theme (light/dark auto-switching)
- Background opacity 0.8 with blur
- Fish shell integration
- Fullscreen by default
Kitty (config/.config/kitty/):
kitty.conf- Main configurationdark-theme.auto.conf/light-theme.auto.conf- Theme files
- Custom format with time, username, directory, git status
- Language version indicators for many programming languages
- Custom success/error symbols
- 3-second command timeout
- 12-hour time format
This is a dotfiles repository - there are no build, test, or lint commands at the repository level. Changes are typically:
- Edit configuration files directly
- Test by reloading the affected application (e.g.,
source ~/.config/fish/config.fish, reopen nvim) - Commit changes with git
- LazyVim: Neovim uses LazyVim distribution. Plugin modifications should follow LazyVim patterns (returning plugin specs from
lua/plugins/*.lua) - LSP Priority: Swift, Python, and Zig have custom LSP priority setup to ensure primary language servers attach first
- Paths: Several configurations use absolute paths (e.g., formatter paths, local bins). When modifying, maintain these absolute references
- macOS-specific: Fish config checks for Darwin (macOS) before setting up Homebrew
- Shell Integration: Both Ghostty and Kitty are configured for Fish shell integration