!qol(restructure): heavy restructure
This commit is contained in:
226
modules/nixvim/home.nix
Normal file
226
modules/nixvim/home.nix
Normal file
@@ -0,0 +1,226 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.modules.nixvim;
|
||||
in
|
||||
{
|
||||
options.modules.nixvim = {
|
||||
enable = lib.mkEnableOption "Nixvim";
|
||||
};
|
||||
imports = [
|
||||
inputs.nixvim.homeModules.nixvim
|
||||
./plugins
|
||||
];
|
||||
config.home.packages = with pkgs; [
|
||||
# formatters
|
||||
nixfmt
|
||||
rustfmt
|
||||
# misc
|
||||
ripgrep
|
||||
# misc
|
||||
nixd
|
||||
];
|
||||
config.programs.nixvim = lib.mkIf cfg.enable {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
colorschemes.tokyonight.enable = true;
|
||||
performance.byteCompileLua = {
|
||||
enable = true;
|
||||
plugins = true;
|
||||
nvimRuntime = true;
|
||||
luaLib = true;
|
||||
configs = true;
|
||||
};
|
||||
plugins = {
|
||||
lsp-status.enable = true;
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
rust_analyzer = {
|
||||
enable = true;
|
||||
installCargo = false;
|
||||
installRustc = false;
|
||||
};
|
||||
nixd = {
|
||||
enable = true;
|
||||
};
|
||||
astro = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
notify.enable = true;
|
||||
mini-cursorword.enable = true;
|
||||
# mini-statusline.enable = true;
|
||||
lualine = {
|
||||
enable = true;
|
||||
settings = {
|
||||
sections = {
|
||||
lualine_a = [ "mode" ];
|
||||
lualine_b = [
|
||||
"branch"
|
||||
"diff"
|
||||
"diagnostics"
|
||||
];
|
||||
lualine_c = [ "filename" ];
|
||||
lualine_x = [
|
||||
"encoding"
|
||||
"fileformat"
|
||||
"filetype"
|
||||
];
|
||||
lualine_y = [ "lsp_status" ];
|
||||
lualine_z = [ "location" ];
|
||||
};
|
||||
inactive_sections = {
|
||||
lualine_a = [ ];
|
||||
lualine_b = [ ];
|
||||
lualine_c = [ "filename" ];
|
||||
lualine_x = [ "location" ];
|
||||
lualine_y = [ ];
|
||||
lualine_z = [ ];
|
||||
};
|
||||
};
|
||||
};
|
||||
web-devicons.enable = true;
|
||||
vim-dadbod-completion.enable = true;
|
||||
telescope.enable = true;
|
||||
lazygit.enable = true;
|
||||
mini-indentscope = {
|
||||
enable = true;
|
||||
settings = {
|
||||
draw = {
|
||||
delay = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
mini-files = {
|
||||
enable = true;
|
||||
};
|
||||
trouble.enable = true;
|
||||
cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
settings = {
|
||||
sources = [
|
||||
{ name = "nvim_lsp"; }
|
||||
{ name = "path"; }
|
||||
{ name = "buffer"; }
|
||||
];
|
||||
mapping = {
|
||||
"<C-Space>" = "cmp.mapping.complete()";
|
||||
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-e>" = "cmp.mapping.close()";
|
||||
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||
};
|
||||
};
|
||||
};
|
||||
lspkind.enable = true;
|
||||
# persisted.enable = true;
|
||||
auto-session = {
|
||||
enable = true;
|
||||
settings = {
|
||||
enabled = true;
|
||||
auto_save = true;
|
||||
auto_restore = true;
|
||||
};
|
||||
};
|
||||
wakatime.enable = true;
|
||||
treesitter = {
|
||||
enable = true;
|
||||
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||
bash
|
||||
json
|
||||
lua
|
||||
make
|
||||
markdown
|
||||
nix
|
||||
regex
|
||||
toml
|
||||
vim
|
||||
vimdoc
|
||||
xml
|
||||
yaml
|
||||
];
|
||||
settings = {
|
||||
highlight.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
extraPlugins = with pkgs; [
|
||||
# vimPlugins.mini-completion
|
||||
vimPlugins.mini-comment
|
||||
vimPlugins.melange-nvim
|
||||
vimPlugins.telescope-file-browser-nvim
|
||||
vimPlugins.lsp-progress-nvim
|
||||
];
|
||||
opts = {
|
||||
number = true;
|
||||
bg = "dark";
|
||||
tabstop = 2;
|
||||
shiftwidth = 2;
|
||||
termguicolors = true;
|
||||
};
|
||||
globals = {
|
||||
mapleader = " ";
|
||||
};
|
||||
keymaps = [
|
||||
{
|
||||
action = "<cmd>Telescope persisted<cr>";
|
||||
key = "<leader>fs";
|
||||
options = {
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "<cmd>Telescope find_files<cr>";
|
||||
key = "<leader>ff";
|
||||
options = {
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "<cmd>:lua MiniFiles.open()<cr>";
|
||||
key = "<leader>fv";
|
||||
options = {
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "<cmd>LazyGit<cr>";
|
||||
key = "<leader>lg";
|
||||
options = {
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "<cmd>Telescope buffers<cr>";
|
||||
key = "<leader>fb";
|
||||
options = {
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "<cmd>Telescope live_grep<cr>";
|
||||
key = "<leader>fg";
|
||||
options = {
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
action = "<cmd>Trouble diagnostics toggle<cr>";
|
||||
key = "<leader>fd";
|
||||
options = {
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user