more things

This commit is contained in:
2025-12-03 11:40:01 -05:00
parent 3089d6fdd1
commit 0ed577e815
10 changed files with 213 additions and 96 deletions

View File

@@ -1 +0,0 @@
require("avante").setup()

View File

@@ -0,0 +1,27 @@
require("plugins.codecompanion.fidget-spinner"):init()
require("codecompanion").setup({
opts = { log_level = "DEBUG" },
adapters = {
http = {
["llama-swap"] = function()
return require("codecompanion.adapters").extend("openai_compatible", {
name = "llama-swap",
formatted_name = "LlamaSwap",
schema = {
model = {
default = "qwen3-coder-30b-instruct",
},
},
env = {
url = "http://10.0.20.100:8080",
api_key = "none",
},
})
end,
},
},
strategies = {
chat = { adapter = "llama-swap" },
inline = { adapter = "llama-swap" },
},
})

View File

@@ -1,8 +1,8 @@
require("base") require("base")
require("aerial-config") require("aerial-config")
require("autopairs-config") require("autopairs-config")
require("avante-config")
require("cmp-config") require("cmp-config")
require("code-companion-config")
require("comment-config") require("comment-config")
require("dap-config") require("dap-config")
require("diffview-config") require("diffview-config")

View File

@@ -8,6 +8,11 @@ vim.api.nvim_create_autocmd("FileType", {
end, end,
}) })
require('render-markdown').setup({
completions = { lsp = { enabled = true } },
file_types = { 'markdown', 'codecompanion' },
})
------------------------------------------------------ ------------------------------------------------------
-------------------- Built-in LSP -------------------- -------------------- Built-in LSP --------------------
------------------------------------------------------ ------------------------------------------------------

View File

@@ -32,7 +32,7 @@ execute_command()
vim.fn.timer_start(300000, execute_command) vim.fn.timer_start(300000, execute_command)
-- Return status from cache -- Return status from cache
function pr_status() local function pr_status()
--    --   
--     --    
-- --
@@ -40,19 +40,15 @@ function pr_status()
-- PASS COLOR - #3fb950 -- PASS COLOR - #3fb950
-- FAIL COLOR - #f85149 -- FAIL COLOR - #f85149
return cached_pr_status return cached_pr_status
:gsub("\n", "") :gsub("\n", "")
:gsub("fail", "") :gsub("fail", "")
:gsub("pass", "") :gsub("pass", "")
:gsub("pending", "") :gsub("pending", "")
:gsub("skipping", "") :gsub("skipping", "")
:sub(1, -2) :sub(1, -2)
end end
require("lualine").setup({ require("lualine").setup({
options = { options = { theme = "catppuccin" },
theme = "catppuccin",
-- theme = "nord"
-- theme = "OceanicNext",
},
sections = { lualine_c = { { pr_status } } }, sections = { lualine_c = { { pr_status } } },
}) })

View File

@@ -0,0 +1,71 @@
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

View File

@@ -3,46 +3,49 @@ local wk = require("which-key")
wk.setup({}) wk.setup({})
wk.add({ wk.add({
{ "<C-k>", desc = "Signature Help" }, { "<C-k>", desc = "Signature Help" },
{ "<leader>a", desc = "Aerial" }, { "K", desc = "Definition Hover" },
{ "<leader>d", group = "Debug" }, { "<leader>a", desc = "Aerial" },
{ "<leader>c", desc = "CodeCompanion" },
{ "<leader>cc", "<cmd>CodeCompanionChat Toggle<cr>", desc = "Toggle Chat" },
{ "<leader>ci", "<cmd>CodeCompanion<cr>", desc = "Inline Prompt", mode = "v" },
{ "<leader>db", desc = "Toggle Breakpoint" }, { "<leader>db", desc = "Toggle Breakpoint" },
{ "<leader>dc", desc = "Continue" }, { "<leader>dc", desc = "Continue" },
{ "<leader>d", group = "Debug" },
{ "<leader>dt", desc = "Run Test" }, { "<leader>dt", desc = "Run Test" },
{ "<leader>du", desc = "Toggle UI" }, { "<leader>du", desc = "Toggle UI" },
{ "<leader>f", group = "Find - Telescope" }, { "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Find Buffer" },
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Find Buffer" }, { "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find File" },
{ "<leader>ff", "<cmd>Telescope find_files<cr>", desc = "Find File" }, { "<leader>fg", "<cmd>Telescope live_grep<cr>", desc = "Live Grep" },
{ "<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>fh", "<cmd>Telescope help_tags<cr>", desc = "Help Tags" },
{ "<leader>fj", "<cmd>Telescope jumplist<cr>", desc = "Jump List" }, { "<leader>fj", "<cmd>Telescope jumplist<cr>", desc = "Jump List" },
{ "<leader>fp", "<cmd>Octo pr list<cr>", desc = "PR List" }, { "<leader>fp", "<cmd>Octo pr list<cr>", desc = "PR List" },
{ "<leader>g", group = "DiffView" },
{ "<leader>gB", desc = "Git Blame Full" }, { "<leader>gB", desc = "Git Blame Full" },
{ "<leader>gH", "<cmd>DiffviewFileHistory --range=origin..HEAD<cr>", desc = "Diff History - Main" },
{ "<leader>gO", "<cmd>DiffviewOpen origin/main...HEAD<cr>", desc = "Open Diff - Main" },
{ "<leader>gb", desc = "Git Blame Line" }, { "<leader>gb", desc = "Git Blame Line" },
{ "<leader>gc", "<cmd>DiffviewClose<cr>", desc = "Close Diff" }, { "<leader>gc", "<cmd>DiffviewClose<cr>", desc = "Close Diff" },
{ "<leader>gh", "<cmd>DiffviewFileHistory<cr>", desc = "Diff History" }, { "<leader>g", group = "DiffView" },
{ "<leader>go", "<cmd>DiffviewOpen<cr>", desc = "Open Diff - Current" }, { "<leader>gh", "<cmd>DiffviewFileHistory<cr>", desc = "Diff History" },
{ "<leader>l", group = "LSP" }, { "<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 = "Declaration" },
{ "<leader>ld", desc = "Definition" }, { "<leader>ld", desc = "Definition" },
{ "<leader>lf", desc = "Format" }, { "<leader>lf", desc = "Format" },
{ "<leader>l", group = "LSP" },
{ "<leader>li", desc = "Implementation" }, { "<leader>li", desc = "Implementation" },
{ "<leader>ln", desc = "Rename" }, { "<leader>ln", desc = "Rename" },
{ "<leader>lr", desc = "References" }, { "<leader>lr", desc = "References" },
{ "<leader>lt", desc = "Type Definition" }, { "<leader>lt", desc = "Type Definition" },
{ "<leader>q", group = "Diagnostics" },
{ "<leader>qN", desc = "Previous Diagnostic" },
{ "<leader>qe", desc = "Open Diagnostic Float" }, { "<leader>qe", desc = "Open Diagnostic Float" },
{ "<leader>q", group = "Diagnostics" },
{ "<leader>qn", desc = "Next Diagnostic" }, { "<leader>qn", desc = "Next Diagnostic" },
{ "<leader>qN", desc = "Previous Diagnostic" },
{ "<leader>qq", desc = "Toggle Diagnostic List" }, { "<leader>qq", desc = "Toggle Diagnostic List" },
{ "<leader>qt", desc = "Toggle Inline Diagnostics" }, { "<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>sv", desc = "Visual Screenshot" },
{ "<leader>t", desc = "NeoTree" }, { "<leader>t", desc = "NeoTree" },
{ "K", desc = "Definition Hover" },
{ "<leader>ss", desc = "Selected Screenshot", mode = "v" },
{ "<leader>s", group = "Screenshot", mode = { "n", "v" } },
{ "<leader>sb", desc = "Buffer Screenshot", mode = { "n", "v" } },
}) })

View File

@@ -1,4 +1,9 @@
{ pkgs, lib, config, namespace, ... }: { pkgs
, lib
, config
, namespace
, ...
}:
let let
inherit (lib) mkIf; inherit (lib) mkIf;
cfg = config.${namespace}.programs.terminal.nvim; cfg = config.${namespace}.programs.terminal.nvim;
@@ -22,9 +27,9 @@ in
# ------------------ # ------------------
cmp-buffer # Buffer Word Completion cmp-buffer # Buffer Word Completion
cmp-cmdline # Command Line Completion cmp-cmdline # Command Line Completion
cmp_luasnip # Snippets Completion
cmp-nvim-lsp # Main LSP cmp-nvim-lsp # Main LSP
cmp-path # Path Completion cmp-path # Path Completion
cmp_luasnip # Snippets Completion
friendly-snippets # Snippets friendly-snippets # Snippets
lsp_lines-nvim # Inline Diagnostics lsp_lines-nvim # Inline Diagnostics
luasnip # Snippets luasnip # Snippets
@@ -34,10 +39,11 @@ in
# ------------------- # -------------------
# ----- Helpers ----- # ----- Helpers -----
# ------------------- # -------------------
avante-nvim # Avante
aerial-nvim # Code Outline aerial-nvim # Code Outline
codecompanion-nvim # CodeCompanion
comment-nvim # Code Comments comment-nvim # Code Comments
diffview-nvim # Diff View diffview-nvim # Diff View
fidget-nvim # Notification Helper
gitsigns-nvim # Git Blame gitsigns-nvim # Git Blame
leap-nvim # Quick Movement leap-nvim # Quick Movement
markdown-preview-nvim # Markdown Preview markdown-preview-nvim # Markdown Preview
@@ -45,6 +51,8 @@ in
none-ls-nvim # Formatters none-ls-nvim # Formatters
numb-nvim # Peek / Jump to Lines numb-nvim # Peek / Jump to Lines
nvim-autopairs # Automatically Close Pairs (),[],{} nvim-autopairs # Automatically Close Pairs (),[],{}
octo-nvim # Git Octo
render-markdown-nvim # Markdown Renderer
telescope-fzf-native-nvim # Faster Telescope telescope-fzf-native-nvim # Faster Telescope
telescope-nvim # Fuzzy Finder telescope-nvim # Fuzzy Finder
telescope-ui-select-nvim # UI telescope-ui-select-nvim # UI
@@ -52,16 +60,13 @@ in
toggleterm-nvim # Terminal Helper toggleterm-nvim # Terminal Helper
vim-nix # Nix Helpers vim-nix # Nix Helpers
which-key-nvim # Shortcut Helper which-key-nvim # Shortcut Helper
octo-nvim # Git Octo
# ------------------ # ------------------
# --- Theme / UI --- # --- Theme / UI ---
# ------------------ # ------------------
catppuccin-nvim # Theme
lualine-nvim # Bottom Line lualine-nvim # Bottom Line
noice-nvim # UI Tweaks noice-nvim # UI Tweaks
# nord-nvim # Theme
# melange-nvim # Theme
catppuccin-nvim # Theme
nvim-notify # Noice Dependency nvim-notify # Noice Dependency
nvim-web-devicons # Dev Icons nvim-web-devicons # Dev Icons
@@ -81,55 +86,49 @@ in
# -------------------- # --------------------
# -- NONE-LS EXTRAS -- # -- NONE-LS EXTRAS --
# -------------------- # --------------------
( (pkgs.vimUtils.buildVimPlugin {
pkgs.vimUtils.buildVimPlugin { pname = "none-ls-extras.nvim";
pname = "none-ls-extras.nvim"; version = "2025-10-28";
version = "2025-10-28"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "nvimtools";
owner = "nvimtools"; repo = "none-ls-extras.nvim";
repo = "none-ls-extras.nvim"; rev = "402c6b5c29f0ab57fac924b863709f37f55dc298";
rev = "402c6b5c29f0ab57fac924b863709f37f55dc298"; sha256 = "sha256-4s/xQNWNA4dgb5gZR4Xqn6zDDWrSJNtmHOmmjmYnN/8=";
sha256 = "sha256-4s/xQNWNA4dgb5gZR4Xqn6zDDWrSJNtmHOmmjmYnN/8="; };
}; doCheck = false;
doCheck = false; meta.homepage = "https://github.com/nvimtools/none-ls-extras.nvim/";
meta.homepage = "https://github.com/nvimtools/none-ls-extras.nvim/"; })
}
)
# ------------------- # -------------------
# ----- Silicon ----- # ----- Silicon -----
# ------------------- # -------------------
( (pkgs.vimUtils.buildVimPlugin {
pkgs.vimUtils.buildVimPlugin { pname = "silicon.lua";
pname = "silicon.lua"; version = "2025-10-28";
version = "2025-10-28"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "0oAstro";
owner = "0oAstro"; repo = "silicon.lua";
repo = "silicon.lua"; rev = "54682647a7c1c773dc4c9ab2bc309114a3b9e96f";
rev = "54682647a7c1c773dc4c9ab2bc309114a3b9e96f"; sha256 = "sha256-lM7ALmYHGN5SKftfD7YBPh1gGKORbS6EMXS/ZQXDMSI=";
sha256 = "sha256-lM7ALmYHGN5SKftfD7YBPh1gGKORbS6EMXS/ZQXDMSI="; };
}; doCheck = false;
doCheck = false; meta.homepage = "https://github.com/0oAstro/silicon.lua";
meta.homepage = "https://github.com/0oAstro/silicon.lua"; })
}
)
# ------------------- # -------------------
# ---- LLAMA.VIM ---- # ---- LLAMA.VIM ----
# ------------------- # -------------------
( (pkgs.vimUtils.buildVimPlugin {
pkgs.vimUtils.buildVimPlugin { pname = "llama.vim";
pname = "llama.vim"; version = "2025-10-28";
version = "2025-10-28"; src = pkgs.fetchFromGitHub {
src = pkgs.fetchFromGitHub { owner = "ggml-org";
owner = "ggml-org"; repo = "llama.vim";
repo = "llama.vim"; rev = "ade8966eff57dcbe4a359dd26fb1ea97378ea03c";
rev = "ade8966eff57dcbe4a359dd26fb1ea97378ea03c"; sha256 = "sha256-uPqOZLWKVMimhc9eG7yM5OmhJy3mTRgKsiqKhstWs4Y=";
sha256 = "sha256-uPqOZLWKVMimhc9eG7yM5OmhJy3mTRgKsiqKhstWs4Y="; };
}; meta.homepage = "https://github.com/ggml-org/llama.vim/";
meta.homepage = "https://github.com/ggml-org/llama.vim/"; })
}
)
]; ];
extraPackages = with pkgs; [ extraPackages = with pkgs; [

View File

@@ -1,8 +1,9 @@
{ config {
, pkgs config,
, lib pkgs,
, namespace lib,
, ... namespace,
...
}: }:
let let
inherit (lib) types mkIf mkEnableOption; inherit (lib) types mkIf mkEnableOption;

View File

@@ -99,10 +99,10 @@ in
services = { services = {
openssh = enabled; openssh = enabled;
mosh = enabled;
}; };
virtualisation = { virtualisation = {
# podman run --device nvidia.com/gpu=all -e INVOKEAI_ROOT=/invokeai -v /mnt/ssd/InvokeAI:/invokeai --publish 8081:9090 ghcr.io/invoke-ai/invokeai
podman = enabled; podman = enabled;
}; };
@@ -113,18 +113,34 @@ in
openFirewall = true; openFirewall = true;
settings = { settings = {
models = { models = {
# https://huggingface.co/ggml-org/gpt-oss-20b-GGUF/tree/main # https://huggingface.co/unsloth/SmolLM3-3B-128K-GGUF/tree/main
"smollm3-3b-instruct" = {
name = "SmolLM3(3B) - Instruct";
cmd = "${pkgs.llama-cpp}/bin/llama-server --port \${PORT} -m /mnt/ssd/Models/SmolLM3-3B-128K-UD-Q4_K_XL.gguf --ctx-size 98304 --temp 0.6 --top-p 0.95 --reasoning-budget 0 -sm none";
};
# https://huggingface.co/unsloth/Qwen3-Next-80B-A3B-Instruct-GGUF/tree/main
"qwen3-next-80b-instruct" = {
name = "Qwen3 Next (80B) - Instruct";
cmd = "${pkgs.llama-cpp}/bin/llama-server --port \${PORT} -m /mnt/ssd/Models/Qwen3-Next-80B-A3B-Instruct-UD-Q4_K_XL.gguf --ctx-size 32768 --temp 0.7 --min-p 0.0 --top-p 0.8 --top-k 20 -sm none -ncmoe 39";
};
# https://huggingface.co/mradermacher/gpt-oss-20b-heretic-GGUF/tree/main # https://huggingface.co/mradermacher/gpt-oss-20b-heretic-GGUF/tree/main
# reasoning_effort = low, medium, high
"gpt-oss-20b-thinking" = { "gpt-oss-20b-thinking" = {
name = "GPT OSS (20B) - Thinking"; name = "GPT OSS (20B) - Thinking";
cmd = "${pkgs.llama-cpp}/bin/llama-server --port \${PORT} -m /mnt/ssd/Models/gpt-oss-20b-heretic-MXFP4.gguf --ctx-size 128000 --chat-template-kwargs '{\"reasoning_effort\":\"low\"}'"; cmd = "${pkgs.llama-cpp}/bin/llama-server --port \${PORT} -m /mnt/ssd/Models/gpt-oss-20b-heretic-MXFP4.gguf --ctx-size 128000 --chat-template-kwargs '{\"reasoning_effort\":\"low\"}'";
}; };
# https://huggingface.co/ggml-org/Qwen2.5-Coder-7B-Q8_0-GGUF/tree/main # https://huggingface.co/unsloth/ERNIE-4.5-21B-A3B-PT-GGUF/tree/main
"ernie4.5-21b-instruct" = {
name = "ERNIE4.5 (21B) - Instruct";
cmd = "${pkgs.llama-cpp}/bin/llama-server --port \${PORT} -m /mnt/ssd/Models/ERNIE-4.5-21B-A3B-PT-UD-Q4_K_XL.gguf --ctx-size 98304 --temp 0.7 --min-p 0.0 --top-p 0.8 --top-k 20";
};
# https://huggingface.co/unsloth/Qwen2.5-Coder-7B-Instruct-128K-GGUF/tree/main
"qwen2.5-coder-7b-instruct" = { "qwen2.5-coder-7b-instruct" = {
name = "Qwen2.5 Coder (7B) - Instruct"; name = "Qwen2.5 Coder (7B) - Instruct";
cmd = "${pkgs.llama-cpp}/bin/llama-server -m /mnt/ssd/Models/qwen2.5-coder-7b-q8_0.gguf --fim-qwen-7b-default --port \${PORT}"; cmd = "${pkgs.llama-cpp}/bin/llama-server -m /mnt/ssd/Models/Qwen2.5-Coder-7B-Instruct-Q8_0.gguf --fim-qwen-7b-default --ctx-size 131072 --port \${PORT}";
}; };
# https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF/tree/main # https://huggingface.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF/tree/main