initial commit
This commit is contained in:
commit
ebc1be5217
143 changed files with 7721 additions and 0 deletions
149
modules/home/programs/neovim/utils.nix
Normal file
149
modules/home/programs/neovim/utils.nix
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.nvf.settings.vim = {
|
||||
undoFile.enable = true;
|
||||
# theme = lib.mkForce {
|
||||
# enable = true;
|
||||
# name = "catppuccin";
|
||||
# style = "latte";
|
||||
# transparent = false;
|
||||
# };
|
||||
|
||||
navigation = {
|
||||
harpoon.enable = true;
|
||||
};
|
||||
utility = {
|
||||
motion.flash-nvim.enable = true;
|
||||
outline.aerial-nvim.enable = true;
|
||||
diffview-nvim.enable = true;
|
||||
surround.enable = true;
|
||||
smart-splits.enable = true;
|
||||
yanky-nvim.enable = true;
|
||||
};
|
||||
tabline.nvimBufferline.enable = true;
|
||||
notes.todo-comments.enable = true;
|
||||
# assistant.copilot = {
|
||||
# enable = true;
|
||||
# cmp.enable = true;
|
||||
# };
|
||||
statusline.lualine.enable = true;
|
||||
autocomplete = {
|
||||
nvim-cmp = {
|
||||
enable = true;
|
||||
sources = {
|
||||
buffer = "[Buffer]";
|
||||
nvim-cmp = null;
|
||||
path = "[Path]";
|
||||
};
|
||||
sourcePlugins = [
|
||||
pkgs.vimPlugins.cmp-cmdline
|
||||
];
|
||||
};
|
||||
};
|
||||
snippets.luasnip.enable = true;
|
||||
snippets.luasnip.customSnippets.snipmate = {
|
||||
all = [
|
||||
{
|
||||
trigger = "if";
|
||||
body = "if $1 else $2";
|
||||
}
|
||||
];
|
||||
nix = [
|
||||
{
|
||||
trigger = "mkOption";
|
||||
body = ''
|
||||
mkOption {
|
||||
type = $1;
|
||||
default = $2;
|
||||
description = $3;
|
||||
example = $4;
|
||||
}
|
||||
'';
|
||||
}
|
||||
];
|
||||
haskell = [
|
||||
{
|
||||
trigger = "zzis";
|
||||
body = ''
|
||||
insert :: (Ord a) => a -> [a] -> [a]
|
||||
insert x [] = [x]
|
||||
insert x (y:ys)
|
||||
| x <= y = x : y : ys
|
||||
| otherwise = y : insert x ys
|
||||
|
||||
insertionSort :: (Ord a) => [a] -> [a]
|
||||
insertionSort [] = []
|
||||
insertionSort (x:xs) = insert x (insertionSort xs)
|
||||
'';
|
||||
}
|
||||
{
|
||||
trigger = "zzso";
|
||||
body = ''
|
||||
sortOn :: Ord b => (a -> b) -> [a] -> [a]
|
||||
sortOn f = foldr insert []
|
||||
where
|
||||
insert x [] = [x]
|
||||
insert x (y:ys)
|
||||
| f x <= f y = x : y : ys
|
||||
| otherwise = y : insert x ys
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
ui = {
|
||||
noice.enable = true;
|
||||
colorizer.enable = true;
|
||||
};
|
||||
visuals = {
|
||||
rainbow-delimiters.enable = true;
|
||||
nvim-scrollbar = {
|
||||
enable = false;
|
||||
};
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
gitsigns.enable = true;
|
||||
};
|
||||
terminal.toggleterm = {
|
||||
enable = true;
|
||||
lazygit = {
|
||||
enable = true;
|
||||
mappings.open = "<leader>gl";
|
||||
};
|
||||
};
|
||||
formatter.conform-nvim.enable = true;
|
||||
binds.hardtime-nvim.enable = true;
|
||||
utility.motion.precognition.enable = true;
|
||||
binds.hardtime-nvim.setupOpts = {
|
||||
max_count = 3; # Optional: limit of consecutive presses
|
||||
disabled_keys = {
|
||||
"<Up>" = false;
|
||||
"<Down>" = false;
|
||||
"<Left>" = false;
|
||||
"<Right>" = false;
|
||||
};
|
||||
restricted_keys = {
|
||||
"<Up>" = [
|
||||
"n"
|
||||
"x"
|
||||
];
|
||||
"<Down>" = [
|
||||
"n"
|
||||
"x"
|
||||
];
|
||||
"<Left>" = [
|
||||
"n"
|
||||
"x"
|
||||
];
|
||||
"<Right>" = [
|
||||
"n"
|
||||
"x"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue