Compare commits

...

6 commits

6 changed files with 178 additions and 5 deletions

View file

@ -246,7 +246,6 @@ in
f f
fd fd
gi gi
lazygit
parallel parallel
ripgrep ripgrep
vim vim
@ -300,6 +299,65 @@ in
]; ];
}; };
starship.enable = true; 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 = { home = {
username = "moritz"; username = "moritz";

View file

@ -19,14 +19,28 @@ in
require("avante_lib").load() require("avante_lib").load()
require("avante").setup({ require("avante").setup({
provider = "openai", provider = "openai",
auto_suggestions_provider = "openai", auto_suggestions_provider = "openai-cheap",
behaviour = { behaviour = {
-- auto_suggestions = true, auto_suggestions = false,
}, },
openai = { openai = {
model = "gpt-4o", 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; plugins.dressing.enable = true;

View file

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

View file

@ -26,6 +26,9 @@ in
{ {
keymaps = [ keymaps = [
{ key = "<esc>"; action = "<cmd>noh<cr><esc>"; options.desc = "Escape and clear hlsearch"; mode = [ "i" "n" ]; } { 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; } { 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; nixvimInjections = true;
settings.indent.enable = true; settings.indent.enable = true;
settings.highlight.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 = [ performance.combinePlugins.standalonePlugins = [
"nvim-treesitter" "nvim-treesitter"