Compare commits

...

6 commits

6 changed files with 178 additions and 5 deletions

View file

@ -246,7 +246,6 @@ in
f
fd
gi
lazygit
parallel
ripgrep
vim
@ -300,6 +299,65 @@ in
];
};
starship.enable = true;
lazygit.enable = true;
lazygit.settings = {
customCommands = [
{
key = "<c-v>";
context = "global";
description = "Create new conventional commit";
prompts = [
{
type = "menu";
key = "Type";
title = "Type of change";
options = [
{ name = "build"; description = "Changes that affect the build system or external dependencies"; value = "build"; }
{ name = "feat"; description = "A new feature"; value = "feat"; }
{ name = "fix"; description = "A bug fix"; value = "fix"; }
{ name = "chore"; description = "Other changes that don't modify src or test files"; value = "chore"; }
{ name = "ci"; description = "Changes to CI configuration files and scripts"; value = "ci"; }
{ name = "docs"; description = "Documentation only changes"; value = "docs"; }
{ name = "perf"; description = "A code change that improves performance"; value = "perf"; }
{ name = "refactor"; description = "A code change that neither fixes a bug nor adds a feature"; value = "refactor"; }
{ name = "revert"; description = "Reverts a previous commit"; value = "revert"; }
{ name = "style"; description = "Changes that do not affect the meaning of the code"; value = "style"; }
{ name = "test"; description = "Adding missing tests or correcting existing tests"; value = "test"; }
];
}
{
type = "input";
title = "Scope";
key = "Scope";
initialValue = "";
}
{
type = "menu";
key = "Breaking";
title = "Breaking change";
options = [
{ name = "no"; value = ""; }
{ name = "yes"; value = "!"; }
];
}
{
type = "input";
title = "message";
key = "Message";
initialValue = "";
}
{
type = "confirm";
key = "Confirm";
title = "Commit";
body = "Are you sure you want to commit?";
}
];
command = "git commit --message '{{.Form.Type}}{{ if .Form.Scope }}({{ .Form.Scope }}){{ end }}{{.Form.Breaking}}: {{.Form.Message}}'";
loadingText = "Creating conventional commit...";
}
];
};
};
home = {
username = "moritz";

View file

@ -19,14 +19,28 @@ in
require("avante_lib").load()
require("avante").setup({
provider = "openai",
auto_suggestions_provider = "openai",
auto_suggestions_provider = "openai-cheap",
behaviour = {
-- auto_suggestions = true,
auto_suggestions = false,
},
openai = {
model = "gpt-4o",
api_key_name = "cmd:cat /run/agenix/openai"
}
api_key_name = "cmd:cat /run/agenix/openai",
},
vendors = {
---@type AvanteProvider
["openai-cheap"] = {
model = "gpt-4o-mini",
api_key_name = "cmd:cat /run/agenix/openai",
endpoint = "https://api.openai.com/v1",
parse_curl_args = function(opts, code_opts)
return require("avante.providers").openai.parse_curl_args(opts, code_opts)
end,
parse_response_data = function(data_stream, event_state, opts)
return require("avante.providers").openai.parse_response(data_stream, event_state, opts)
end
},
},
})
'';
plugins.dressing.enable = true;

View file

@ -10,6 +10,7 @@ in
colorschemes.catppuccin = {
enable = true;
settings.flavour = "macchiato";
settings.default_integrations = true;
};
};
}

View file

@ -26,6 +26,9 @@ in
{
keymaps = [
{ key = "<esc>"; action = "<cmd>noh<cr><esc>"; options.desc = "Escape and clear hlsearch"; mode = [ "i" "n" ]; }
{ key = "<"; action = "<gv"; options.desc = "Shift left"; mode = [ "v" ]; }
{ key = ">"; action = ">gv"; options.desc = "Shift right"; mode = [ "v" ]; }
{ key = "y"; action = "ygv<esc>"; options.desc = "Yank"; mode = [ "v" ]; }
];
}
{ plugins.oil.enable = true; }

View file

@ -0,0 +1,91 @@
{ config, lib, pkgs, inputs, ... }:
let
inherit (lib) mkEnableOption mkIf readFile;
in
{
home-manager.users.moritz.programs.nixvim = {
plugins.treesitter-textobjects = {
enable = true;
move = {
enable = true;
gotoNext = {
"]f" = {
desc = "Next function";
query = "@function.outer";
};
"]c" = {
desc = "Next class";
query = "@class.outer";
};
"]b" = {
desc = "Next block";
query = "@block.outer";
};
"]P" = {
desc = "Next parameter";
query = "@parameter.outer";
};
};
gotoPrevious = {
"[f" = {
desc = "Previous function";
query = "@function.outer";
};
"[c" = {
desc = "Previous class";
query = "@class.outer";
};
"[b" = {
desc = "Previous block";
query = "@block.outer";
};
"[P" = {
desc = "Previous parameter";
query = "@parameter.outer";
};
};
};
select = {
enable = true;
keymaps = {
"af" = {
desc = "function";
query = "@function.outer";
};
"if" = {
desc = "inner function";
query = "@function.inner";
};
"ac" = {
desc = "class";
query = "@class.outer";
};
"ic" = {
desc = "inner class";
query = "@class.inner";
};
"ab" = {
desc = "block";
query = "@block.outer";
};
"ib" = {
desc = "inner block";
query = "@block.inner";
};
"aP" = {
desc = "parameter";
query = "@parameter.outer";
};
"iP" = {
desc = "inner parameter";
query = "@parameter.inner";
};
};
};
};
performance.combinePlugins.standalonePlugins = [
"nvim-treesitter-textobjects"
];
};
}

View file

@ -11,6 +11,12 @@ in
nixvimInjections = true;
settings.indent.enable = true;
settings.highlight.enable = true;
settings.incremental_selection = {
enable = true;
keymaps.init_selection = "gn";
keymaps.node_decremental = "gp";
keymaps.node_incremental = "gn";
};
};
performance.combinePlugins.standalonePlugins = [
"nvim-treesitter"