feat: NES normal-mode Tab, native inline completion, clippy LSP, and .gitignore expansion #4

Merged
rootiest merged 3 commits from feat/nes-normal-tab-inline-completion-clippy into main 2026-05-31 04:45:31 +00:00
4 changed files with 183 additions and 8 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]
# ──────────────────────────────────────────────────────────────
+2 -1
View File
@@ -133,7 +133,8 @@ Place machine-specific or secret configuration in `~/.config/.user-dots/nvim/loc
| `s` / `S` | Leap Motion (Normal/Window) |
| `ys` / `ds` / `cs` | Surround (Add/Delete/Change) |
| `gx` / `gX` | Open URL under cursor (Gx.nvim) |
| `<Tab>` | Advance snippet → apply NES suggestion → fallback |
| `<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 |
+7
View File
@@ -292,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)")
+25
View File
@@ -344,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",
@@ -370,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" } })