feat(nvim): reorganize and modernize Neovim configuration
- Remove deprecated config files: git-ref.lua, git-signs.lua, diffview-config.lua, lsp-lines-config.lua, neotree-config.lua, fidget-spinner.lua, silicon-config.lua, telescope-config.lua, llm.lua - Add new configuration files: diagnostics-config.lua, git-config.lua, llm-config.lua, snacks-config.lua - Update existing config files: base.lua, dap-config.lua, init.lua, lsp-config.lua, lualine-config.lua, noice-config.lua, octo-config.lua, toggleterm-config.lua, which-key-config.lua - Update nvim and opencode module configurations
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
require('aerial').setup({
|
||||
on_attach = function(bufnr)
|
||||
vim.keymap.set('n', '{', '<cmd>AerialPrev<CR>', {buffer = bufnr})
|
||||
vim.keymap.set('n', '}', '<cmd>AerialNext<CR>', {buffer = bufnr})
|
||||
end
|
||||
})
|
||||
|
||||
vim.keymap.set('n', '<leader>a', '<cmd>AerialToggle!<CR>')
|
||||
@@ -6,7 +6,7 @@
|
||||
vim.cmd("colorscheme catppuccin-mocha")
|
||||
|
||||
-- Set User Shell
|
||||
vim.o.shell = "/usr/bin/env bash"
|
||||
vim.o.shell = require("nix-vars").bash
|
||||
|
||||
-- Set Leader
|
||||
vim.keymap.set("n", "<Space>", "<Nop>", { silent = true })
|
||||
@@ -38,35 +38,3 @@ vim.opt.shiftwidth = 2
|
||||
vim.opt.foldmethod = "indent"
|
||||
vim.opt.foldnestmax = 10
|
||||
vim.opt.foldlevel = 2
|
||||
|
||||
-- Diagnostics Mappings
|
||||
local diagnostics_active = true
|
||||
local toggle_diagnostics = function()
|
||||
diagnostics_active = not diagnostics_active
|
||||
if diagnostics_active then
|
||||
vim.diagnostic.enable()
|
||||
else
|
||||
vim.diagnostic.disable()
|
||||
end
|
||||
end
|
||||
|
||||
local diagnostics_loclist_active = false
|
||||
local toggle_diagnostics_loclist = function()
|
||||
diagnostics_loclist_active = not diagnostics_loclist_active
|
||||
if diagnostics_loclist_active then
|
||||
vim.diagnostic.setloclist()
|
||||
else
|
||||
vim.cmd("lclose")
|
||||
end
|
||||
end
|
||||
|
||||
local opts = { noremap = true, silent = true }
|
||||
vim.keymap.set("n", "<leader>qt", toggle_diagnostics, opts)
|
||||
vim.keymap.set("n", "<leader>qN", function()
|
||||
vim.diagnostic.goto_prev({ float = false })
|
||||
end, opts)
|
||||
vim.keymap.set("n", "<leader>qn", function()
|
||||
vim.diagnostic.goto_next({ float = false })
|
||||
end, opts)
|
||||
vim.keymap.set("n", "<leader>qq", toggle_diagnostics_loclist, opts)
|
||||
vim.keymap.set("n", "<leader>qe", vim.diagnostic.open_float, opts)
|
||||
|
||||
@@ -3,48 +3,48 @@ local dapui = require("dapui")
|
||||
local dapgo = require("dap-go")
|
||||
|
||||
dapui.setup({
|
||||
controls = {
|
||||
element = "repl",
|
||||
enabled = true,
|
||||
icons = {
|
||||
disconnect = "",
|
||||
pause = "",
|
||||
play = "",
|
||||
run_last = "",
|
||||
step_back = "",
|
||||
step_into = "",
|
||||
step_out = "",
|
||||
step_over = "",
|
||||
terminate = ""
|
||||
}
|
||||
},
|
||||
element_mappings = {},
|
||||
expand_lines = false,
|
||||
floating = {border = "single", mappings = {close = {"q", "<Esc>"}}},
|
||||
force_buffers = true,
|
||||
icons = {collapsed = "", current_frame = "", expanded = ""},
|
||||
layouts = {
|
||||
{
|
||||
elements = {{id = "repl", size = 0.5}, {id = "scopes", size = 0.5}},
|
||||
position = "bottom",
|
||||
size = 10
|
||||
}, {
|
||||
elements = {
|
||||
{id = "breakpoints", size = 0.5}, {id = "stacks", size = 0.5}
|
||||
},
|
||||
position = "left",
|
||||
size = 40
|
||||
}
|
||||
},
|
||||
mappings = {
|
||||
edit = "e",
|
||||
expand = {"<CR>", "<2-LeftMouse>"},
|
||||
open = "o",
|
||||
remove = "d",
|
||||
repl = "r",
|
||||
toggle = "t"
|
||||
},
|
||||
render = {indent = 1, max_value_lines = 100}
|
||||
controls = {
|
||||
element = "repl",
|
||||
enabled = true,
|
||||
icons = {
|
||||
disconnect = "",
|
||||
pause = "",
|
||||
play = "",
|
||||
run_last = "",
|
||||
step_back = "",
|
||||
step_into = "",
|
||||
step_out = "",
|
||||
step_over = "",
|
||||
terminate = ""
|
||||
}
|
||||
},
|
||||
element_mappings = {},
|
||||
expand_lines = false,
|
||||
floating = { border = "single", mappings = { close = { "q", "<Esc>" } } },
|
||||
force_buffers = true,
|
||||
icons = { collapsed = "", current_frame = "", expanded = "" },
|
||||
layouts = {
|
||||
{
|
||||
elements = { { id = "repl", size = 0.5 }, { id = "scopes", size = 0.5 } },
|
||||
position = "bottom",
|
||||
size = 10
|
||||
}, {
|
||||
elements = {
|
||||
{ id = "breakpoints", size = 0.5 }, { id = "stacks", size = 0.5 }
|
||||
},
|
||||
position = "left",
|
||||
size = 40
|
||||
}
|
||||
},
|
||||
mappings = {
|
||||
edit = "e",
|
||||
expand = { "<CR>", "<2-LeftMouse>" },
|
||||
open = "o",
|
||||
remove = "d",
|
||||
repl = "r",
|
||||
toggle = "t"
|
||||
},
|
||||
render = { indent = 1, max_value_lines = 100 }
|
||||
})
|
||||
dapgo.setup()
|
||||
|
||||
@@ -54,17 +54,17 @@ dap.listeners.before.launch.dapui_config = function() dapui.open() end
|
||||
|
||||
-- Continue Hotkey ("c")
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = "dap-repl",
|
||||
callback = function()
|
||||
vim.api.nvim_buf_set_keymap(0, 'n', 'c',
|
||||
"<cmd>lua require'dap'.continue()<CR>",
|
||||
{noremap = true, silent = true})
|
||||
end
|
||||
pattern = "dap-repl",
|
||||
callback = function()
|
||||
vim.api.nvim_buf_set_keymap(0, 'n', 'c',
|
||||
"<cmd>lua require'dap'.continue()<CR>",
|
||||
{ noremap = true, silent = true })
|
||||
end
|
||||
})
|
||||
|
||||
-- Leader Keys
|
||||
local opts = {noremap = true, silent = true}
|
||||
vim.keymap.set('n', '<leader>db', dap.toggle_breakpoint, opts)
|
||||
vim.keymap.set('n', '<leader>du', dapui.toggle, opts)
|
||||
vim.keymap.set('n', '<leader>dc', dap.continue, opts)
|
||||
vim.keymap.set('n', '<leader>dt', dapgo.debug_test, opts)
|
||||
-- Create KeyMaps
|
||||
local opts = { noremap = true, silent = true }
|
||||
vim.keymap.set('n', '<leader>db', dap.toggle_breakpoint, vim.tbl_extend("force", { desc = "Toggle Breakpoint" }, opts))
|
||||
vim.keymap.set('n', '<leader>dc', dap.continue, vim.tbl_extend("force", { desc = "Continue" }, opts))
|
||||
vim.keymap.set('n', '<leader>dt', dapgo.debug_test, vim.tbl_extend("force", { desc = "Run Test" }, opts))
|
||||
vim.keymap.set('n', '<leader>du', dapui.toggle, vim.tbl_extend("force", { desc = "Toggle UI" }, opts))
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
-- Diagnostics Mappings
|
||||
local diagnostics_active = true
|
||||
local toggle_diagnostics = function()
|
||||
diagnostics_active = not diagnostics_active
|
||||
if diagnostics_active then
|
||||
vim.diagnostic.enable()
|
||||
else
|
||||
vim.diagnostic.disable()
|
||||
end
|
||||
end
|
||||
|
||||
local diagnostics_loclist_active = false
|
||||
local toggle_diagnostics_loclist = function()
|
||||
diagnostics_loclist_active = not diagnostics_loclist_active
|
||||
if diagnostics_loclist_active then
|
||||
vim.diagnostic.setloclist()
|
||||
else
|
||||
vim.cmd("lclose")
|
||||
end
|
||||
end
|
||||
|
||||
-- Create KeyMaps
|
||||
local opts = { noremap = true, silent = true }
|
||||
vim.keymap.set("n", "<leader>qN", function()
|
||||
vim.diagnostic.goto_prev({ float = false })
|
||||
end, vim.tbl_extend("force", { desc = "Previous Diagnostic" }, opts))
|
||||
vim.keymap.set("n", "<leader>qe", vim.diagnostic.open_float,
|
||||
vim.tbl_extend("force", { desc = "Open Diagnostics" }, opts))
|
||||
vim.keymap.set("n", "<leader>qt", toggle_diagnostics,
|
||||
vim.tbl_extend("force", { desc = "Toggle Inline Diagnostics" }, opts))
|
||||
vim.keymap.set("n", "<leader>qn", function()
|
||||
vim.diagnostic.goto_next({ float = false })
|
||||
end, vim.tbl_extend("force", { desc = "Next Diagnostic" }, opts))
|
||||
vim.keymap.set("n", "<leader>qq", toggle_diagnostics_loclist,
|
||||
vim.tbl_extend("force", { desc = "Toggle Diagnostic List" }, opts))
|
||||
@@ -1,6 +0,0 @@
|
||||
vim.keymap.set('n', '<leader>go', '<cmd>DiffviewOpen<CR>')
|
||||
vim.keymap.set('n', '<leader>gO', '<cmd>DiffviewOpen origin/main...HEAD<CR>')
|
||||
vim.keymap.set('n', '<leader>gh', '<cmd>DiffviewFileHistory<CR>')
|
||||
vim.keymap.set('n', '<leader>gH',
|
||||
'<cmd>DiffviewFileHistory --range=origin..HEAD<CR>')
|
||||
vim.keymap.set('n', '<leader>gc', '<cmd>DiffviewClose<CR>')
|
||||
@@ -0,0 +1,69 @@
|
||||
require("gitsigns").setup({
|
||||
current_line_blame = true,
|
||||
current_line_blame_opts = { delay = 0 },
|
||||
on_attach = function(bufnr)
|
||||
local gitsigns = require("gitsigns")
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or {}
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
map("n", "<leader>gb", gitsigns.toggle_current_line_blame, { desc = "Git Blame Line" })
|
||||
map("n", "<leader>gB", function()
|
||||
gitsigns.blame_line({ full = true })
|
||||
end, { desc = "Git Blame Full" })
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
local function get_git_info()
|
||||
local abs_path = vim.fn.expand("%:p")
|
||||
local git_root = vim.fn.systemlist(
|
||||
"git -C " .. vim.fn.escape(vim.fn.fnamemodify(abs_path, ":h"), " ") .. " rev-parse --show-toplevel"
|
||||
)[1]
|
||||
|
||||
if vim.v.shell_error ~= 0 then
|
||||
return
|
||||
end
|
||||
|
||||
local git_repo = vim.fn.system("git remote get-url origin"):match("([^/:]+/[^/.]+)%.?[^/]*$"):gsub("\n", "")
|
||||
local git_branch = vim.fn.system("git rev-parse --abbrev-ref HEAD"):gsub("\n", "")
|
||||
|
||||
return {
|
||||
file = vim.fn.fnamemodify(abs_path, ":s?" .. git_root .. "/??"),
|
||||
branch = git_branch,
|
||||
repo = git_repo,
|
||||
}
|
||||
end
|
||||
|
||||
local function copy_git_link()
|
||||
local git_info = get_git_info()
|
||||
if git_info == nil then
|
||||
vim.notify("Failed to get git info", vim.log.levels.ERROR)
|
||||
return
|
||||
end
|
||||
|
||||
local start_line = vim.fn.line("v")
|
||||
local end_line = vim.fn.line(".")
|
||||
|
||||
local message = string.format(
|
||||
"https://github.com/%s/blob/%s/%s#L%d-L%d",
|
||||
git_info.repo,
|
||||
git_info.branch,
|
||||
git_info.file,
|
||||
start_line,
|
||||
end_line
|
||||
)
|
||||
vim.fn.setreg("+", message)
|
||||
vim.notify("Copied:\n\t" .. message, vim.log.levels.INFO)
|
||||
end
|
||||
|
||||
-- Create KeyMaps
|
||||
vim.keymap.set("v", "<Leader>gy", function() copy_git_link() end, { desc = "Copy GitHub Link" })
|
||||
vim.keymap.set('n', '<leader>go', '<cmd>DiffviewOpen<CR>', { desc = "Open Diff - Current" })
|
||||
vim.keymap.set('n', '<leader>gO', '<cmd>DiffviewOpen origin/main...HEAD<CR>', { desc = "Open Diff - Main" })
|
||||
vim.keymap.set('n', '<leader>gh', '<cmd>DiffviewFileHistory<CR>', { desc = "Diff History" })
|
||||
vim.keymap.set('n', '<leader>gH', '<cmd>DiffviewFileHistory --range=origin..HEAD<CR>', { desc = "Diff History - Main" })
|
||||
vim.keymap.set('n', '<leader>gc', '<cmd>DiffviewClose<CR>', { desc = "Close Diff" })
|
||||
@@ -1,41 +0,0 @@
|
||||
local function get_git_info()
|
||||
local abs_path = vim.fn.expand("%:p")
|
||||
local git_root = vim.fn.systemlist(
|
||||
"git -C " .. vim.fn.escape(vim.fn.fnamemodify(abs_path, ":h"), " ") .. " rev-parse --show-toplevel"
|
||||
)[1]
|
||||
|
||||
if vim.v.shell_error ~= 0 then
|
||||
return
|
||||
end
|
||||
|
||||
local git_repo = vim.fn.system("git remote get-url origin"):match("([^/:]+/[^/.]+)%.?[^/]*$"):gsub("\n", "")
|
||||
local git_branch = vim.fn.system("git rev-parse --abbrev-ref HEAD"):gsub("\n", "")
|
||||
|
||||
return {
|
||||
file = vim.fn.fnamemodify(abs_path, ":s?" .. git_root .. "/??"),
|
||||
branch = git_branch,
|
||||
repo = git_repo,
|
||||
}
|
||||
end
|
||||
|
||||
vim.keymap.set("v", "<Leader>gy", function()
|
||||
local git_info = get_git_info()
|
||||
if git_info == nil then
|
||||
vim.notify("Failed to get git info", vim.log.levels.ERROR)
|
||||
return
|
||||
end
|
||||
|
||||
local start_line = vim.fn.line("v")
|
||||
local end_line = vim.fn.line(".")
|
||||
|
||||
local message = string.format(
|
||||
"https://github.com/%s/blob/%s/%s#L%d-L%d",
|
||||
git_info.repo,
|
||||
git_info.branch,
|
||||
git_info.file,
|
||||
start_line,
|
||||
end_line
|
||||
)
|
||||
vim.fn.setreg("+", message)
|
||||
vim.notify("Copied:\n\t" .. message, vim.log.levels.INFO)
|
||||
end, { noremap = true, silent = true, desc = "Copy GitHub Link" })
|
||||
@@ -1,18 +0,0 @@
|
||||
require("gitsigns").setup({
|
||||
current_line_blame = true,
|
||||
current_line_blame_opts = { delay = 0 },
|
||||
on_attach = function(bufnr)
|
||||
local gitsigns = require("gitsigns")
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or {}
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
map("n", "<leader>gb", gitsigns.toggle_current_line_blame)
|
||||
map("n", "<leader>gB", function()
|
||||
gitsigns.blame_line({ full = true })
|
||||
end)
|
||||
end,
|
||||
})
|
||||
@@ -1,23 +1,18 @@
|
||||
require("base")
|
||||
require("aerial-config")
|
||||
require("autopairs-config")
|
||||
require("cmp-config")
|
||||
require("comment-config")
|
||||
require("dap-config")
|
||||
require("diffview-config")
|
||||
require("git-ref")
|
||||
require("git-signs")
|
||||
require("diagnostics-config")
|
||||
require("git-config")
|
||||
require("leap-config")
|
||||
require("llm")
|
||||
require("llm-config")
|
||||
require("lsp-config")
|
||||
require("lsp-lines-config")
|
||||
require("lualine-config")
|
||||
require("neotree-config")
|
||||
require("noice-config")
|
||||
require("numb-config")
|
||||
require("octo-config")
|
||||
require("silicon-config")
|
||||
require("telescope-config")
|
||||
require("snacks-config")
|
||||
require("toggleterm-config")
|
||||
require("ts-config")
|
||||
require("weird-chars")
|
||||
|
||||
67
modules/home/programs/terminal/nvim/config/lua/llm-config.lua
Executable file
67
modules/home/programs/terminal/nvim/config/lua/llm-config.lua
Executable file
@@ -0,0 +1,67 @@
|
||||
local llm_endpoint = "https://llm-api.va.reichard.io"
|
||||
-- local llm_assistant_model = "gpt-oss-20b-thinking"
|
||||
-- local llm_infill_model = "qwen2.5-coder-3b-instruct"
|
||||
|
||||
-- Available models: qwen3-30b-2507-instruct, qwen2.5-coder-3b-instruct
|
||||
local llm_assistant_model = "qwen3-30b-2507-instruct"
|
||||
local llm_infill_model = llm_assistant_model
|
||||
|
||||
-- Default Llama - Toggle Llama & Copilot
|
||||
-- vim.g.copilot_filetypes = { ["*"] = false }
|
||||
local current_mode = "copilot"
|
||||
local function toggle_llm_fim_provider()
|
||||
if current_mode == "llama" then
|
||||
vim.g.copilot_filetypes = { ["*"] = true }
|
||||
vim.cmd("Copilot enable")
|
||||
vim.cmd("LlamaDisable")
|
||||
current_mode = "copilot"
|
||||
vim.notify("Copilot FIM enabled", vim.log.levels.INFO)
|
||||
else
|
||||
vim.g.copilot_filetypes = { ["*"] = true }
|
||||
vim.cmd("Copilot disable")
|
||||
vim.cmd("LlamaEnable")
|
||||
current_mode = "llama"
|
||||
vim.notify("Llama FIM enabled", vim.log.levels.INFO)
|
||||
end
|
||||
end
|
||||
|
||||
-- OpenCode Configuration
|
||||
vim.g.opencode_opts = {
|
||||
provider = {
|
||||
enabled = "snacks",
|
||||
snacks = {
|
||||
win = {
|
||||
-- position = "float",
|
||||
enter = true,
|
||||
width = 0.5,
|
||||
-- height = 0.75,
|
||||
},
|
||||
start_insert = true,
|
||||
auto_insert = true,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-- Copilot Configuration
|
||||
vim.g.copilot_no_tab_map = true
|
||||
|
||||
-- LLama LLM FIM
|
||||
vim.g.llama_config = {
|
||||
endpoint = llm_endpoint .. "/infill",
|
||||
model = llm_infill_model,
|
||||
n_predict = 2048,
|
||||
ring_n_chunks = 32,
|
||||
enable_at_startup = false,
|
||||
}
|
||||
|
||||
-- Create KeyMaps
|
||||
vim.keymap.set("n", "<leader>af", toggle_llm_fim_provider, { desc = "Toggle FIM (Llama / Copilot)" })
|
||||
vim.keymap.set({ "n", "x" }, "<leader>ai", function() require("opencode").ask("@this: ", { submit = true }) end,
|
||||
{ desc = "Ask OpenCode" })
|
||||
vim.keymap.set({ "n", "x" }, "<leader>aa", function() require("opencode").select() end,
|
||||
{ desc = "Execute OpenCode Action" })
|
||||
vim.keymap.set({ "n", "t" }, "<leader>at", function() require("opencode").toggle() end, { desc = "Toggle OpenCode" })
|
||||
vim.keymap.set('i', '<C-J>', 'copilot#Accept("\\<CR>")', {
|
||||
expr = true,
|
||||
replace_keycodes = false
|
||||
})
|
||||
@@ -1,90 +0,0 @@
|
||||
local llm_endpoint = "https://llm-api.va.reichard.io"
|
||||
-- local llm_assistant_model = "gpt-oss-20b-thinking"
|
||||
-- local llm_infill_model = "qwen2.5-coder-3b-instruct"
|
||||
|
||||
local llm_assistant_model = "qwen3-30b-2507-instruct"
|
||||
local llm_infill_model = llm_assistant_model
|
||||
|
||||
-- Default Llama - Toggle Llama & Copilot
|
||||
-- vim.g.copilot_filetypes = { ["*"] = false }
|
||||
local current_mode = "copilot"
|
||||
local function toggle_llm_fim_provider()
|
||||
if current_mode == "llama" then
|
||||
vim.g.copilot_filetypes = { ["*"] = true }
|
||||
vim.cmd("Copilot enable")
|
||||
vim.cmd("LlamaDisable")
|
||||
current_mode = "copilot"
|
||||
vim.notify("Copilot FIM enabled", vim.log.levels.INFO)
|
||||
else
|
||||
vim.g.copilot_filetypes = { ["*"] = true }
|
||||
vim.cmd("Copilot disable")
|
||||
vim.cmd("LlamaEnable")
|
||||
current_mode = "llama"
|
||||
vim.notify("Llama FIM enabled", vim.log.levels.INFO)
|
||||
end
|
||||
end
|
||||
vim.keymap.set("n", "<leader>cf", toggle_llm_fim_provider, { desc = "Toggle FIM (Llama / Copilot)" })
|
||||
|
||||
-- Copilot Accept Shortcut
|
||||
vim.keymap.set('i', '<C-J>', 'copilot#Accept("\\<CR>")', {
|
||||
expr = true,
|
||||
replace_keycodes = false
|
||||
})
|
||||
vim.g.copilot_no_tab_map = true
|
||||
|
||||
-- Configure LLama LLM FIM
|
||||
vim.g.llama_config = {
|
||||
endpoint = llm_endpoint .. "/infill",
|
||||
model = llm_infill_model,
|
||||
n_predict = 2048,
|
||||
ring_n_chunks = 32,
|
||||
enable_at_startup = false,
|
||||
}
|
||||
|
||||
-- Configure Code Companion
|
||||
require("plugins.codecompanion.fidget-spinner"):init()
|
||||
require("codecompanion").setup({
|
||||
display = { chat = { window = { layout = "float", width = 0.6 } } },
|
||||
adapters = {
|
||||
http = {
|
||||
opts = { show_defaults = false, },
|
||||
["llama-swap"] = function()
|
||||
return require("codecompanion.adapters").extend("openai_compatible", {
|
||||
name = "llama-swap",
|
||||
formatted_name = "LlamaSwap",
|
||||
schema = { model = { default = llm_assistant_model } },
|
||||
env = { url = llm_endpoint },
|
||||
})
|
||||
end,
|
||||
copilot = require("codecompanion.adapters.http.copilot"),
|
||||
},
|
||||
acp = { opts = { show_defaults = false } },
|
||||
},
|
||||
strategies = {
|
||||
chat = { adapter = "llama-swap" },
|
||||
inline = { adapter = "llama-swap" },
|
||||
cmd = { adapter = "llama-swap" },
|
||||
},
|
||||
chat = { dispay = "telescope" },
|
||||
memory = {
|
||||
opts = { chat = { enabled = true } },
|
||||
default = {
|
||||
description = "Collection of common files for all projects",
|
||||
files = {
|
||||
".clinerules",
|
||||
".cursorrules",
|
||||
".goosehints",
|
||||
".rules",
|
||||
".windsurfrules",
|
||||
".github/copilot-instructions.md",
|
||||
"AGENT.md",
|
||||
"AGENTS.md",
|
||||
".cursor/rules/",
|
||||
{ path = "CLAUDE.md", parser = "claude" },
|
||||
{ path = "CLAUDE.local.md", parser = "claude" },
|
||||
{ path = "~/.claude/CLAUDE.md", parser = "claude" },
|
||||
},
|
||||
is_default = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -20,6 +20,15 @@ require('render-markdown').setup({
|
||||
},
|
||||
})
|
||||
|
||||
------------------------------------------------------
|
||||
---------------------- LSP Lines ---------------------
|
||||
------------------------------------------------------
|
||||
require("lsp_lines").setup()
|
||||
vim.diagnostic.config({
|
||||
virtual_text = false,
|
||||
virtual_lines = true,
|
||||
})
|
||||
|
||||
------------------------------------------------------
|
||||
-------------------- Built-in LSP --------------------
|
||||
------------------------------------------------------
|
||||
@@ -27,8 +36,6 @@ local nix_vars = require("nix-vars")
|
||||
|
||||
local augroup = vim.api.nvim_create_augroup("LspFormatting", { clear = false })
|
||||
local on_attach = function(client, bufnr)
|
||||
local bufopts = { noremap = true, silent = true, buffer = bufnr }
|
||||
|
||||
if client:supports_method("textDocument/formatting") then
|
||||
vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
@@ -40,17 +47,25 @@ local on_attach = function(client, bufnr)
|
||||
})
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, bufopts)
|
||||
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, bufopts)
|
||||
vim.keymap.set("n", "<leader>lD", vim.lsp.buf.declaration, bufopts)
|
||||
vim.keymap.set("n", "<leader>ld", vim.lsp.buf.definition, bufopts)
|
||||
vim.keymap.set("n", "<leader>li", vim.lsp.buf.implementation, bufopts)
|
||||
vim.keymap.set("n", "<leader>ln", vim.lsp.buf.rename, bufopts)
|
||||
vim.keymap.set("n", "<leader>lr", vim.lsp.buf.references, bufopts)
|
||||
vim.keymap.set("n", "<leader>lt", vim.lsp.buf.type_definition, bufopts)
|
||||
-- Create KeyMaps
|
||||
local bufopts = { noremap = true, silent = true, buffer = bufnr }
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, vim.tbl_extend("force", { desc = 'Hover documentation' }, bufopts))
|
||||
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help,
|
||||
vim.tbl_extend("force", { desc = "Show signature help" }, bufopts))
|
||||
vim.keymap.set("n", "<leader>lD", vim.lsp.buf.declaration,
|
||||
vim.tbl_extend("force", { desc = "Go to declaration" }, bufopts))
|
||||
vim.keymap.set("n", "<leader>ld", vim.lsp.buf.definition,
|
||||
vim.tbl_extend("force", { desc = "Go to definition" }, bufopts))
|
||||
vim.keymap.set("n", "<leader>li", vim.lsp.buf.implementation,
|
||||
vim.tbl_extend("force", { desc = "Go to implementation" }, bufopts))
|
||||
vim.keymap.set("n", "<leader>ln", vim.lsp.buf.rename, vim.tbl_extend("force", { desc = "Rename symbol" }, bufopts))
|
||||
vim.keymap.set("n", "<leader>lr", vim.lsp.buf.references,
|
||||
vim.tbl_extend("force", { desc = "Show references" }, bufopts))
|
||||
vim.keymap.set("n", "<leader>lt", vim.lsp.buf.type_definition,
|
||||
vim.tbl_extend("force", { desc = "Go to type definition" }, bufopts))
|
||||
vim.keymap.set("n", "<leader>lf", function()
|
||||
vim.lsp.buf.format({ async = true, timeout_ms = 2000 })
|
||||
end, bufopts)
|
||||
end, vim.tbl_extend("force", { desc = "Format file" }, bufopts))
|
||||
end
|
||||
|
||||
local on_attach_no_formatting = function(client, bufnr)
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
require("lsp_lines").setup()
|
||||
vim.diagnostic.config({
|
||||
virtual_text = false,
|
||||
virtual_lines = true,
|
||||
})
|
||||
@@ -50,5 +50,8 @@ end
|
||||
|
||||
require("lualine").setup({
|
||||
options = { theme = "catppuccin" },
|
||||
sections = { lualine_c = { { pr_status } } },
|
||||
sections = {
|
||||
lualine_c = { { pr_status } },
|
||||
lualine_z = { require("opencode").statusline }
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
require("neo-tree").setup({ window = { mappings = { ["<space>"] = "none" } } })
|
||||
vim.keymap.set("n", "<leader>t", ":Neotree toggle<CR>", { silent = true })
|
||||
@@ -1,26 +1,14 @@
|
||||
-- Noice Doc Scrolling
|
||||
vim.keymap.set("n", "<c-f>", function()
|
||||
if not require("noice.lsp").scroll(4) then return "<c-f>" end
|
||||
end, {silent = true, expr = true})
|
||||
|
||||
vim.keymap.set("n", "<c-b>", function()
|
||||
if not require("noice.lsp").scroll(-4) then return "<c-b>" end
|
||||
end, {silent = true, expr = true})
|
||||
|
||||
-- Noice Setup
|
||||
require("noice").setup({
|
||||
lsp = {
|
||||
override = {
|
||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||
["vim.lsp.util.stylize_markdown"] = true,
|
||||
["cmp.entry.get_documentation"] = false
|
||||
},
|
||||
signature = {enabled = false}
|
||||
},
|
||||
presets = {
|
||||
command_palette = true, -- position the cmdline and popupmenu together
|
||||
long_message_to_split = true, -- long messages will be sent to a split
|
||||
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||
lsp_doc_border = false -- add a border to hover docs and signature help
|
||||
}
|
||||
-- Ignore (Snacks Priority)
|
||||
routes = {
|
||||
{
|
||||
filter = { event = "ui", kind = "input", },
|
||||
opts = { skip = true },
|
||||
},
|
||||
{
|
||||
filter = { event = "ui", kind = "select", },
|
||||
opts = { skip = true },
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
require("octo").setup()
|
||||
|
||||
-- Create KeyMaps
|
||||
vim.keymap.set("n", "<leader>rs", "<cmd>Octo review start<cr>")
|
||||
vim.keymap.set("n", "<leader>rd", "<cmd>Octo review discard<cr>")
|
||||
vim.keymap.set("n", "<leader>rr", "<cmd>Octo review resume<cr>")
|
||||
@@ -8,23 +9,5 @@ vim.keymap.set("n", "<leader>rca", "<cmd>Octo review comments<cr>")
|
||||
vim.keymap.set("n", "<leader>rcs", "<cmd>Octo comment suggest<cr>")
|
||||
vim.keymap.set("n", "<leader>rcc", "<cmd>Octo comment add<cr>")
|
||||
vim.keymap.set("n", "<leader>rcr", "<cmd>Octo comment reply<cr>")
|
||||
|
||||
vim.keymap.set("n", "<leader>pd", "<cmd>Octo pr diff<cr>")
|
||||
vim.keymap.set("n", "<leader>pc", "<cmd>Octo pr changes<cr>")
|
||||
|
||||
-- vim.api.nvim_create_autocmd("FileType", {
|
||||
-- pattern = "octo",
|
||||
-- callback = function()
|
||||
-- vim.keymap.set("n", "<leader>rs", "<cmd>Octo review start<cr>", { buffer = true })
|
||||
-- vim.keymap.set("n", "<leader>rd", "<cmd>Octo review discard<cr>", { buffer = true })
|
||||
-- vim.keymap.set("n", "<leader>rr", "<cmd>Octo review resume<cr>", { buffer = true })
|
||||
-- vim.keymap.set("n", "<leader>re", "<cmd>Octo review submit<cr>", { buffer = true })
|
||||
-- vim.keymap.set("n", "<leader>rca", "<cmd>Octo review comments<cr>", { buffer = true })
|
||||
-- vim.keymap.set("n", "<leader>rcs", "<cmd>Octo comment suggest<cr>", { buffer = true })
|
||||
-- vim.keymap.set("n", "<leader>rcc", "<cmd>Octo comment add<cr>", { buffer = true })
|
||||
-- vim.keymap.set("n", "<leader>rcr", "<cmd>Octo comment reply<cr>", { buffer = true })
|
||||
--
|
||||
-- vim.keymap.set("n", "<leader>pd", "<cmd>Octo pr diff<cr>", { buffer = true })
|
||||
-- vim.keymap.set("n", "<leader>pc", "<cmd>Octo pr changes<cr>", { buffer = true })
|
||||
-- end,
|
||||
-- })
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
local progress = require("fidget.progress")
|
||||
|
||||
local M = {}
|
||||
|
||||
function M:init()
|
||||
local group = vim.api.nvim_create_augroup("CodeCompanionFidgetHooks", {})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "User" }, {
|
||||
pattern = "CodeCompanionRequestStarted",
|
||||
group = group,
|
||||
callback = function(request)
|
||||
local handle = M:create_progress_handle(request)
|
||||
M:store_progress_handle(request.data.id, handle)
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "User" }, {
|
||||
pattern = "CodeCompanionRequestFinished",
|
||||
group = group,
|
||||
callback = function(request)
|
||||
local handle = M:pop_progress_handle(request.data.id)
|
||||
if handle then
|
||||
M:report_exit_status(handle, request)
|
||||
handle:finish()
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
M.handles = {}
|
||||
|
||||
function M:store_progress_handle(id, handle)
|
||||
M.handles[id] = handle
|
||||
end
|
||||
|
||||
function M:pop_progress_handle(id)
|
||||
local handle = M.handles[id]
|
||||
M.handles[id] = nil
|
||||
return handle
|
||||
end
|
||||
|
||||
function M:create_progress_handle(request)
|
||||
return progress.handle.create({
|
||||
title = " Requesting assistance (" .. request.data.strategy .. ")",
|
||||
message = "In progress...",
|
||||
lsp_client = {
|
||||
name = M:llm_role_title(request.data.adapter),
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
function M:llm_role_title(adapter)
|
||||
local parts = {}
|
||||
table.insert(parts, adapter.formatted_name)
|
||||
if adapter.model and adapter.model ~= "" then
|
||||
table.insert(parts, "(" .. adapter.model .. ")")
|
||||
end
|
||||
return table.concat(parts, " ")
|
||||
end
|
||||
|
||||
function M:report_exit_status(handle, request)
|
||||
if request.data.status == "success" then
|
||||
handle.message = "Completed"
|
||||
elseif request.data.status == "error" then
|
||||
handle.message = " Error"
|
||||
else
|
||||
handle.message = " Cancelled"
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -1,10 +0,0 @@
|
||||
local silicon = require('silicon')
|
||||
silicon.setup({})
|
||||
|
||||
vim.keymap.set('v', '<Leader>ss', function() silicon.visualise_api({}) end)
|
||||
vim.keymap.set('v', '<Leader>sb',
|
||||
function() silicon.visualise_api({show_buf = true}) end)
|
||||
vim.keymap.set('n', '<Leader>sv',
|
||||
function() silicon.visualise_api({visible = true}) end)
|
||||
vim.keymap.set('n', '<Leader>sb',
|
||||
function() silicon.visualise_api({show_buf = true}) end)
|
||||
@@ -0,0 +1,23 @@
|
||||
-- Snacks Setup
|
||||
local snacks = require("snacks")
|
||||
snacks.setup({
|
||||
input = { enabled = true, style = "popup" },
|
||||
select = { enabled = true, style = "popup" },
|
||||
})
|
||||
|
||||
-- Create KeyMaps
|
||||
vim.keymap.set("n", "<leader>fb", snacks.picker.buffers, { desc = "Buffers" })
|
||||
vim.keymap.set("n", "<leader>fd", snacks.picker.diagnostics, { desc = "Diagnostics" })
|
||||
vim.keymap.set("n", "<leader>ff", snacks.picker.files, { desc = "Find Files" })
|
||||
vim.keymap.set("n", "<leader>fg", snacks.picker.grep, { desc = "Grep Files" })
|
||||
vim.keymap.set("n", "<leader>fh", snacks.picker.help, { desc = "Help Tags" })
|
||||
vim.keymap.set("n", "<leader>fj", snacks.picker.jumps, { desc = "Jump List" })
|
||||
vim.keymap.set("n", "<leader>fl", function() snacks.terminal("lazygit") end, { desc = "LazyGit" })
|
||||
vim.keymap.set("n", "<leader>fp", snacks.picker.gh_pr, { desc = "GitHub Pull Requests" })
|
||||
vim.keymap.set("n", "<leader>fs", snacks.picker.lsp_symbols, { desc = "Symbols" })
|
||||
vim.keymap.set("n", "<leader>fu", snacks.picker.undo, { desc = "Undo History" })
|
||||
vim.keymap.set("n", "gI", snacks.picker.lsp_implementations, { desc = "LSP Implementations" })
|
||||
vim.keymap.set("n", "gi", snacks.picker.lsp_incoming_calls, { desc = "LSP Incoming Calls" })
|
||||
vim.keymap.set("n", "go", snacks.picker.lsp_outgoing_calls, { desc = "LSP Outgoing Calls" })
|
||||
vim.keymap.set("n", "gr", snacks.picker.lsp_references, { desc = "LSP References" })
|
||||
vim.keymap.set("n", [[<c-\>]], function() snacks.terminal() end, { desc = "Toggle Terminal" })
|
||||
@@ -1,23 +0,0 @@
|
||||
require("telescope").setup({
|
||||
extensions = {
|
||||
fzf = {
|
||||
fuzzy = true,
|
||||
override_generic_sorter = true,
|
||||
override_file_sorter = true,
|
||||
case_mode = "smart_case",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
require("telescope").load_extension("fzf")
|
||||
require("telescope").load_extension("ui-select")
|
||||
require("telescope").load_extension("undo")
|
||||
|
||||
local builtin = require("telescope.builtin")
|
||||
vim.keymap.set("n", "<leader>ff", builtin.find_files)
|
||||
vim.keymap.set("n", "<leader>fg", builtin.live_grep)
|
||||
vim.keymap.set("n", "<leader>fb", builtin.buffers)
|
||||
vim.keymap.set("n", "<leader>fh", builtin.help_tags)
|
||||
vim.keymap.set("n", "<leader>fj", builtin.jumplist)
|
||||
vim.keymap.set("n", "<leader>fu", "<cmd>Telescope undo<cr>")
|
||||
vim.keymap.set("n", "<leader>fp", "<cmd>Octo pr list<cr>")
|
||||
@@ -1,20 +1,20 @@
|
||||
require("toggleterm").setup({open_mapping = [[<c-\>]]})
|
||||
|
||||
-- Get PR status on terminal load
|
||||
-- require("toggleterm").setup({
|
||||
-- open_mapping = [[<c-\>]],
|
||||
-- on_create = function(term)
|
||||
-- vim.cmd("startinsert")
|
||||
-- term:send("gh pr checks")
|
||||
-- end
|
||||
-- })
|
||||
|
||||
-- Duplicate C-w & Esc Behavior
|
||||
function _G.set_terminal_keymaps()
|
||||
local opts = {buffer = 0}
|
||||
vim.opt.signcolumn = "no"
|
||||
vim.keymap.set('t', '<esc>', [[<C-\><C-n>]], opts)
|
||||
vim.keymap.set('t', '<C-w>', [[<C-\><C-n><C-w>]], opts)
|
||||
end
|
||||
|
||||
vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
|
||||
-- require("toggleterm").setup({open_mapping = [[<c-\>]]})
|
||||
--
|
||||
-- -- Get PR status on terminal load
|
||||
-- -- require("toggleterm").setup({
|
||||
-- -- open_mapping = [[<c-\>]],
|
||||
-- -- on_create = function(term)
|
||||
-- -- vim.cmd("startinsert")
|
||||
-- -- term:send("gh pr checks")
|
||||
-- -- end
|
||||
-- -- })
|
||||
--
|
||||
-- -- Duplicate C-w & Esc Behavior
|
||||
-- function _G.set_terminal_keymaps()
|
||||
-- local opts = {buffer = 0}
|
||||
-- vim.opt.signcolumn = "no"
|
||||
-- vim.keymap.set('t', '<esc>', [[<C-\><C-n>]], opts)
|
||||
-- vim.keymap.set('t', '<C-w>', [[<C-\><C-n><C-w>]], opts)
|
||||
-- end
|
||||
--
|
||||
-- vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
|
||||
|
||||
@@ -1,52 +1,9 @@
|
||||
local wk = require("which-key")
|
||||
|
||||
wk.setup({})
|
||||
|
||||
wk.add({
|
||||
{ "<C-k>", desc = "Signature Help" },
|
||||
{ "K", desc = "Definition Hover" },
|
||||
{ "<leader>a", desc = "Aerial" },
|
||||
{ "<leader>c", desc = "CodeCompanion" },
|
||||
{ "<leader>cn", "<cmd>CodeCompanionChat<cr>", desc = "New Chat", mode = { "v", "n" } },
|
||||
{ "<leader>ct", "<cmd>CodeCompanionChat Toggle<cr>", desc = "Toggle Chat" },
|
||||
{ "<leader>ci", "<cmd>CodeCompanion<cr>", desc = "Inline Prompt", mode = "v" },
|
||||
{ "<leader>db", desc = "Toggle Breakpoint" },
|
||||
{ "<leader>dc", desc = "Continue" },
|
||||
{ "<leader>d", group = "Debug" },
|
||||
{ "<leader>dt", desc = "Run Test" },
|
||||
{ "<leader>du", desc = "Toggle UI" },
|
||||
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Find Buffer" },
|
||||
{ "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find File" },
|
||||
{ "<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Live Grep" },
|
||||
{ "<leader>f", group = "Find - Telescope" },
|
||||
{ "<leader>fh", "<cmd>Telescope help_tags<cr>", desc = "Help Tags" },
|
||||
{ "<leader>fj", "<cmd>Telescope jumplist<cr>", desc = "Jump List" },
|
||||
{ "<leader>fp", "<cmd>Octo pr list<cr>", desc = "PR List" },
|
||||
{ "<leader>gB", desc = "Git Blame Full" },
|
||||
{ "<leader>gb", desc = "Git Blame Line" },
|
||||
{ "<leader>gc", "<cmd>DiffviewClose<cr>", desc = "Close Diff" },
|
||||
{ "<leader>g", group = "DiffView" },
|
||||
{ "<leader>gh", "<cmd>DiffviewFileHistory<cr>", desc = "Diff History" },
|
||||
{ "<leader>gH", "<cmd>DiffviewFileHistory --range=origin..HEAD<cr>", desc = "Diff History - Main" },
|
||||
{ "<leader>go", "<cmd>DiffviewOpen<cr>", desc = "Open Diff - Current" },
|
||||
{ "<leader>gO", "<cmd>DiffviewOpen origin/main...HEAD<cr>", desc = "Open Diff - Main" },
|
||||
{ "<leader>lD", desc = "Declaration" },
|
||||
{ "<leader>ld", desc = "Definition" },
|
||||
{ "<leader>lf", desc = "Format" },
|
||||
{ "<leader>l", group = "LSP" },
|
||||
{ "<leader>li", desc = "Implementation" },
|
||||
{ "<leader>ln", desc = "Rename" },
|
||||
{ "<leader>lr", desc = "References" },
|
||||
{ "<leader>lt", desc = "Type Definition" },
|
||||
{ "<leader>qe", desc = "Open Diagnostic Float" },
|
||||
{ "<leader>q", group = "Diagnostics" },
|
||||
{ "<leader>qn", desc = "Next Diagnostic" },
|
||||
{ "<leader>qN", desc = "Previous Diagnostic" },
|
||||
{ "<leader>qq", desc = "Toggle Diagnostic List" },
|
||||
{ "<leader>qt", desc = "Toggle Inline Diagnostics" },
|
||||
{ "<leader>sb", desc = "Buffer Screenshot", mode = { "n", "v" } },
|
||||
{ "<leader>s", group = "Screenshot", mode = { "n", "v" } },
|
||||
{ "<leader>ss", desc = "Selected Screenshot", mode = "v" },
|
||||
{ "<leader>sv", desc = "Visual Screenshot" },
|
||||
{ "<leader>t", desc = "NeoTree" },
|
||||
{ "<leader>a", group = "LLM" }, -- llm-config.lua
|
||||
{ "<leader>f", group = "Find" }, -- snacks-config.lua
|
||||
{ "<leader>l", group = "LSP" }, -- lsp-config.lua
|
||||
{ "<leader>g", group = "Git" }, -- git-config.lua
|
||||
{ "<leader>q", group = "Diagnostics" }, -- diagnostics-config.lua
|
||||
{ "<leader>d", group = "Debug" }, -- dap-config.lua
|
||||
})
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
{ pkgs
|
||||
, lib
|
||||
, config
|
||||
, namespace
|
||||
, ...
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
namespace,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
@@ -39,26 +40,20 @@ in
|
||||
# -------------------
|
||||
# ----- Helpers -----
|
||||
# -------------------
|
||||
aerial-nvim # Code Outline
|
||||
codecompanion-nvim # CodeCompanion
|
||||
comment-nvim # Code Comments
|
||||
copilot-vim # GitHub Copilot
|
||||
diffview-nvim # Diff View
|
||||
fidget-nvim # Notification Helper
|
||||
gitsigns-nvim # Git Blame
|
||||
leap-nvim # Quick Movement
|
||||
markdown-preview-nvim # Markdown Preview
|
||||
neo-tree-nvim # File Explorer
|
||||
none-ls-nvim # Formatters
|
||||
numb-nvim # Peek / Jump to Lines
|
||||
nvim-autopairs # Automatically Close Pairs (),[],{}
|
||||
octo-nvim # Git Octo
|
||||
render-markdown-nvim # Markdown Renderer
|
||||
telescope-fzf-native-nvim # Faster Telescope
|
||||
snacks-nvim # OpenCode
|
||||
snacks-nvim # Snacks
|
||||
telescope-nvim # Fuzzy Finder
|
||||
telescope-ui-select-nvim # UI
|
||||
telescope-undo-nvim # Undo Tree
|
||||
toggleterm-nvim # Terminal Helper
|
||||
vim-nix # Nix Helpers
|
||||
which-key-nvim # Shortcut Helper
|
||||
|
||||
@@ -84,6 +79,22 @@ in
|
||||
nvim-dap-go
|
||||
nvim-dap-ui
|
||||
|
||||
# --------------------
|
||||
# ----- OPENCODE -----
|
||||
# --------------------
|
||||
(pkgs.vimUtils.buildVimPlugin {
|
||||
pname = "opencode.nvim";
|
||||
version = "2025-12-17";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "NickvanDyke";
|
||||
repo = "opencode.nvim";
|
||||
rev = "39a246b597d6050ca319142b5af5a8b81c74e7d9";
|
||||
hash = "sha256-h/Zttho/grrpmcklld15NNGf+3epqLg8RmmRW8eApSo=";
|
||||
};
|
||||
meta.homepage = "https://github.com/NickvanDyke/opencode.nvim/";
|
||||
meta.hydraPlatforms = [ ];
|
||||
})
|
||||
|
||||
# --------------------
|
||||
# -- NONE-LS EXTRAS --
|
||||
# --------------------
|
||||
@@ -100,22 +111,6 @@ in
|
||||
meta.homepage = "https://github.com/nvimtools/none-ls-extras.nvim/";
|
||||
})
|
||||
|
||||
# -------------------
|
||||
# ----- Silicon -----
|
||||
# -------------------
|
||||
(pkgs.vimUtils.buildVimPlugin {
|
||||
pname = "silicon.lua";
|
||||
version = "2025-10-28";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "0oAstro";
|
||||
repo = "silicon.lua";
|
||||
rev = "54682647a7c1c773dc4c9ab2bc309114a3b9e96f";
|
||||
sha256 = "sha256-lM7ALmYHGN5SKftfD7YBPh1gGKORbS6EMXS/ZQXDMSI=";
|
||||
};
|
||||
doCheck = false;
|
||||
meta.homepage = "https://github.com/0oAstro/silicon.lua";
|
||||
})
|
||||
|
||||
# -------------------
|
||||
# ---- LLAMA.VIM ----
|
||||
# -------------------
|
||||
@@ -133,15 +128,7 @@ in
|
||||
];
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
# Toggle Term
|
||||
bashInteractive
|
||||
|
||||
# Telescope Dependencies
|
||||
fd
|
||||
ripgrep
|
||||
tree-sitter
|
||||
|
||||
# LSP Dependencies
|
||||
# LSP
|
||||
eslint_d
|
||||
go
|
||||
golangci-lint
|
||||
@@ -164,8 +151,9 @@ in
|
||||
sqlfluff
|
||||
stylua
|
||||
|
||||
# Silicon
|
||||
silicon
|
||||
# Tools
|
||||
ripgrep
|
||||
lazygit
|
||||
];
|
||||
|
||||
extraConfig = ":luafile ~/.config/nvim/lua/init.lua";
|
||||
@@ -181,6 +169,7 @@ in
|
||||
# Generate Nix Vars
|
||||
"nvim/lua/nix-vars.lua".text = ''
|
||||
local nix_vars = {
|
||||
bash = "${pkgs.bashInteractive}/bin/bash",
|
||||
clangd = "${pkgs.clang-tools}/bin/clangd",
|
||||
golintls = "${pkgs.golangci-lint-langserver}/bin/golangci-lint-langserver",
|
||||
gopls = "${pkgs.gopls}/bin/gopls",
|
||||
|
||||
Reference in New Issue
Block a user