Compare commits
6 commits
a793777d5d
...
a6309af0e6
Author | SHA1 | Date | |
---|---|---|---|
a6309af0e6 | |||
13642a683f | |||
49afd873da | |||
89fe11a95f | |||
fb41614b4f | |||
a12ae9cb3f |
6 changed files with 178 additions and 5 deletions
|
@ -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";
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -10,6 +10,7 @@ in
|
||||||
colorschemes.catppuccin = {
|
colorschemes.catppuccin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.flavour = "macchiato";
|
settings.flavour = "macchiato";
|
||||||
|
settings.default_integrations = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
91
modules/programs/nvim/new_plugins/treesitter-textobjects.nix
Normal file
91
modules/programs/nvim/new_plugins/treesitter-textobjects.nix
Normal 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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -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"
|
||||||
|
|
Loading…
Reference in a new issue