114 lines
3.1 KiB
Nix
114 lines
3.1 KiB
Nix
{ inputs, config, ... }:
|
|
|
|
{
|
|
imports = [
|
|
inputs.synix.homeModules.nixvim
|
|
];
|
|
|
|
programs.nixvim = {
|
|
enable = true;
|
|
plugins = {
|
|
direnv.enable = true;
|
|
avante = {
|
|
enable = true;
|
|
settings = {
|
|
auto_suggestions_provider = null;
|
|
diff = {
|
|
autojump = true;
|
|
debug = false;
|
|
list_opener = "copen";
|
|
};
|
|
highlights = {
|
|
diff = {
|
|
current = "DiffText";
|
|
incoming = "DiffAdd";
|
|
};
|
|
};
|
|
hints = {
|
|
enabled = true;
|
|
};
|
|
selector = {
|
|
provider = "telescope";
|
|
};
|
|
provider = "openrouter";
|
|
providers = {
|
|
openrouter = {
|
|
__inherited_from = "openai";
|
|
endpoint = "https://openrouter.ai/api/v1";
|
|
api_key_name = "cmd:cat ${config.sops.secrets.openrouter-api-key.path}";
|
|
model = "google/gemini-3-flash-preview";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
render-markdown = {
|
|
enable = true;
|
|
settings = {
|
|
file_types = [
|
|
"Avante"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
extraConfigLua = ''
|
|
_G.cppman_picker = function(opts)
|
|
local pickers = require "telescope.pickers"
|
|
local finders = require "telescope.finders"
|
|
local conf = require("telescope.config").values
|
|
local actions = require "telescope.actions"
|
|
local action_state = require "telescope.actions.state"
|
|
local previewers = require "telescope.previewers"
|
|
|
|
opts = opts or {}
|
|
pickers.new(opts, {
|
|
prompt_title = "Cppman Search",
|
|
finder = finders.new_oneshot_job({ "cppman", "-l" }, opts),
|
|
sorter = conf.generic_sorter(opts),
|
|
|
|
previewer = previewers.new_buffer_previewer({
|
|
title = "Manual Page",
|
|
define_preview = function(self, entry, status)
|
|
return require("telescope.previewers.utils").job_maker(
|
|
{ "cppman", entry.value },
|
|
self.state.bufnr,
|
|
{
|
|
callback = function(bufnr, content)
|
|
if content then
|
|
vim.api.nvim_buf_set_option(bufnr, "filetype", "man")
|
|
end
|
|
end,
|
|
}
|
|
)
|
|
end,
|
|
}),
|
|
|
|
attach_mappings = function(prompt_bufnr, map)
|
|
actions.select_default:replace(function()
|
|
local selection = action_state.get_selected_entry()
|
|
|
|
if not selection then
|
|
return
|
|
end
|
|
|
|
actions.close(prompt_bufnr)
|
|
vim.cmd("terminal cppman " .. selection.value)
|
|
vim.cmd("startinsert")
|
|
end)
|
|
return true
|
|
end,
|
|
}):find()
|
|
end
|
|
'';
|
|
keymaps = [
|
|
{
|
|
mode = "n";
|
|
key = "<leader>fc";
|
|
action = "<cmd>lua cppman_picker()<CR>";
|
|
options = {
|
|
desc = "Search C/C++ Docs (cppman)";
|
|
silent = true;
|
|
};
|
|
}
|
|
];
|
|
};
|
|
}
|