[Neovim] Adds Sidekick plugin.

This commit is contained in:
2026-06-13 10:22:28 -07:00
parent f177f112ce
commit 7bbb5ea812
6 changed files with 118 additions and 1 deletions

View File

@@ -11,7 +11,8 @@
"lazyvim.plugins.extras.lang.rust", "lazyvim.plugins.extras.lang.rust",
"lazyvim.plugins.extras.lang.tailwind", "lazyvim.plugins.extras.lang.tailwind",
"lazyvim.plugins.extras.lang.toml", "lazyvim.plugins.extras.lang.toml",
"lazyvim.plugins.extras.lang.typescript" "lazyvim.plugins.extras.lang.typescript",
"lazyvim.plugins.extras.ai.sidekick"
], ],
"install_version": 8, "install_version": 8,
"version": 8 "version": 8

View File

@@ -16,6 +16,8 @@ return {
vtsls = {}, vtsls = {},
-- Haskell -- Haskell
hls = {}, hls = {},
-- Copilot
copilot = { enabled = true },
}, },
codelens = { codelens = {
enable = true, enable = true,

View File

@@ -0,0 +1,13 @@
return {
"salkin-mada/openscad.nvim",
config = function()
vim.g.openscad_load_snippets = true
vim.g.openscad_default_mappings = true
vim.g.openscad_fuzzy_finder = "snacks"
require("openscad")
end,
dependencies = {
-- Can fall back to Snacks instead.
-- "ibhagwan/fzf-lua",
},
}

View File

@@ -0,0 +1,95 @@
return {
-- https://github.com/folke/sidekick.nvim
"folke/sidekick.nvim",
opts = {
cli = {
mux = {
enabled = false, -- I haven't bothered to include tmux yet
backend = "tmux",
},
},
},
keys = {
{
"<tab>",
function()
-- if there is a next edit, jump to it, otherwise apply it if any
if not require("sidekick").nes_jump_or_apply() then
return "<Tab>" -- fallback to normal tab
end
end,
expr = true,
desc = "Goto/Apply Next Edit Suggestion",
},
{
"<c-.>",
function()
require("sidekick.cli").focus()
end,
desc = "Sidekick Focus",
mode = { "n", "t", "i", "x" },
},
{
"<leader>aa",
function()
require("sidekick.cli").toggle()
end,
desc = "Sidekick Toggle CLI",
},
{
"<leader>as",
function()
require("sidekick.cli").select()
end,
-- Or to select only installed tools:
-- require("sidekick.cli").select({ filter = { installed = true } })
desc = "Select CLI",
},
{
"<leader>ad",
function()
require("sidekick.cli").close()
end,
desc = "Detach a CLI Session",
},
{
"<leader>at",
function()
require("sidekick.cli").send({ msg = "{this}" })
end,
mode = { "x", "n" },
desc = "Send This",
},
{
"<leader>af",
function()
require("sidekick.cli").send({ msg = "{file}" })
end,
desc = "Send File",
},
{
"<leader>av",
function()
require("sidekick.cli").send({ msg = "{selection}" })
end,
mode = { "x" },
desc = "Send Visual Selection",
},
{
"<leader>ap",
function()
require("sidekick.cli").prompt()
end,
mode = { "n", "x" },
desc = "Sidekick Select Prompt",
},
-- Example of a keybinding to open Claude directly
-- {
-- "<leader>ac",
-- function()
-- require("sidekick.cli").toggle({ name = "claude", focus = true })
-- end,
-- desc = "Sidekick Toggle Claude",
-- },
},
}

View File

@@ -2,6 +2,11 @@ return {
"folke/snacks.nvim", "folke/snacks.nvim",
opts = function(_, opts) opts = function(_, opts)
vim.tbl_deep_extend("force", opts, { vim.tbl_deep_extend("force", opts, {
styles = {
notification = {
wo = { wrap = true }, -- wrap notifications
},
},
picker = { picker = {
smart = { smart = {
-- Remove the "recent" picker so we don't get things from other directories. -- Remove the "recent" picker so we don't get things from other directories.

View File

@@ -21,6 +21,7 @@
sqlite # For Snacks sqlite # For Snacks
imagemagick # For image conversion/display imagemagick # For image conversion/display
vscode-langservers-extracted # For language servers (it wants this version of eslint for some reason) vscode-langservers-extracted # For language servers (it wants this version of eslint for some reason)
copilot-language-server # Enable the copilot language server
]; ];
}; };