The old Neovim configuration (formerly github.com/rootiest/rootiest-nvim,
now preserved on the 'legacy' branch) has been superseded by this repo.
This merge links its history in for continuity without altering the
current tree.
Typing a 3rd backtick after mini.pairs' `` pair now expands into a fenced
code block instead of pairing into 4 backticks: the cursor lands right
after the opener (ready for a language id), and backspacing the fence
back out removes the empty closing fence too.
Also includes an already-in-progress .gitignore expansion (AGENTS/ and
agent-generated docs/ subdirs) and a plugins.lua tabs-to-spaces reformat
that were sitting uncommitted in the working tree.
Adds a normal-mode <Tab> binding that calls sidekick.nes_jump_or_apply() so
NES suggestions can be accepted without entering insert mode. Enables
vim.lsp.inline_completion so the insert-mode <Tab> chain (snippet → NES →
native inline completion → fallback) is fully wired. Updates the README
keymaps table to reflect both modes and the complete Tab chain.
Sets the check command to clippy via both vim.lsp.config (for system-installed
rust-analyzer via rustup) and the mason-lspconfig handler, so diagnostics
reflect clippy lints rather than cargo check output.
Replaces the minimal hand-written ignore list with generated gitignore.io
patterns for Lua and Vim, plus a boilerplate template covering OS artefacts,
temp directories, and AI session/rules files (CLAUDE.md, GEMINI.md, .claud*,
.gemin*, .remember, etc.).
- Add sidekick.nvim: Next Edit Suggestions (NES) via Copilot LSP, integrated
AI CLI terminal, and Snacks picker send action (<Alt-a>)
- Add haunt.nvim: in-buffer annotation/bookmark manager with Snacks picker
and 6 keymaps (<leader>ha/ht/hd/hn/hp/hl)
- Wire blink.cmp <Tab> to chain snippet_forward -> NES -> inline completion
- Expose haunt_all and haunt_buffer as Sidekick prompt contexts
- Suppress lua_ls "Loading workspace" progress bar via Noice route
- Update README to document all new plugins, keymaps, and post-install steps
- Add lua/bootstrap.lua: redirects Neovim data/state paths when running
as root (e.g. via symlinked ~/.config/nvim) to prevent root sessions
from conflicting with the user-level install
- Update init.lua to require("bootstrap") before any other module
- Standardize license headers across all Lua files (capitalize author,
add SPDX-License-Identifier)
- Update README with full plugin stack section, bootstrap docs,
machine-local override docs, qalculate dependency, and blink.cmp
auto-rebuild note
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add focusline.nvim for scroll-aware cursor centering
- Add kitty-scrollback.nvim for Kitty terminal scrollback integration
- Add qalc.nvim for inline calculator support
- Add blink.lib as explicit dependency for blink.cmp
- Fix blink.cmp binary detection to check v2 install path first
- Add PackChanged autocmd to auto-rebuild blink.cmp after updates
- Expand inc-rename.nvim config with all available options documented
- Add luv library path to lazydev for vim.uv completions
- Consolidate leader key setup into options.lua (remove duplicate in init.lua)
- Add autoread + FocusGained/CursorHold triggers for external file changes
- Add BufReadPost autocmd to restore last cursor position on file open
- Reorganize options.lua with section headers and logical grouping
- Update plugin lockfile revisions (blink.cmp, conform, gitsigns, lualine, etc.)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add gx.nvim for smart URL opening (GitHub, plugins, package.json, search)
- Add comment-box.nvim with keymaps for creating/deleting comment boxes
- Load machine-local secrets.lua and local.lua from ~/.config/.user-dots/nvim/
- Update README with new plugins, keymaps, and portability highlight
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Refactor terminal title logic in lua/options.lua with Kitty detection and OSC 2 fallback.
- Set mapleader and maplocalleader explicitly at the top of lua/options.lua.
- Add <leader>sr mapping for Grug-far search and replace in lua/keymaps.lua.
- Add autocommand to close Grug-far window with 'q'.
- Update README.md with system dependencies (Debian/Arch) and new keymaps.
- Highlight portability features (terminal titles, root detection) in README.md.
- Add leap.nvim (<CR> to jump, S for cross-window) with LeapBackdrop dimming
- Add mini.surround with default s-prefix keymaps
- Add conform.nvim with format-on-save and <leader>cf keymap
- Add undotree with <leader>uu toggle and nerd font shapes
- Add nvim-treesitter-context for sticky scope header (max 3 lines)
- Add inc-rename.nvim with Noice input dialog and <leader>cr keymap
- Add lazydev.nvim for proper Neovim Lua type definitions in lua_ls
- Enable Snacks modules: scratch, zen, terminal (<C-/> toggle), and expand picker with flash integration and frecency matcher
- Configure flash to suppress default keymaps (owned by leap/mini.surround)
- Switch gitsigns from numhl to signcolumn for Snacks.statuscolumn rendering
- Set 2-space indentation with expandtab
- Enable persistent undo via undofile
- Auto-restore persistence session on startup when no file args given
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Allows getting additional suggestions via ripgrep in blink.cmp. Source is added to the end of the
suggestions list and will search the full project directory (within size/root limits)
This adds one line that can be uncommented to prevent the smart-scroll function from remembering the
previous count. Well, it still remembers it, but it won't use it.
Allows <C-u> and <C-d> to accept a count and scroll by <count>*<half-screen>. The count is
remembered and re-used for both <C-u> and <C-d> so repetitively pressing those sequences will
continue to use the previous count. Count defaults to 1 initally (scroll by one half-screen)
Writes the CWD to a file (and emits the OSC7) at startup and when the directory changes. This is
used by a function in fish-shell to automatically cd to the cwd on nvim exit.
Cleaner cmdline completion with ghost-text and require a minimum of 2 characters entered before
showing suggestions. This prevents `:q` from being autocompleted to `:qall` and similar
mis-completions for short cmds.
A while back some attempts were made to change the statuscolumn appearance but they failed to
achieve an effective solution. Tidying up old commented code.
Blink.cmp now configures cmdline sources and keymaps in their own top-level cmdline table,
previously they were mixed in with the default keymaps and sources tables.
BREAKING CHANGE: Change to how cmdline is configured in blink.cmp