Compare commits

...

3 commits

Author SHA1 Message Date
jmarkin
448cdca018 disable most ai tools, add coderPackages as packages 2025-11-25 23:51:52 +03:00
jmarkin
3106412845 flake.lock: Update
Flake lock file updates:

• Updated input 'namu-nvim':
    'github:bassamsdata/namu.nvim/51d2c1de7dcdab8c0b712cd9463e392039efa5e2' (2025-11-18)
  → 'github:bassamsdata/namu.nvim/c86d708ac1c22df260a5bc132ea1f7ba3802c64b' (2025-11-25)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/da647c7ac355d4f8be218ff0466bee9b5c6680ed' (2025-11-24)
  → 'github:nix-community/neovim-nightly-overlay/4e2ede6fae4af2d474f63028ff54bd714707c3e7' (2025-11-25)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/a88c7962a82f1427aa90d1c0a08514423516f9f2' (2025-11-23)
  → 'github:neovim/neovim/60c35cc4c7b713c27e8bfdd196cbee46cf050bbb' (2025-11-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/050e09e091117c3d7328c7b2b7b577492c43c134' (2025-11-22)
  → 'github:NixOS/nixpkgs/5ae3b07d8d6527c42f17c876e404993199144b6a' (2025-11-24)
2025-11-25 23:51:23 +03:00
jmarkin
8ce5786c26 auto add current file for avante 2025-11-25 11:16:45 +03:00
7 changed files with 21 additions and 380 deletions

View file

@ -199,22 +199,6 @@
"type": "github"
}
},
"gp-nvim": {
"flake": false,
"locked": {
"lastModified": 1754903071,
"narHash": "sha256-+K536d3WF5eHRTSgkhn1NLFHms67iw4A0Ql8OZ9TgTw=",
"owner": "Robitx",
"repo": "gp.nvim",
"rev": "c37f154b97690c4925fef4e35ffdbf2c844b5f4e",
"type": "github"
},
"original": {
"owner": "Robitx",
"repo": "gp.nvim",
"type": "github"
}
},
"hlargs-nvim": {
"flake": false,
"locked": {
@ -305,11 +289,11 @@
"namu-nvim": {
"flake": false,
"locked": {
"lastModified": 1763488841,
"narHash": "sha256-YTUPpFgKo5q5QexcmEv0IcSiMG2hVfYk9cKepB9tNVo=",
"lastModified": 1764103858,
"narHash": "sha256-b6fSeg86mREnSmWZd6bBqAZ2JCY0/KaT5y0qsFBOaUU=",
"owner": "bassamsdata",
"repo": "namu.nvim",
"rev": "51d2c1de7dcdab8c0b712cd9463e392039efa5e2",
"rev": "c86d708ac1c22df260a5bc132ea1f7ba3802c64b",
"type": "github"
},
"original": {
@ -329,11 +313,11 @@
]
},
"locked": {
"lastModified": 1763942693,
"narHash": "sha256-DvAkXPkSfgColZZ2sBbBl69CxzamyH7Hmi4qVUTP1OU=",
"lastModified": 1764029077,
"narHash": "sha256-a3imRMIsRjonDDyt4buoTaXnCJ0H6FSZEes0tHyWr0s=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "da647c7ac355d4f8be218ff0466bee9b5c6680ed",
"rev": "4e2ede6fae4af2d474f63028ff54bd714707c3e7",
"type": "github"
},
"original": {
@ -345,11 +329,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1763931717,
"narHash": "sha256-juqY16KziaFTk4D0Vx06tUlYLiEc6vMlEtjDLIjGn0Q=",
"lastModified": 1764025805,
"narHash": "sha256-DMG2kVggmBUbr2lxFugiRjiCBOkC9vU822JTkpYTeN4=",
"owner": "neovim",
"repo": "neovim",
"rev": "a88c7962a82f1427aa90d1c0a08514423516f9f2",
"rev": "60c35cc4c7b713c27e8bfdd196cbee46cf050bbb",
"type": "github"
},
"original": {
@ -422,11 +406,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1763835633,
"narHash": "sha256-HzxeGVID5MChuCPESuC0dlQL1/scDKu+MmzoVBJxulM=",
"lastModified": 1763966396,
"narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "050e09e091117c3d7328c7b2b7b577492c43c134",
"rev": "5ae3b07d8d6527c42f17c876e404993199144b6a",
"type": "github"
},
"original": {
@ -491,7 +475,6 @@
"flake-parts": "flake-parts_2",
"gen-luarc": "gen-luarc",
"gentags-lua": "gentags-lua",
"gp-nvim": "gp-nvim",
"hlargs-nvim": "hlargs-nvim",
"kulala-fmt": "kulala-fmt",
"kulala-nvim": "kulala-nvim",

View file

@ -85,10 +85,10 @@
flake = false;
};
gp-nvim = {
url = "github:Robitx/gp.nvim";
flake = false;
};
# gp-nvim = {
# url = "github:Robitx/gp.nvim";
# flake = false;
# };
# my
@ -133,6 +133,8 @@
nvim-small = pkgs.nvim-small;
nvim-minimal = pkgs.nvim-minimal;
default = nvim;
codingPackages = pkgs.codingPackages;
};
devShells = {
default = pkgs.mkShell {

View file

@ -1,15 +1,5 @@
{ inputs, pkgs, mkNvimPlugin, ... }:
with pkgs.vimPlugins; [
# {
# plugin = codecompanion-nvim.overrideAttrs (oa: {
# dependencies = with pkgs.vimPlugins; [
# codecompanion-spinner-nvim
# codecompanion-history-nvim
# ];
# });
# type = "lua";
# optional = false;
# }
{
plugin = avante-nvim.overrideAttrs (oa: {
dependencies = with pkgs.vimPlugins; [
@ -32,5 +22,4 @@ with pkgs.vimPlugins; [
}
'';
}
(mkNvimPlugin inputs.gp-nvim "gp.nvim")
]

View file

@ -325,6 +325,8 @@ with final.pkgs.lib; let
];
in
{
codingPackages = extraPackages;
# This is the neovim derivation
# returned by the overlay
nvim-pkg = mkNeovim {

View file

@ -29,7 +29,7 @@ local opts = {
use_cwd_as_project_root = true,
auto_focus_on_diff_view = true,
auto_approve_tool_permissions = false,
auto_add_current_file = false,
auto_add_current_file = true,
confirmation_ui_style = "popup",
},

View file

@ -1,205 +0,0 @@
vim.g.did_load_cai_plugin = true
if vim.g.did_load_cai_plugin or vim.g.did_load_ai_plugin then
return
end
vim.g.did_load_cai_plugin = true
local adapters = require("ai.adapters")
lze.load({
"codecompanion.nvim",
cmd = {
"CodeCompanionChat",
"CodeCompanion",
"CodeCompanionCmd",
"CodeCompanionActions",
"CodeCompanionHistory",
},
keys = {
{
"<leader>cc",
function()
require("codecompanion").toggle()
end,
desc = "Code Companion",
silent = true,
},
{
"<leader>cc",
":'<,'>CodeCompanionChat Add<cr>",
desc = "Code Companion Add",
silent = true,
mode = "x",
noremap = true,
},
{
"<C-?>",
function()
require("codecompanion").toggle()
end,
desc = "Code Companion",
silent = true,
},
{
"<C-?>",
":'<,'>CodeCompanionChat Add<cr>",
desc = "Code Companion Add",
silent = true,
mode = "x",
noremap = true,
},
{
"<leader>ci",
":CodeCompanion<cr>",
desc = "Code Companion inline",
silent = true,
mode = "n",
noremap = true,
},
{
"<leader>ci",
":'<,'>CodeCompanion<cr>",
desc = "Code Companion inline",
silent = true,
mode = "x",
noremap = true,
},
{
"<leader>ca",
":'<,'>CodeCompanionActions<cr>",
desc = "Code Companion Actions",
silent = true,
mode = "x",
noremap = true,
},
{
"<leader>ca",
":CodeCompanionActions<cr>",
desc = "Code Companion Actions",
silent = true,
mode = "n",
noremap = true,
},
{
"<leader>ch",
":CodeCompanionHistory<cr>",
desc = "Code Companion Actions",
silent = true,
mode = "n",
noremap = true,
},
},
after = function()
local opts = {
opts = {
log_level = "TRACE", -- TRACE|DEBUG|ERROR|INFO
},
adapters = {
http = adapters,
},
strategies = {
chat = {
adapter = "default_adapter",
keymaps = require("ai.keymap"),
opts = {
completion_provider = "blink", -- blink|cmp|coc|default
},
tools = require("ai.tools"),
},
inline = {
adapter = "default_adapter",
keymaps = {
accept_change = {
modes = { n = "gh" },
description = "Accept the suggested change",
},
reject_change = {
modes = { n = "gH" },
description = "Reject the suggested change",
},
},
},
agent = { adapter = "default_adapter" },
},
diff = {
enabled = true,
},
display = {
chat = {
-- window = {
-- layout = "float",
-- },
icons = {
pinned_buffer = "📌 ",
watched_buffer = "👀 ",
},
show_header_separator = true,
show_settings = true,
show_tools_processing = true,
},
},
-- extensions = {
-- spinner = {},
-- history = {
-- enabled = true,
-- opts = {
-- keymap = "<leader>sh",
-- save_chat_keymap = "sc",
-- auto_save = true,
-- expiration_days = 0,
-- picker = "fzf-lua",
-- auto_generate_title = false,
-- ---On exiting and entering neovim, loads the last chat on opening chat
-- continue_last_chat = false,
-- ---When chat is cleared with `gx` delete the chat from history
-- delete_on_clearing_chat = true,
-- ---Directory path to save the chats
-- dir_to_save = vim.fn.stdpath("data") .. "/codecompanion-history",
-- ---Enable detailed logging for history extension
-- enable_logging = false,
-- },
-- },
-- },
}
local ok, _ = pcall(require, "mchup")
if ok then
opts.extensions.mcphub = {
callback = "mcphub.extensions.codecompanion",
opts = {
make_vars = true,
make_slash_commands = true,
show_result_in_chat = true,
},
}
end
ok, _ = pcall(require, "vectorcode")
if ok then
opts.extensions.vectorcode = {
opts = {
tool_group = {
enabled = true,
extras = {},
collapse = false,
},
tool_opts = {
ls = {},
vectorise = {},
query = {
max_num = { chunk = -1, document = -1 },
default_num = { chunk = 50, document = 10 },
include_stderr = false,
use_lsp = true,
no_duplicate = true,
chunk_mode = false,
},
},
},
}
end
require("codecompanion").setup(opts)
end,
})

View file

@ -1,130 +0,0 @@
if vim.g.did_load_gp_plugin or vim.g.did_load_ai_plugin then
return
end
vim.g.did_load_gp_plugin = true
lze.load({
"gp.nvim",
event = "BufEnter",
after = function()
require("gp").setup({
providers = {
openai = {
disable = true,
},
ollama = {
disable = false,
endpoint = vim.g.ollama_chat_endpoint,
},
},
whisper = {
disable = true,
},
agents = {
{
name = "GPT-OSS",
chat = true,
command = true,
provider = "ollama",
model = {
model = "gpt-oss-safeguard:20b",
num_ctx = 1024 * 8,
},
system_prompt = require("gp.defaults").code_system_prompt,
},
{
name = "Gemma",
chat = true,
command = true,
provider = "ollama",
model = { model = "orieg/gemma3-tools:4b" },
system_prompt = require("gp.defaults").code_system_prompt,
},
{
name = "Cogito",
chat = false,
command = true,
provider = "ollama",
model = {
model = "cogito:14b",
num_ctx = 1024 * 8,
},
system_prompt = require("gp.defaults").code_system_prompt,
},
{
name = "Amoral",
chat = true,
command = true,
provider = "ollama",
model = {
model = "hf.co/mradermacher/amoral-gemma3-12B-v2-qat-i1-GGUF:Q4_K_M ",
num_ctx = 1024 * 8,
},
system_prompt = require("gp.defaults").code_system_prompt,
},
{
name = "Qwen3-Coder",
chat = false,
command = true,
provider = "ollama",
model = {
model = "danielsheep/Qwen3-Coder-30B-A3B-Instruct-1M-Unsloth:UD-IQ3_XXS",
num_ctx = 1024 * 8,
},
system_prompt = "Please return ONLY code snippets.\nSTART AND END YOUR ANSWER WITH:\n\n```",
},
},
default_chat_agent = "GPT-OSS",
default_command_agent = "Gemma",
hooks = {
-- GpImplement rewrites the provided selection/range based on comments in it
Implement = function(gp, params)
local template = "Having following from {{filename}}:\n\n"
.. "```{{filetype}}\n{{selection}}\n```\n\n"
.. "Please rewrite this according to the contained instructions."
.. "\n\nRespond exclusively with the snippet that should replace the selection above."
local agent = gp.get_command_agent()
gp.Prompt(params, gp.Target.append, agent, template)
end,
UnitTests = function(gp, params)
local template = "I have the following code from {{filename}}:\n\n"
.. "```{{filetype}}\n{{selection}}\n```\n\n"
.. "Please respond by writing table driven unit tests for the code above."
local agent = gp.get_command_agent()
gp.Prompt(params, gp.Target.vnew, agent, template)
end,
Explain = function(gp, params)
local template = "I have the following code from {{filename}}:\n\n"
.. "```{{filetype}}\n{{selection}}\n```\n\n"
.. "Please respond by explaining the code above."
local agent = gp.get_chat_agent()
gp.Prompt(params, gp.Target.popup, agent, template)
end,
TranslateRu = function(gp, params)
local chat_system_prompt = "You are a Translator, please translate to Russian."
local agent = gp.get_chat_agent("GPT-OSS")
gp.cmd.ChatNew(params, chat_system_prompt, agent)
end,
TranslateEn = function(gp, params)
local chat_system_prompt = "You are a Translator, please translate to English."
local agent = gp.get_chat_agent("GPT-OSS")
gp.cmd.ChatNew(params, chat_system_prompt, agent)
end,
CodeReview = function(gp, params)
local template = "I have the following code from {{filename}}:\n\n"
.. "```{{filetype}}\n{{selection}}\n```\n\n"
.. "Please analyze for code smells and suggest improvements."
local agent = gp.get_chat_agent()
gp.Prompt(params, gp.Target.enew("markdown"), agent, template)
end,
-- example of making :%GpChatNew a dedicated command which
-- opens new chat with the entire current buffer as a context
BufferChatNew = function(gp, _)
-- call GpChatNew command in range mode on whole buffer
vim.api.nvim_command("%" .. gp.config.cmd_prefix .. "ChatNew")
end,
},
})
end,
})