Files
setup/AGENTS.md
T
Radu Macocian (admac) 815f689f3c fixed code companion
2026-04-30 16:27:09 +02:00

2.7 KiB

AGENTS.md

Agent-agnostic guidance for any coding agent working in this repository. Keep all agent-agnostic instructions in this file. Agent-specific guidance lives in the agent's own file (e.g. CLAUDE.md).

Repository purpose

Personal dotfiles repo. The working tree is structured to be cloned/symlinked at $HOME — the path .config/nvim/ here corresponds to ~/.config/nvim/ on the user's machine. There is no build, test, or lint step; changes are validated by reloading Neovim.

.gitignore excludes .config/nvim/lazy-lock.json (lazy.nvim's plugin lockfile is not tracked).

Neovim configuration architecture

Entry points and load order:

  1. .config/nvim/init.luarequire("wicked")
  2. .config/nvim/lua/wicked/init.lua requires, in order: wicked.remap (keymaps), wicked.set (options), wicked.lazy (plugin manager bootstrap + spec).
  3. After lazy.setup runs, Neovim sources every file under .config/nvim/after/plugin/*.lua automatically (standard after/ runtime path). Each of those files configures one plugin loaded by lazy.

This means: plugin declarations live in lua/wicked/lazy.lua, but plugin configuration (setup calls, keymaps, autocmds) lives in after/plugin/<name>.lua. When adding a plugin, both files usually need a change unless the plugin is configured inline via opts/config in the lazy spec.

DAP adapters are split out under lua/dap/ (dap-haskell.lua, dap-odoo.lua, dap-dotnet.lua) and are required from after/plugin/dap.lua.

Leader key is <Space>, set in both remap.lua and set.lua (the duplicate in set.lua is intentional defensive ordering).

Notable plugin choices

  • lazy.nvim with checker.enabled = true (auto-checks for updates daily).
  • snacks.nvim is used for picker/terminal/etc. — it replaced telescope (see commit 12db5d8). Don't reintroduce telescope.
  • everforest is the active colorscheme; nord is installed but not active.
  • codecompanion.nvim pinned to ^18.0.0.
  • roslyn.nvim for C# LSP (separate from the standard nvim-lspconfig flow).
  • tidal.nvim + strudel.nvim for live-coding music; tidal expects ghci at ~/.ghcup/bin/ghci and a SuperDirt boot file at ~/.local/share/tidal/BootSuperDirt.scd.
  • obsidian.nvim workspace points at ~/notes.
  • persistence.nvim stores sessions under stdpath("state")/sessions/.
  • Undo files live at ~/.vim/undodir (set in wicked/set.lua), not the default location.

Working in this repo

  • To preview changes, reload Neovim or :source the affected file. There are no CI or test commands to run.
  • lazy-lock.json is gitignored — don't try to commit it. Plugin version pinning happens via the spec in lua/wicked/lazy.lua.