[Neovim] Adds Sidekick plugin.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ return {
|
|||||||
vtsls = {},
|
vtsls = {},
|
||||||
-- Haskell
|
-- Haskell
|
||||||
hls = {},
|
hls = {},
|
||||||
|
-- Copilot
|
||||||
|
copilot = { enabled = true },
|
||||||
},
|
},
|
||||||
codelens = {
|
codelens = {
|
||||||
enable = true,
|
enable = true,
|
||||||
|
|||||||
13
home-manager/features/neovim/config/lua/plugins/openscad.lua
Normal file
13
home-manager/features/neovim/config/lua/plugins/openscad.lua
Normal 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",
|
||||||
|
},
|
||||||
|
}
|
||||||
95
home-manager/features/neovim/config/lua/plugins/sidekick.lua
Normal file
95
home-manager/features/neovim/config/lua/plugins/sidekick.lua
Normal 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",
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user