neovim-flake/config/plugins/qol.nix

120 lines
2.7 KiB
Nix

# Quality of life plugins
{ pkgs, inputs, ... }:
{
extraPackages = with pkgs; [
ripgrep
fd
];
plugins = {
zen-mode.enable = true;
direnv.enable = true;
intellitab.enable = true;
guess-indent.enable = true;
comment.enable = true;
vim-bbye.enable = true;
indent-blankline.enable = true;
which-key = {
enable = true;
settings.delay = 1000;
};
nvim-autopairs.enable = true;
yanky = {
enable = true;
enableTelescope = true;
};
trouble.enable = true;
barbecue.enable = true;
lualine = {
enable = true;
settings = {
sections = {
lualine_a = [ "branch" ];
lualine_b = [
{
__unkeyed-1 = {
__raw = ''
function()
return require('lsp-progress').progress()
end,
'';
};
}
];
lualine_c = [
"progress"
"filetype"
];
lualine_x = [
"encoding"
"fileformat"
];
lualine_y = [
"diff"
"diagnostics"
];
lualine_z = [ "location" ];
};
options = {
globalstatus = true;
disabled_filetypes = [
"ministarter"
];
section_separators = {
left = "";
right = "";
};
};
};
};
crates-nvim.enable = true;
# git stuff
gitsigns = {
enable = true;
settings = {
current_line_blame_opts = {
virt_text = true;
virt_text_pos = "eol";
};
};
};
neogit = {
enable = true;
settings = {
graph_style = "unicode";
popup.kind = "floating";
integrations = {
diffview = true;
telescope = true;
};
};
};
diffview.enable = true;
# The greatest QoL plugin of all time. Renders codeblocks, formatting, etc
# in LSP popup buffers too. GUI users will never flex on you with their
# typesetting again!
markdown-preview.enable = true;
# Language specific tools
ts-autotag.enable = true;
};
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin {
name = "satellite.nvim";
src = inputs.satellite;
})
(pkgs.vimUtils.buildVimPlugin {
name = "render-markdown.nvim";
src = inputs.render-markdown;
})
(pkgs.vimUtils.buildVimPlugin {
name = "lsp-progress.nvim";
src = inputs.lsp-progress;
})
(pkgs.vimUtils.buildVimPlugin {
name = "cellular-automaton.nvim";
src = inputs.cellular-automaton;
})
];
}