added nvf, added several nvim plugins

now i have to find all my keymaps :P
This commit is contained in:
2025-08-17 23:51:55 -04:00
parent 7d76c105c1
commit b4c2ab126c

View File

@@ -1,22 +1,356 @@
{ nvf, ...}: { {
nvf,
pkgs,
...
}: {
imports = [ imports = [
nvf.homeManagerModules.default nvf.homeManagerModules.default
]; ];
programs.nvf.enable = true; programs.nvf = {
# enable nvf neovim distribution
enable = true;
### --- OLD NEOVIM CONFIG BASED ON LUA CONFIG --- # set stuff!
# settings = {
# programs.neovim = { vim = {
# enable = true; # setting alias to _always_ use neovim
# defaultEditor = true; viAlias = true;
# vimAlias = true; vimAlias = true;
# };
# # useSystemClipboard = true;
# xdg.configFile = {
# nvim = { # setting some nvim settings that are not in nvf
# onChange = "nvim --headless -c 'if exists(\":LuaCacheClear\") | :LuaCacheClear' +quitall"; luaConfigPost = ''
# source = dirs.defaults + /nvim; vim.opt.tabstop = 2
# }; vim.opt.shiftwidth = 2
# }; vim.opt.expandtab = true
vim.opt.autoindent = true
vim.opt.smartindent = true
vim.opt.smarttab = true
vim.opt.scrolloff = 20;
'';
# clipboard configuration
clipboard = {
enable = true;
providers = {
wl-copy.enable = true;
};
registers = "unnamed,unnamedplus";
};
# LSP configuration
lsp = {
enable = true;
formatOnSave = true;
lspkind.enable = true;
lspconfig.enable = true;
lightbulb.enable = false;
lspsaga.enable = false;
trouble.enable = false;
lspSignature.enable = true;
otter-nvim.enable = false;
nvim-docs-view.enable = false;
};
# debugger configuration
debugger = {
nvim-dap = {
enable = true;
ui.enable = true;
};
};
# disable spellcheck
spellcheck.enable = false;
# enable diagnostics
diagnostics = {
enable = true;
config = {
underline = true;
virtual_lines = true;
};
};
# language specific configuartion
languages = {
enableFormat = true;
enableTreesitter = true;
enableExtraDiagnostics = true;
nix = {
enable = true;
lsp.enable = true;
treesitter.enable = true;
format = {
enable = true;
package = pkgs.alejandra;
};
extraDiagnostics = {
enable = true;
types = ["statix"];
};
};
markdown.enable = true;
bash.enable = true;
clang.enable = true;
css = {
enable = true;
format = {
enable = true;
package = pkgs.prettierd;
};
};
html.enable = true;
sql.enable = true;
java.enable = true;
kotlin = {
enable = true;
lsp.enable = true;
treesitter.enable = true;
extraDiagnostics.enable = true;
};
ts = {
enable = true;
format = {
enable = true;
package = pkgs.prettierd;
};
};
lua.enable = false;
python.enable = true;
rust = {
enable = true;
lsp.enable = true;
dap.enable = true;
format.enable = true;
crates.enable = true;
};
csharp = {
enable = true;
lsp = {
enable = true;
server = "csharp_ls";
};
treesitter.enable = true;
};
};
# statusline configuration
statusline = {
lualine = {
enable = true;
theme = "catppuccin";
};
};
# theme configuration
theme = {
enable = true;
name = "catppuccin";
style = "mocha";
transparent = true;
};
# visual/ui configuration
visuals = {
nvim-scrollbar.enable = false;
nvim-web-devicons.enable = true;
nvim-cursorline.enable = true;
cinnamon-nvim.enable = true;
fidget-nvim.enable = false;
highlight-undo.enable = true;
indent-blankline.enable = true;
};
ui = {
borders.enable = true;
noice.enable = false;
colorizer.enable = true;
modes-nvim.enable = false; # the theme looks terrible with catppuccin
illuminate.enable = true;
breadcrumbs = {
enable = true;
navbuddy.enable = false;
};
fastaction.enable = true;
};
# autocomplete/intellisense configuration
autopairs.nvim-autopairs.enable = true;
autocomplete.nvim-cmp = {
enable = true;
sources = {
nvim-lsp = "nvim_lsp";
async-path = "async_path";
};
};
# tabline configuration
tabline = {
nvimBufferline.enable = true;
nvimBufferline.mappings = {
closeCurrent = "<leader>x";
cycleNext = "<tab>";
cyclePrevious = "<S-tab>";
moveNext = null;
movePrevious = null;
sortByDirectory = null;
sortByExtension = null;
sortById = null;
};
};
treesitter = {
context = {
enable = true;
setupOpts.max_lines = 3;
};
};
binds = {
whichKey.enable = true;
cheatsheet.enable = true;
};
telescope.enable = true;
git = {
enable = true;
gitsigns.enable = true;
gitsigns.codeActions.enable = false; # throws an annoying debug message
git-conflict.enable = true;
};
comments = {
comment-nvim.enable = true;
};
# discord integration
presence = {
neocord.enable = true;
};
notify = {
nvim-notify.enable = true;
};
dashboard = {
dashboard-nvim.enable = false;
alpha.enable = true;
};
filetree = {
neo-tree = {
enable = true;
setupOpts.enable_refresh_on_write = true;
};
};
# terminal integration configuration
terminal = {
toggleterm = {
enable = true;
lazygit.enable = true;
};
};
# notes!
notes = {
obsidian = {
enable = true; # more to be added here
setupOpts = {
workspaces = [
{
name = "notes";
path = "~/Source/notes";
}
];
};
};
todo-comments.enable = true;
};
# ai assistant configuration
assistant = {
copilot = {
enable = true;
cmp.enable = true;
};
};
# custom key mappings
keymaps = [
# Ctrl-S save
{
mode = ["n" "v" "i"];
key = "<C-s>";
action = "<cmd>w<CR>";
}
# toggle file explorer
{
mode = ["n"];
key = "<leader><o>";
action = "<cmd>Neotree toggle left<CR>";
}
# copy/cut/paste to system clipboard
# {
# mode = ["v"];
# key = "<sc-c>";
# action = ''
# "+y
# '';
# noremap = true;
# }
# {
# mode = ["n"];
# key = "<sc-v>";
# action = ''
# l"+P
# '';
# noremap = true;
# }
# {
# mode = ["v"];
# key = "<sc-v>";
# action = ''
# "+P
# '';
# noremap = true;
# }
# {
# mode = ["c"];
# key = "<sc-v>";
# action = ''
# <C-o>l<C-o>"+<C-o>P<C-o>
# '';
# noremap = true;
# }
# {
# mode = ["i"];
# key = "<sc-v>";
# action = ''
# <ESC>l"+Pli
# '';
# noremap = true;
# }
# {
# mode = ["t"];
# key = "<sc-v>";
# action = ''
# <C-\><C-n>"+Pi
# '';
# noremap = true;
# }
];
### end of settings
};
};
};
} }