Compare commits

...

11 Commits

Author SHA1 Message Date
rootiest 1a1963232e docs: fix links 2026-05-31 00:46:50 -04:00
rootiest c867d55228 Merge pull request 'feat: NES normal-mode Tab, native inline completion, clippy LSP, and .gitignore expansion' (#4) from feat/nes-normal-tab-inline-completion-clippy into main
Reviewed-on: #4
2026-05-31 04:45:30 +00:00
rootiest 11a5bc1266 feat(keymaps): add normal-mode NES keymap and enable native inline completion
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.
2026-05-31 00:44:34 -04:00
rootiest 7e68bc3391 feat(lsp): configure rust-analyzer to use clippy for checks
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.
2026-05-31 00:44:12 -04:00
rootiest 5c980a8b57 chore: expand .gitignore with Lua, Vim, and AI session patterns
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.).
2026-05-31 00:43:11 -04:00
rootiest 17a2b4d25b Merge pull request 'feat: add sidekick.nvim and haunt.nvim with AI and bookmark integration' (#3) from feat/add-sidekick-and-haunt into main
Reviewed-on: #3
2026-05-11 16:39:12 +00:00
rootiest 58fc3e53ac feat(noice): suppress Diagnosing and semantic tokens LSP progress notifications 2026-05-11 12:38:19 -04:00
rootiest 7f9c380eaa feat: add sidekick.nvim and haunt.nvim with AI and bookmark integration
- 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
2026-05-11 12:32:19 -04:00
rootiest 859cfc3793 Merge pull request 'feat: add bootstrap module and update docs' (#2) from feat/add-bootstrap-and-update-docs into main
Reviewed-on: #2
2026-05-08 18:21:52 +00:00
rootiest d43128c2d0 feat: add bootstrap module and update docs
- 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>
2026-05-08 14:19:11 -04:00
rootiest 2153591cf5 Merge pull request 'feat: add new plugins, refactor options, and improve blink.cmp detection' (#1) from feat/add-plugins-refactor-options into main
Reviewed-on: #1
2026-05-08 16:44:41 +00:00
9 changed files with 363 additions and 74 deletions
+149 -7
View File
@@ -1,5 +1,3 @@
/.claude_session
# Plugin installs (managed by vim.pack)
/pack/
@@ -25,11 +23,155 @@
# Logs
*.log
# OS
# id: gi-patterns-aa0d0d1d58f24039fa0491e40c78bb9f
# Created by https://www.toptal.com/developers/gitignore/api/lua
# Edit at https://www.toptal.com/developers/gitignore?templates=lua
### Lua ###
# Compiled Lua sources
luac.out
# luarocks build files
*.src.rock
*.zip
*.tar.gz
# Object files
*.o
*.os
*.ko
*.obj
*.elf
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
*.def
*.exp
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# End of https://www.toptal.com/developers/gitignore/api/lua
# id: gi-patterns-be86a7264ac20631fa0112bcaff396d7
# Created by https://www.toptal.com/developers/gitignore/api/vim
# Edit at https://www.toptal.com/developers/gitignore?templates=vim
### Vim ###
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
# End of https://www.toptal.com/developers/gitignore/api/vim
# id: gitig-boilerplate-129366cbf5c6513e388d0725c2e4923b
# ╭──────────────────────────────────────────────────────────╮
# │ GitIgnore Boilerplate Template │
# ╰──────────────────────────────────────────────────────────╯
#
# ──────────────────── OS-Generated Files ────────────────────
# automatic backup files created by some editors (e.g., Vim, Emacs)
*~
# temporary files created if a process still has a handle to a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# MacOS junk
.DS_Store
Thumbs.db
# AI assistant files
CLAUDE.md
GEMINI.md
.gemini_session
# Linux trash folder which might appear on any partition or disk
.Trash-*
# files created when an open file is removed but is still being accessed
.nfs*
# ─────────────────── Debug/Temporary/Testing ────────────────
# Matches OLD / .OLD
[Oo][Ll][Dd]/
.[Oo][Ll][Dd]/
# Matches DISABLE / .DISABLE
[Dd][Ii][Ss][Aa][Bb][Ll][Ee]/
.[Dd][Ii][Ss][Aa][Bb][Ll][Ee]/
# Matches DISABLED / .DISABLED
[Dd][Ii][Ss][Aa][Bb][Ll][Ee][Dd]/
.[Dd][Ii][Ss][Aa][Bb][Ll][Ee][Dd]/
# Matches DEBUG / .DEBUG
[Dd][Ee][Bb][Uu][Gg]/
.[Dd][Ee][Bb][Uu][Gg]/
# Matches TMP / .TMP
[Tt][Mm][Pp]/
.[Tt][Mm][Pp]/
# Matches TEMP / .TEMP
[Tt][Ee][Mm][Pp]/
.[Tt][Ee][Mm][Pp]/
# Matches TEMPORARY / .TEMPORARY
[Tt][Ee][Mm][Pp][Oo][Rr][Aa][Rr][Yy]/
.[Tt][Ee][Mm][Pp][Oo][Rr][Aa][Rr][Yy]/
# Matches TESTING / .TESTING
[Tt][Ee][Ss][Tt][Ii][Nn][Gg]/
.[Tt][Ee][Ss][Tt][Ii][Nn][Gg]/
# ─────────────────── AI Sessions and Rules ──────────────────
# Matches CLAUDE.md, .claud*, etc.
[Cc][Ll][Aa][Uu][Dd][Ee].[Mm][Dd]
.[Cc][Ll][Aa][Uu][Dd]*
# Matches GEMINI.md, .gemin*, etc.
[Gg][Ee][Mm][Ii][Nn][Ii].[Mm][Dd]
.[Gg][Ee][Mm][Ii][Nn]*
# Matches ANTIGRAVITY.md, .antigrav*, etc.
[Aa][nN][Tt][Ii][Gg][Rr][Aa][Vv][Ii][Tt][Yy].[Mm][Dd]
.[Aa][Nn][Tt][Ii][Gg][Rr][Aa][Vv]*
# Matches AGENTS.md, .remember, etc.
[Aa][Gg][Ee][Nn][Tt][Ss].[Mm][Dd]
.[Rr][Ee][Mm][Ee][Mm][Bb][Ee][Rr]
# ──────────────────────────────────────────────────────────────
+61 -7
View File
@@ -11,22 +11,61 @@ A modern, modular, and high-performance Neovim configuration built from scratch
- **Phased Loading**: Async, non-blocking startup using a phased `VimEnter` queue for a snappy experience.
- **Unified Registry**: Configuration is managed via a global `_G.Config` registry, ensuring cross-plugin consistency.
- **High Performance**: Featuring **blink.cmp** (Rust-based completion) and optimized **Snacks.nvim** components.
- **AI-Powered**: Native integration with the **GitHub Copilot Language Server**.
- **AI-Powered**: Native integration with **GitHub Copilot** — inline completions via **blink-copilot** and multi-line refactoring via **Sidekick.nvim** Next Edit Suggestions (NES).
- **User-Centric QoL**: Hybrid line numbers, autosave-on-edit, and seamless system clipboard integration.
- **Resilient & Portable**: Intelligent terminal title management (Kitty + Fallback), automatic project root detection, and machine-local override support.
- **Lean & Readable**: ~800 lines of Lua code (excluding comments and blanks).
- **Lean & Readable**: ~850 lines of Lua code (excluding comments and blanks).
## 📁 Architecture
The configuration is strictly modular:
- `init.lua`: Entry point and global state initialization.
- `init.lua`: Entry point, bootstrap, global state initialization, and machine-local overrides.
- `lua/bootstrap.lua`: Early runtime setup — redirects Neovim's data/state paths when running as root (e.g. via a symlinked `~/.config/nvim`), preventing root sessions from polluting or conflicting with the user-level install.
- `lua/lazyload.lua`: Logic for async and phased plugin loading.
- `lua/options.lua`: Global Vim settings, root management, and terminal title logic.
- `lua/options.lua`: Global Vim settings, auto-reload, root management, and terminal title logic.
- `lua/plugins.lua`: Plugin declarations and detailed registry-based configurations.
- `lua/keymaps.lua`: Centralized user-facing keybindings.
- `lua/const.lua`: Stores constant values (like dashboard headers) for the configuration.
## 🔌 Plugin Stack
### Core UI
- **Catppuccin**: Primary colorscheme (Mocha flavour).
- **Lualine**: Statusline with Git diff and line-by-line Gitsigns blame.
- **Noice**: Modern UI for cmdline (popup), messages, and LSP hover.
- **Snacks**: High-performance dashboard, explorer, and pickers.
- **Nvim-web-devicons**: Consistent icons across UI components.
### Editing & Navigation
- **Flash**: Enhanced motion and search.
- **Focusline**: Keeps the active line at a configurable screen position (30%) during scrolling motions.
- **Mini.ai**: Better text objects (including `g` for entire buffer).
- **Mini.surround**: Surround text objects (add/delete/change).
- **Mini.pairs**: Auto-close brackets and quotes.
- **Persistence**: Session management.
- **Which-key**: Interactive keybinding documentation.
- **Gitsigns**: In-buffer git indicators and line highlights.
- **Grug-far**: Project-wide search and replace.
- **Gx.nvim**: Smart URL/reference opener under cursor.
- **Comment-box**: Decorative comment boxes and lines.
- **Undotree**: Visual undo history browser.
- **Haunt.nvim**: In-buffer annotation and bookmark manager. Integrates with the Snacks picker for browsing bookmarks and exposes `haunt_all` / `haunt_buffer` prompt contexts to Sidekick AI sessions.
- **Zen Mode**: Distraction-free editing.
- **Qalc**: Inline calculator via `qalculate`.
### LSP & Completion
- **Blink.cmp** + **blink.lib**: High-performance Rust-based completion. Auto-detects binary across install layouts; falls back gracefully if unavailable. Rebuilds automatically on `PackChanged`.
- **blink-copilot**: Surfaces GitHub Copilot inline suggestions inside the blink.cmp completion menu.
- **Sidekick.nvim**: AI assistant providing Next Edit Suggestions (NES) for multi-line refactoring via the Copilot LSP, plus an integrated AI CLI terminal (`<leader>aa`) with context-aware prompts. Snacks picker integration sends selections to the active AI session via `<Alt-a>`.
- **LSPConfig + Mason**: Managed LSP support for Lua, C/C++, Rust, Python, Fish, and Shell.
- **Conform**: Formatter with format-on-save and range formatting.
- **Inc-rename**: Incremental LSP rename with live preview.
- **Lazydev**: Neovim Lua type definitions for `lua_ls`.
### Terminal
- **Kitty Scrollback**: Browse Kitty terminal scrollback buffer inside Neovim.
## 🛠️ System Dependencies
To ensure all features (pickers, formatters, and LSPs) work correctly, the following packages are required:
@@ -44,6 +83,7 @@ To ensure all features (pickers, formatters, and LSPs) work correctly, the follo
- `Node.js` & `npm` (Copilot and various LSPs)
- `Python3` & `pip` (Python LSPs)
- `Cargo` (Rust toolchain, required for building `blink.cmp`)
- `qalculate` (optional, required for the Qalc calculator plugin)
### Installation Commands
@@ -62,15 +102,19 @@ sudo pacman -S git ripgrep fd fzf lazygit github-cli xclip nodejs npm base-devel
### Installation
```bash
git clone https://github.com/your-username/nvim-config ~/.config/nvim
git clone https://git.rootiest.dev/rootiest/neovim-config.git ~/.config/nvim
nvim
```
### Post-Install
1. **Build Blink**: If completion isn't working, run `cargo build --release` inside `~/.local/share/nvim/site/pack/core/opt/blink.cmp`.
1. **Build Blink**: Completion auto-rebuilds on `PackChanged`. If it still isn't working, run `cargo build --release` inside `~/.local/share/nvim/site/pack/core/opt/blink.cmp`.
2. **LSP Servers**: Run `:Mason` to monitor the installation of Language Servers.
3. **Copilot**: Run `:LspCopilotSignIn` to authenticate.
3. **Copilot**: Run `:LspCopilotSignIn` to authenticate, then `:checkhealth sidekick` to verify the Sidekick NES integration is working.
### Machine-Local Overrides
Place machine-specific or secret configuration in `~/.config/.user-dots/nvim/local.lua` or `~/.config/.user-dots/nvim/secrets.lua`. These files are sourced automatically at startup if present, and are intentionally outside the repo to avoid accidental commits.
## ⌨️ Key Features & Mappings
@@ -89,6 +133,16 @@ nvim
| `s` / `S` | Leap Motion (Normal/Window) |
| `ys` / `ds` / `cs` | Surround (Add/Delete/Change) |
| `gx` / `gX` | Open URL under cursor (Gx.nvim) |
| `<Tab>` *(insert)* | Advance snippet → NES suggestion → native inline completion → fallback |
| `<Tab>` *(normal)* | Jump to / apply Sidekick NES suggestion |
| `<leader>aa` | Toggle Sidekick AI CLI terminal |
| `<leader>as` | Select AI tool (Sidekick) |
| `<Alt-a>` *(picker)* | Send picker selection to active AI CLI session |
| `<leader>ha` | Annotate current position (Haunt) |
| `<leader>ht` | Toggle annotation visibility (Haunt) |
| `<leader>hd` | Delete bookmark (Haunt) |
| `<leader>hn` / `<leader>hp` | Next / Previous bookmark (Haunt) |
| `<leader>hl` | Browse all bookmarks in picker (Haunt) |
| `<leader>cbb` | Create Centered Comment Box |
| `<leader>cbl` | Create Centered Comment Line |
| `<leader>cbd` | Delete Comment Box/Line |
+8 -17
View File
@@ -4,20 +4,11 @@
└────────────────────────────────────────────────────────────────┘
--]]
-- Copyright (C) 2026 rootiest
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
-- Copyright (C) 2026 Rootiest
-- SPDX-License-Identifier: AGPL-3.0-or-later
-- Trigger bootstrap (runtime path, etc.)
require("bootstrap")
-- Initialize global registry
_G.Config = {
@@ -27,9 +18,9 @@ _G.Config = {
-- Load core modules
require("lazyload") -- Plugin lazy-loading module
require("options") -- Configuration options
require("plugins") -- Plugin specifications and setup
require("keymaps") -- Key mappings
require("options") -- Configuration options
require("plugins") -- Plugin specifications and setup
require("keymaps") -- Key mappings
-- Source machine-local and secret overrides (silently ignored if absent)
local user_dots = vim.fn.expand("~/.config/.user-dots/nvim/")
+20
View File
@@ -0,0 +1,20 @@
-- ╭─────────────────────────────────────────────────────────╮
-- │ Bootstaps │
-- ╰─────────────────────────────────────────────────────────╯
---- Copyright (C) 2026 Rootiest
-- SPDX-License-Identifier: GPL-3.0-or-later
-- This file is sourced before anything else so it can be used to set up
-- the runtime path and other fundamental settings.
-- ─────────────── Manage root user permissions for Neovim ───────────────
-- Redirect data directories if running as root to avoid permission issues
if os.getenv("USER") == "root" or os.getenv("SUDO_USER") ~= nil then
local root_data = "/root/.local/share/nvim-root"
vim.opt.packpath:prepend(root_data .. "/site")
vim.opt.runtimepath:prepend(root_data .. "/site")
-- Prevent root from writing shada to your user home
vim.opt.shadafile = "/root/.local/state/nvim-root.shada"
end
+3
View File
@@ -4,6 +4,9 @@
└────────────────────────────────────────────────────────────────┘
--]]
-- Copyright (C) 2026 Rootiest
-- SPDX-License-Identifier: GPL-3.0-or-later
local M = {}
--- Dashboard Header
+31 -14
View File
@@ -4,20 +4,8 @@
└────────────────────────────────────────────────────────────────┘
--]]
-- Copyright (C) 2026 rootiest
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
---- Copyright (C) 2026 Rootiest
-- SPDX-License-Identifier: GPL-3.0-or-later
-- System Clipboard Integration
-- This makes 'y' and 'p' (and all other yank/paste operations)
@@ -304,6 +292,13 @@ end, { desc = "Neovim News" })
----------------------------------------------------------
-- Sidekick NES: accept next-edit suggestion in normal mode
vim.keymap.set("n", "<Tab>", function()
require("sidekick").nes_jump_or_apply()
end, { desc = "Apply Sidekick NES Suggestion" })
----------------------------------------------------------
-- Leap Keymaps
vim.keymap.set({ "n", "x", "o" }, "<CR>", "<Plug>(leap)")
vim.keymap.set("n", "S", "<Plug>(leap-from-window)")
@@ -343,3 +338,25 @@ end, { desc = "Restore Last Session" })
vim.keymap.set("n", "<leader>qd", function()
require("persistence").stop()
end, { desc = "Don't Save Current Session" })
----------------------------------------------------------
-- Haunt Keymaps
vim.keymap.set("n", "<leader>ha", function()
require("haunt.api").annotate()
end, { desc = "Annotate" })
vim.keymap.set("n", "<leader>ht", function()
require("haunt.api").toggle_annotation()
end, { desc = "Toggle Annotation" })
vim.keymap.set("n", "<leader>hd", function()
require("haunt.api").delete()
end, { desc = "Delete Bookmark" })
vim.keymap.set("n", "<leader>hn", function()
require("haunt.api").next()
end, { desc = "Next Bookmark" })
vim.keymap.set("n", "<leader>hp", function()
require("haunt.api").prev()
end, { desc = "Previous Bookmark" })
vim.keymap.set("n", "<leader>hl", function()
require("haunt.picker").show()
end, { desc = "Show Bookmark Picker" })
+2 -14
View File
@@ -4,20 +4,8 @@
--]]
-- Copyright (C) 2026 rootiest
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
---- Copyright (C) 2026 Rootiest
-- SPDX-License-Identifier: GPL-3.0-or-later
-- ╭─────────────────────────────────────────────────────────╮
-- │ Basic Options │
+81 -15
View File
@@ -4,20 +4,8 @@
--]]
-- Copyright (C) 2026 rootiest
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
---- Copyright (C) 2026 Rootiest
-- SPDX-License-Identifier: GPL-3.0-or-later
-- Catppuccin.nvim
-- Eagerly load the colorscheme plugin.
@@ -68,6 +56,7 @@ Config.plugins.snacks = {
keys = {
["<a-s>"] = { "flash", mode = { "n", "i" } },
["s"] = { "flash" },
["<a-a>"] = { "sidekick_send", mode = { "n", "i" } },
},
},
},
@@ -90,6 +79,9 @@ Config.plugins.snacks = {
end,
})
end,
sidekick_send = function(...)
return require("sidekick.cli.picker.snacks").send(...)
end,
},
},
notifier = { enabled = true },
@@ -293,7 +285,19 @@ lazyload.on_vim_enter(function()
-- 3. Blink.cmp setup
require("blink.cmp").setup({
keymap = { preset = "default" },
keymap = {
preset = "default",
["<Tab>"] = {
"snippet_forward",
function()
return require("sidekick").nes_jump_or_apply()
end,
function()
return vim.lsp.inline_completion.get()
end,
"fallback",
},
},
appearance = {
use_nvim_cmp_as_default = true,
nerd_font_variant = "mono",
@@ -340,6 +344,16 @@ lazyload.on_vim_enter(function()
local lspconfig = require("lspconfig")
local capabilities = (has_blink_bin or has_cargo) and require("blink.cmp").get_lsp_capabilities() or nil
vim.lsp.config("rust_analyzer", {
settings = {
["rust-analyzer"] = {
check = {
command = "clippy",
},
},
},
})
require("mason-lspconfig").setup({
ensure_installed = {
"lua_ls",
@@ -366,9 +380,24 @@ lazyload.on_vim_enter(function()
},
})
end,
["rust_analyzer"] = function()
lspconfig.rust_analyzer.setup({
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
check = {
command = "clippy",
},
},
},
})
end,
},
})
-- Enable native inline completion (ghost text in insert mode)
vim.lsp.inline_completion.enable()
-- Mini.ai
vim.pack.add({ { src = "https://github.com/echasnovski/mini.ai", name = "mini.ai" } })
@@ -457,10 +486,47 @@ lazyload.on_vim_enter(function()
inc_rename = true, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
routes = {
{
filter = { event = "lsp", kind = "progress", find = "Loading workspace" },
opts = { skip = true },
},
{
filter = { event = "lsp", kind = "progress", find = "^Diagnosing" },
opts = { skip = true },
},
{
filter = { event = "lsp", kind = "progress", find = "semantic tokens" },
opts = { skip = true },
},
},
})
-- Kitty Scrollback
vim.pack.add({ { src = "https://github.com/mikesmithgh/kitty-scrollback.nvim", name = "kitty-scrollback" } })
Config.plugins.kitty_scrollback = {}
require("kitty-scrollback").setup(Config.plugins.kitty_scrollback)
-- Haunt.nvim
vim.pack.add({ { src = "https://github.com/TheNoeTrevino/haunt.nvim", name = "haunt" } })
Config.plugins.haunt = {
picker = "snacks",
}
require("haunt").setup(Config.plugins.haunt)
-- Sidekick.nvim
vim.pack.add({ { src = "https://github.com/folke/sidekick.nvim", name = "sidekick" } })
Config.plugins.sidekick = {
cli = {
prompts = {
haunt_all = function()
return require("haunt.sidekick").get_locations()
end,
haunt_buffer = function()
return require("haunt.sidekick").get_locations({ current_buffer = true })
end,
},
},
}
require("sidekick").setup(Config.plugins.sidekick)
end)
+8
View File
@@ -56,6 +56,10 @@
"rev": "ba9c408fc0130fc4548760c3933a81b58fc50de8",
"src": "https://github.com/chrishrb/gx.nvim"
},
"haunt": {
"rev": "815141d7367c9d895e902db27e2d25d4652ad0fc",
"src": "https://github.com/TheNoeTrevino/haunt.nvim"
},
"inc-rename": {
"rev": "0074b551a17338ccdcd299bd86687cc651bcb33d",
"src": "https://github.com/smjonas/inc-rename.nvim"
@@ -128,6 +132,10 @@
"rev": "33198ba0533d6a514f9a48cb472e40407c2ea9f6",
"src": "https://github.com/Apeiros-46B/qalc.nvim"
},
"sidekick": {
"rev": "208e1c5b8170c01fd1d07df0139322a76479b235",
"src": "https://github.com/folke/sidekick.nvim"
},
"snacks": {
"rev": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e",
"src": "https://github.com/folke/snacks.nvim"