refactor: clean up nvf
This commit is contained in:
parent
09c2fc94a4
commit
1446b84212
28 changed files with 98 additions and 691 deletions
|
@ -1,61 +0,0 @@
|
||||||
{inputs, ...}: {
|
|
||||||
imports = [
|
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
|
||||||
./nixvim/conform-nvim.nix # formatter
|
|
||||||
./nixvim/lualine.nix # custom statusline
|
|
||||||
./nixvim/noice.nix # custom CMDLINE
|
|
||||||
./nixvim/nvim-tree.nix # filetree
|
|
||||||
./nixvim/treesitter-context.nix # context line
|
|
||||||
./nixvim/treesitter.nix # syntax highlighting
|
|
||||||
./nixvim/which-key.nix # show keybind hints
|
|
||||||
];
|
|
||||||
programs.nixvim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
vimdiffAlias = true;
|
|
||||||
|
|
||||||
opts = {
|
|
||||||
# Indentation
|
|
||||||
autoindent = true;
|
|
||||||
smartindent = true;
|
|
||||||
expandtab = true;
|
|
||||||
smarttab = true;
|
|
||||||
wrap = false;
|
|
||||||
shiftwidth = 2;
|
|
||||||
tabstop = 2;
|
|
||||||
foldlevel = 1000; # Open all folds by default
|
|
||||||
|
|
||||||
# Search
|
|
||||||
hlsearch = true;
|
|
||||||
ignorecase = true;
|
|
||||||
incsearch = true;
|
|
||||||
smartcase = true; # case-sensitive if search contains uppercase
|
|
||||||
|
|
||||||
# Visual
|
|
||||||
number = true;
|
|
||||||
relativenumber = true;
|
|
||||||
cursorline = true;
|
|
||||||
visualbell = true;
|
|
||||||
termguicolors = true;
|
|
||||||
|
|
||||||
# Input
|
|
||||||
backspace = "indent,eol,start";
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
# make gf create the file if it doesnt exist
|
|
||||||
# cd to the working directory to handle relative file paths
|
|
||||||
key = "gf";
|
|
||||||
action = ":cd %:p:h<CR>:e <cfile><CR>";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
clipboard.providers.wl-copy.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
programs.nixvim.plugins.conform-nvim = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
programs.nixvim.plugins.lualine = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
programs.nixvim.plugins.noice = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{
|
|
||||||
programs.nixvim = {
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "t";
|
|
||||||
action = ":NvimTreeToggle<CR>";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
plugins = {
|
|
||||||
web-devicons.enable = true;
|
|
||||||
|
|
||||||
nvim-tree = {
|
|
||||||
enable = true;
|
|
||||||
autoClose = true;
|
|
||||||
disableNetrw = true;
|
|
||||||
hijackNetrw = true;
|
|
||||||
hijackCursor = true;
|
|
||||||
view = {
|
|
||||||
cursorline = true;
|
|
||||||
side = "right";
|
|
||||||
width = "25%";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
programs.nixvim.plugins.treesitter-context = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
programs.nixvim.plugins.treesitter = {
|
|
||||||
enable = true;
|
|
||||||
folding = true;
|
|
||||||
settings = {
|
|
||||||
auto_install = true;
|
|
||||||
highlight.enable = true;
|
|
||||||
indent.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
programs.nixvim.plugins.which-key = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +1,10 @@
|
||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nvf.homeManagerModules.default
|
inputs.nvf.homeManagerModules.default
|
||||||
./nvf/debugger.nix
|
|
||||||
./nvf/filetree.nix
|
|
||||||
./nvf/input.nix
|
./nvf/input.nix
|
||||||
./nvf/keymaps.nix
|
|
||||||
./nvf/languages.nix
|
./nvf/languages.nix
|
||||||
./nvf/lsp.nix
|
./nvf/ui.nix
|
||||||
./nvf/notes.nix
|
|
||||||
./nvf/options.nix
|
|
||||||
./nvf/search.nix
|
|
||||||
./nvf/utilities.nix
|
./nvf/utilities.nix
|
||||||
./nvf/visual.nix
|
|
||||||
];
|
];
|
||||||
home.sessionVariables.EDITOR = "nvim";
|
home.sessionVariables.EDITOR = "nvim";
|
||||||
programs.nvf = {
|
programs.nvf = {
|
||||||
|
@ -20,6 +13,40 @@
|
||||||
settings.vim = {
|
settings.vim = {
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
options = {
|
||||||
|
# Indentation
|
||||||
|
autoindent = true;
|
||||||
|
smartindent = true;
|
||||||
|
expandtab = true;
|
||||||
|
smarttab = true;
|
||||||
|
wrap = true;
|
||||||
|
shiftwidth = 2;
|
||||||
|
tabstop = 2;
|
||||||
|
foldlevel = 1000; # Open all folds by default
|
||||||
|
|
||||||
|
# Search
|
||||||
|
hlsearch = true;
|
||||||
|
ignorecase = true;
|
||||||
|
incsearch = true;
|
||||||
|
smartcase = true; # case-sensitive if search contains uppercase
|
||||||
|
|
||||||
|
# Visual
|
||||||
|
number = true;
|
||||||
|
cursorline = true;
|
||||||
|
visualbell = true;
|
||||||
|
termguicolors = true;
|
||||||
|
|
||||||
|
# Input
|
||||||
|
backspace = "indent,eol,start";
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
key = "gf";
|
||||||
|
mode = "n";
|
||||||
|
action = ":cd %:p:h<CR>:e <cfile><CR>";
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.autocomplete.blink-cmp = {
|
|
||||||
enable = true;
|
|
||||||
friendly-snippets.enable = true; # code snippets
|
|
||||||
setupOpts = {
|
|
||||||
completion = {
|
|
||||||
documentation.auto_show_delay_ms = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
sourcePlugins = {
|
|
||||||
emoji.enable = true;
|
|
||||||
ripgrep.enable = true;
|
|
||||||
spell.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.formatter.conform-nvim = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.debugger.nvim-dap = {
|
|
||||||
# nvim-dap enables debugging
|
|
||||||
# you can set breakpoints and step through code or use a REPL
|
|
||||||
enable = true;
|
|
||||||
mappings = {
|
|
||||||
# default mappings:
|
|
||||||
# - Continue:<leader>dc
|
|
||||||
# - Go down stacktrace:<leader>dvi
|
|
||||||
# - Go up stacktrace:<leader>dvo
|
|
||||||
# - Hover:<leader>dh
|
|
||||||
# - Restart:<leader>dR
|
|
||||||
# - Re-run Last Debug Session:<leader>d.
|
|
||||||
# - Continue to the current cursor:<leader>dgc
|
|
||||||
# - Step back:<leader>dgk
|
|
||||||
# - Step into function:<leader>dgi
|
|
||||||
# - Step out of function:<leader>dgo
|
|
||||||
# - Next step:<leader>dgj
|
|
||||||
# - Terminate:<leader>dq
|
|
||||||
# - Toggle breakpoint:<leader>db
|
|
||||||
# - Toggle DAP-UI:<leader>du
|
|
||||||
# - Toggle Repl:<leader>dr
|
|
||||||
};
|
|
||||||
# list of debuggers to install
|
|
||||||
sources = {};
|
|
||||||
# install nvim-dap-ui which provides a debugging ui
|
|
||||||
ui = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.filetree = {
|
|
||||||
# press ? in the tree view for a list of keybindings
|
|
||||||
# < and > to switch sources
|
|
||||||
# backspace to go up one level
|
|
||||||
neo-tree = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {
|
|
||||||
enable_cursor_hijack = true; # keep the cursor on the first char
|
|
||||||
hijack_netrw_behavior = "disabled";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# TODO: add keymap for :NeoTree action=show position=right toggle=true reveal=true
|
|
||||||
# action=show is to not focus the window
|
|
||||||
# toggle will toggle the window
|
|
||||||
# reveal will find and focus the current file
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
{
|
|
||||||
}
|
|
|
@ -1,7 +1,9 @@
|
||||||
{lib, ...}: {
|
{lib, ...}: {
|
||||||
programs.nvf.settings.vim = {
|
programs.nvf.settings.vim = {
|
||||||
autopairs = {
|
autopairs.nvim-autopairs.enable = true;
|
||||||
nvim-autopairs.enable = true;
|
snippets.luasnip = {
|
||||||
|
enable = true;
|
||||||
|
setupOpts.enable_autosnippets = true;
|
||||||
};
|
};
|
||||||
autocomplete = {
|
autocomplete = {
|
||||||
blink-cmp = {
|
blink-cmp = {
|
||||||
|
@ -32,19 +34,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# enable code snippets using luasnip
|
utility = {
|
||||||
# loads from vscode by default using friendly-snippets
|
motion = {
|
||||||
snippets.luasnip = {
|
hop.enable = true; # <leader>h
|
||||||
enable = true;
|
precognition.enable = false;
|
||||||
setupOpts = {
|
|
||||||
enable_autosnippets = true;
|
|
||||||
};
|
};
|
||||||
};
|
yanky-nvim.enable = true;
|
||||||
binds = {
|
|
||||||
# cheatsheet.nvim provides cheatsheets with fuzzy finding with <leader>?
|
|
||||||
cheatsheet.enable = true;
|
|
||||||
# whichkey provides a popup window with hotkeys
|
|
||||||
whichKey.enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.keymaps = [
|
|
||||||
{
|
|
||||||
key = "gf";
|
|
||||||
mode = "n";
|
|
||||||
action = ":cd %:p:h<CR>:e <cfile><CR>";
|
|
||||||
silent = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
home.packages = [pkgs.nixd];
|
|
||||||
programs.nvf.settings.vim.languages.nix = {
|
|
||||||
enable = true;
|
|
||||||
# lsp = {
|
|
||||||
# server = "nixd";
|
|
||||||
# options = {
|
|
||||||
# nixpkgs.expr = ''(builtins.getFlake ("git+file://" + toString ./.)).inputs.nixpkgs'';
|
|
||||||
# options.nixos.expr = ''(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.${builtins.getEnv "HOSTNAME"}.options'';
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,119 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.lsp = {
|
|
||||||
# enable is automatically set by null-ls and lspconfig options
|
|
||||||
# enable = true;
|
|
||||||
formatOnSave = true;
|
|
||||||
# lightbulb shows a lightbulb when code actions are available
|
|
||||||
# TODO: Look into code actions and how to enable them with telescope
|
|
||||||
lightbulb = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
# ls-signature shows a small signature for functions etc
|
|
||||||
# TODO: Look into configuring this
|
|
||||||
# does not work with blink cmp
|
|
||||||
lspSignature = {
|
|
||||||
enable = false;
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
# lspconfig should be enabled and configured automatically
|
|
||||||
lspconfig = {
|
|
||||||
enable = true;
|
|
||||||
sources = {}; # strings for snippet sources?
|
|
||||||
};
|
|
||||||
# lspkind provides vs code like icons for signatures
|
|
||||||
lspkind = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {
|
|
||||||
# call before lspkind modifications are applied
|
|
||||||
before = null; # takes luainline
|
|
||||||
# defines orders of symbols shown, e.g. text_symbol or symbol
|
|
||||||
mode = "symbol_text";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# lsplines moves diagnostics to virtual lines after the actual line
|
|
||||||
lsplines.enable = false; # TODO: add a keymap to toggle this
|
|
||||||
# lspsaga provides many features:
|
|
||||||
# - breadcrumbs: provides trace to current symbol at top
|
|
||||||
# - callhierarchy: provides a list of the call hierarchy
|
|
||||||
# - code actions: shows a list of available code actions
|
|
||||||
# - definition: peek or go to definitions
|
|
||||||
# - diagnostic: jump around the diagnostics in the file and see the diagnostic in a floating window
|
|
||||||
# - finder: search for references etc
|
|
||||||
# - float terminal: open a floating terminal
|
|
||||||
# - hover: opens a floating docs window
|
|
||||||
# - implement: see interfaces
|
|
||||||
# - lightbulb: same as lightbulb
|
|
||||||
# - outline: see entire file outline
|
|
||||||
# - rename: change all occurrences
|
|
||||||
# - ui beacon: highlight the cursor
|
|
||||||
# default keybinds:
|
|
||||||
# - codeAction "<leader>ca"
|
|
||||||
# - lspFinder "<leader>lf"
|
|
||||||
# - nextDiagnostic "<leader>ln"
|
|
||||||
# - previewDefinition "<leader>ld"
|
|
||||||
# - previousDiagnostic "<leader>lp"
|
|
||||||
# - rename "<leader>lr"
|
|
||||||
# - renderHoveredDoc "<leader>lh"
|
|
||||||
# - showCursorDiagnostics "<leader>lc"
|
|
||||||
# - showLineDiagnostics "<leader>ll"
|
|
||||||
# - signatureHelp "<leader>ls"
|
|
||||||
# - smartScrollDown "<C-b>"
|
|
||||||
# - smartScrollUp "<C-f>"
|
|
||||||
lspsaga.enable = false;
|
|
||||||
# null-ls exposes nvim as a language server, also used automatically
|
|
||||||
null-ls = {
|
|
||||||
enable = true;
|
|
||||||
sources = {};
|
|
||||||
};
|
|
||||||
# nvim-docs-view provides documentation in the side panel
|
|
||||||
nvim-docs-view = {
|
|
||||||
enable = true;
|
|
||||||
# default mappings:
|
|
||||||
# - viewToggle "<leader>lvt"
|
|
||||||
# - viewUpdate "<leader>lvu"
|
|
||||||
mappings = {};
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
# otter-nvim allows embedding code in other documents
|
|
||||||
otter-nvim = {
|
|
||||||
enable = true;
|
|
||||||
mappings.toggle = "<leader>lo"; # default
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
# trouble.nvim shows diagnostics and search results
|
|
||||||
trouble = {
|
|
||||||
enable = true;
|
|
||||||
# default mappings:
|
|
||||||
# - documentDiagnostics "<leader>ld"
|
|
||||||
# - locList "<leader>xl"
|
|
||||||
# - lspReferences "<leader>lr"
|
|
||||||
# - quickfix "<leader>xq"
|
|
||||||
# - symbols "<leader>xs"
|
|
||||||
# - workspaceDiagnostics "<leader>lwd"
|
|
||||||
mappings = {};
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
# default mappings for lsp:
|
|
||||||
# - addWorkspaceFolder "<leader>lwa"
|
|
||||||
# - codeAction "<leader>la"
|
|
||||||
# - documentHighlight "<leader>lH"
|
|
||||||
# - format "<leader>lf"
|
|
||||||
# - goToDeclaration "<leader>lgD"
|
|
||||||
# - goToDefinition "<leader>lgd"
|
|
||||||
# - goToType "<leader>lgt"
|
|
||||||
# - hover "<leader>lh"
|
|
||||||
# - listDocumentSymbols "<leader>lS"
|
|
||||||
# - listImplementations "<leader>lgi"
|
|
||||||
# - listReferences "<leader>lgr"
|
|
||||||
# - listWorkspaceFolders "<leader>lwl"
|
|
||||||
# - listWorkspaceSymbols "<leader>lws"
|
|
||||||
# - nextDiagnostic "<leader>lgn"
|
|
||||||
# - openDiagnosticFloat "<leader>le"
|
|
||||||
# - previousDiagnostic "<leader>lgp"
|
|
||||||
# - removeWorkspaceFolder "<leader>lwr"
|
|
||||||
# - renameSymbol "<leader>ln"
|
|
||||||
# - signatureHelp "<leader>ls"
|
|
||||||
# - toggleFormatOnSave "<leader>ltf"
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.statusline.lualine = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.ui.noice = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.notes = {
|
|
||||||
# TODO: look into mind nvim
|
|
||||||
# todo-comments provides quick search for keywords like TODO
|
|
||||||
# default mappings
|
|
||||||
# - Open Todo-s in a quickfix list:<leader>tdq
|
|
||||||
# - Open Todo-s in telescope:<leader>tds
|
|
||||||
# - Open Todo-s in Trouble:<leader>tdt
|
|
||||||
todo-comments.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim = {
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
key = "t";
|
|
||||||
mode = "n";
|
|
||||||
action = ":NvimTreeToggle<CR>";
|
|
||||||
silent = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
filetree.nvimTree = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {
|
|
||||||
disable_netrw = true;
|
|
||||||
hijack_netrw = true;
|
|
||||||
hijack_cursor = true;
|
|
||||||
actions.open_file.quit_on_open = true;
|
|
||||||
hijack_directories.auto_open = false;
|
|
||||||
view = {
|
|
||||||
cursorline = true;
|
|
||||||
side = "right";
|
|
||||||
width = {
|
|
||||||
min = "25%";
|
|
||||||
max = "25%";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim = {
|
|
||||||
options = {
|
|
||||||
# Indentation
|
|
||||||
autoindent = true;
|
|
||||||
smartindent = true;
|
|
||||||
expandtab = true;
|
|
||||||
smarttab = true;
|
|
||||||
wrap = true;
|
|
||||||
shiftwidth = 2;
|
|
||||||
tabstop = 2;
|
|
||||||
foldlevel = 1000; # Open all folds by default
|
|
||||||
|
|
||||||
# Search
|
|
||||||
hlsearch = true;
|
|
||||||
ignorecase = true;
|
|
||||||
incsearch = true;
|
|
||||||
smartcase = true; # case-sensitive if search contains uppercase
|
|
||||||
|
|
||||||
# Visual
|
|
||||||
number = true;
|
|
||||||
relativenumber = true;
|
|
||||||
cursorline = true;
|
|
||||||
visualbell = true;
|
|
||||||
termguicolors = true;
|
|
||||||
|
|
||||||
# Input
|
|
||||||
backspace = "indent,eol,start";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.telescope = {
|
|
||||||
enable = true;
|
|
||||||
mappings = {
|
|
||||||
# default mappings
|
|
||||||
# - Buffers [Telescope]:<leader>fb
|
|
||||||
# - Diagnostics [Telescope]:<leader>fld
|
|
||||||
# - Find files [Telescope]:<leader>ff
|
|
||||||
# - Find projects [Telescope]:<leader>fp
|
|
||||||
# - Git branches [Telescope]:<leader>fvb
|
|
||||||
# - Git buffer commits [Telescope]:<leader>fvcb
|
|
||||||
# - Git commits [Telescope]:<leader>fvcw
|
|
||||||
# - Git stash [Telescope]:<leader>fvx
|
|
||||||
# - Git status [Telescope]:<leader>fvs
|
|
||||||
# - Help tags [Telescope]:<leader>fh
|
|
||||||
# - Live grep [Telescope]:<leader>fg
|
|
||||||
# - LSP Definitions [Telescope]:<leader>flD
|
|
||||||
# - LSP Document Symbols [Telescope]:<leader>flsb
|
|
||||||
# - LSP Implementations [Telescope]:<leader>fli
|
|
||||||
# - LSP References [Telescope]:<leader>flr
|
|
||||||
# - LSP Type Definitions [Telescope]:<leader>flt
|
|
||||||
# - LSP Workspace Symbols [Telescope]:<leader>flsw
|
|
||||||
# - Open [Telescope]:<leader>ft
|
|
||||||
# - Resume (previous search) [Telescope]:<leader>fr
|
|
||||||
# - Treesitter [Telescope]:<leader>fs
|
|
||||||
};
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
}
|
|
52
users/modules/programs/nvf/ui.nix
Normal file
52
users/modules/programs/nvf/ui.nix
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
programs.nvf.settings.vim = {
|
||||||
|
lsp = {
|
||||||
|
formatOnSave = true;
|
||||||
|
lightbulb.enable = true;
|
||||||
|
lspkind.enable = true;
|
||||||
|
otter-nvim.enable = true;
|
||||||
|
trouble.enable = true;
|
||||||
|
};
|
||||||
|
binds = {
|
||||||
|
cheatsheet.enable = true;
|
||||||
|
whichKey.enable = true;
|
||||||
|
};
|
||||||
|
debugger.nvim-dap = {
|
||||||
|
enable = true;
|
||||||
|
ui.enable = true;
|
||||||
|
};
|
||||||
|
notes.todo-comments.enable = true;
|
||||||
|
telescope.enable = true;
|
||||||
|
statusline.lualine.enable = true;
|
||||||
|
treesitter = {
|
||||||
|
enable = true;
|
||||||
|
autotagHtml = true;
|
||||||
|
fold = true;
|
||||||
|
};
|
||||||
|
notify.nvim-notify.enable = true;
|
||||||
|
visuals = {
|
||||||
|
fidget-nvim.enable = true;
|
||||||
|
indent-blankline.enable = true;
|
||||||
|
rainbow-delimiters.enable = true;
|
||||||
|
nvim-web-devicons.enable = true;
|
||||||
|
tiny-devicons-auto-colors.enable = true;
|
||||||
|
};
|
||||||
|
ui = {
|
||||||
|
borders.enable = true;
|
||||||
|
breadcrumbs.enable = true;
|
||||||
|
breadcrumbs.navbuddy.enable = true;
|
||||||
|
colorizer.enable = true;
|
||||||
|
noice.enable = true;
|
||||||
|
nvim-ufo.enable = true;
|
||||||
|
};
|
||||||
|
utility = {
|
||||||
|
ccc.enable = true;
|
||||||
|
images.image-nvim = {
|
||||||
|
enable = true;
|
||||||
|
setupOpts.backend = "kitty";
|
||||||
|
};
|
||||||
|
yazi-nvim.enable = true;
|
||||||
|
yazi-nvim.setupOpts.open_for_directories = true; # FIXME: does this work with neotree?
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,23 +1,8 @@
|
||||||
{
|
{
|
||||||
programs.nvf.settings.vim = {
|
programs.nvf.settings.vim = {
|
||||||
projects.project-nvim.enable = true;
|
|
||||||
utility = {
|
utility = {
|
||||||
# ccc is a colour picker
|
|
||||||
ccc.enable = true;
|
|
||||||
# diffview-nvim lets you easily go through diffs for a given rev
|
|
||||||
diffview-nvim.enable = true;
|
|
||||||
# direnv.vim syncs the nvim shell environment with direnv
|
|
||||||
direnv.enable = true;
|
direnv.enable = true;
|
||||||
# icon-picker gives you a way to pick icons from nerd fonts
|
nix-develop.enable = true;
|
||||||
# TODO: find out keybinds
|
|
||||||
icon-picker.enable = true;
|
|
||||||
# image rendering
|
|
||||||
# TODO: look into image-magick and if it is needed
|
|
||||||
images.image-nvim = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts.backend = "kitty";
|
|
||||||
};
|
|
||||||
# leetcode
|
|
||||||
leetcode-nvim = {
|
leetcode-nvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
setupOpts = {
|
setupOpts = {
|
||||||
|
@ -25,68 +10,13 @@
|
||||||
lang = "rust";
|
lang = "rust";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# mkdir.nvim creates directory when the path doesnt exist
|
|
||||||
mkdir.enable = true;
|
mkdir.enable = true;
|
||||||
motion = {
|
|
||||||
hop.enable = true; # <leader>h
|
|
||||||
leap.enable = true;
|
|
||||||
leap.mappings = {
|
|
||||||
# default mappings
|
|
||||||
# - Leap backward till:<leader>sX
|
|
||||||
# - Leap backward to:<leader>sS
|
|
||||||
# - Leap forward till:<leader>sx
|
|
||||||
# - Leap forward to:<leader>ss
|
|
||||||
# - Leap from window:gs
|
|
||||||
};
|
|
||||||
# precognition.nvim shows hints for motions
|
|
||||||
precognition = {
|
|
||||||
enable = false;
|
|
||||||
setupOpts = {
|
|
||||||
# TODO: may want to fix dashboard
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# multicursors.nvim enables vscode like multicursors
|
|
||||||
multicursors.enable = true;
|
|
||||||
# new-file-template.nvim automatically inserts templates in new files
|
|
||||||
new-file-template = {
|
new-file-template = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# add a directory containing lua/tempaltes/*.lua to vim.additionalRuntimePaths
|
# add a directory containing lua/tempaltes/*.lua to vim.additionalRuntimePaths
|
||||||
# TODO: add for nix
|
# TODO: add for nix
|
||||||
};
|
};
|
||||||
# allows usage of nix commands in nvim
|
|
||||||
nix-develop.enable = true;
|
|
||||||
# aerial.nvim shows a preview of your entire code file
|
|
||||||
outline.aerial-nvim.enable = true; # "g0"
|
|
||||||
# glow.nvim displays a floating window with a markdown preview
|
|
||||||
preview.glow.enable = true; # "<leader>p"
|
|
||||||
# nvim-surround allows you to easily surround and delete words or phrases
|
|
||||||
surround.enable = true;
|
|
||||||
# vim-wakatime allows sending statistics to wakatime or a compatible backend vim-wakatime.enable = true;
|
|
||||||
# yanky allows cycling through yank history when putting text
|
|
||||||
yanky-nvim.enable = true;
|
|
||||||
# yazi-nvim gives integration with yazi
|
|
||||||
# default mappings:
|
|
||||||
# - Open yazi at the current file [yazi.nvim]:<leader>-
|
|
||||||
# - Open the file manager in nvim’s working directory [yazi.nvim]:<leader>cw
|
|
||||||
# - Resume the last yazi session [yazi.nvim]:<c-up>
|
|
||||||
yazi-nvim.enable = true;
|
|
||||||
yazi-nvim.setupOpts.open_for_directories = true; # FIXME: does this work with neotree?
|
|
||||||
};
|
};
|
||||||
# TODO: look into terminal integration
|
session.nvim-session-manager.enable = true;
|
||||||
terminal.toggleterm.enable = true;
|
|
||||||
terminal.toggleterm.lazygit.enable = true;
|
|
||||||
# nvim session manager manages sessions like folders in vscode
|
|
||||||
session.nvim-session-manager = {
|
|
||||||
enable = true;
|
|
||||||
mappings = {
|
|
||||||
# default mappings:
|
|
||||||
# - Delete session:<leader>sd
|
|
||||||
# - Load last session:<leader>slt
|
|
||||||
# - Load session:<leader>sl
|
|
||||||
# - Save current session:<leader>sc
|
|
||||||
};
|
|
||||||
};
|
|
||||||
comments.comment-nvim.enable = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,130 +0,0 @@
|
||||||
{
|
|
||||||
programs.nvf.settings.vim = {
|
|
||||||
visuals = {
|
|
||||||
# fidget.nvim shows messages in the bottom right
|
|
||||||
fidget-nvim = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
# highlight-undo.nvim highlights what text was changed when performing an action that modifies the buffer while not in insert mode
|
|
||||||
highlight-undo = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {
|
|
||||||
duration = 100; # in ms
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# indent-blankline.nvim adds indentation guides
|
|
||||||
indent-blankline = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
# nvim-cursorline provides cursor word and line highlighting
|
|
||||||
nvim-cursorline = {
|
|
||||||
enable = false;
|
|
||||||
setupOpts = {
|
|
||||||
cursorword.enable = true;
|
|
||||||
cursorline.enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nvim-scrollbar.enable = true;
|
|
||||||
rainbow-delimiters.enable = true;
|
|
||||||
nvim-web-devicons.enable = true;
|
|
||||||
tiny-devicons-auto-colors.enable = true;
|
|
||||||
};
|
|
||||||
statusline.lualine = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
tabline.nvimBufferline = {
|
|
||||||
enable = false;
|
|
||||||
mappings = {
|
|
||||||
# default mappings:
|
|
||||||
# - Close buffer:null
|
|
||||||
# - Next buffer:<leader>bn
|
|
||||||
# - Previous buffer:<leader>bp
|
|
||||||
# - Move next buffer:<leader>bmn
|
|
||||||
# - Move previous buffer:<leader>bmp
|
|
||||||
# - Pick buffer:<leader>bc
|
|
||||||
# - Sort buffers by directory:<leader>bsd
|
|
||||||
# - Sort buffers by extension:<leader>bse
|
|
||||||
# - Sort buffers by ID:<leader>bsi
|
|
||||||
# closeCurrent = "<C-w>";
|
|
||||||
# TODO: check these mappigns
|
|
||||||
# cycleNext = "<C-Tab>";
|
|
||||||
# cyclePrevious = "<C-Shift-Tab>";
|
|
||||||
};
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
# treesitter handles syntax highlighting
|
|
||||||
treesitter = {
|
|
||||||
enable = true;
|
|
||||||
autotagHtml = true;
|
|
||||||
fold = true;
|
|
||||||
# provide context for current scope
|
|
||||||
context = {
|
|
||||||
enable = false;
|
|
||||||
setupOpts = {
|
|
||||||
mode = "topline";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mappings.incrementalSelection = {
|
|
||||||
# - Decrement selection by node [treesitter]:grm
|
|
||||||
# - Increment selection by node [treesitter]:grn
|
|
||||||
# - Increment selection by scope [treesitter]:grc
|
|
||||||
# - Init selection [treesitter]:gnn
|
|
||||||
};
|
|
||||||
};
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
# gitsigns indicates added, changed, deleted lines among other things
|
|
||||||
gitsigns.mappings = {
|
|
||||||
# - Blame line [Gitsigns]:<leader>hb
|
|
||||||
# - Diff project [Gitsigns]:<leader>hD
|
|
||||||
# - Diff this [Gitsigns]:<leader>hd
|
|
||||||
# - Next hunk [Gitsigns]:]c
|
|
||||||
# - Preview hunk [Gitsigns]:<leader>hP
|
|
||||||
# - Previous hunk [Gitsigns]:[c
|
|
||||||
# - Reset buffer [Gitsigns]:<leader>hR
|
|
||||||
# - Reset hunk [Gitsigns]:<leader>hr
|
|
||||||
# - Stage buffer [Gitsigns]:<leader>hS
|
|
||||||
# - Stage hunk [Gitsigns]:<leader>hs
|
|
||||||
# - Toggle blame [Gitsigns]:<leader>tb
|
|
||||||
# - Toggle deleted [Gitsigns]:<leader>td
|
|
||||||
# - Undo stage hunk [Gitsigns]:<leader>hu
|
|
||||||
};
|
|
||||||
# git-conflict visualises git conflicts and resolves
|
|
||||||
git-conflict.mappings = {
|
|
||||||
# Default mappings:
|
|
||||||
# - Choose Both [Git-Conflict]:<leader>cb
|
|
||||||
# - Go to the next Conflict [Git-Conflict]:[x
|
|
||||||
# - Choose None [Git-Conflict]:<leader>c0
|
|
||||||
# - Choose Ours [Git-Conflict]:<leader>co
|
|
||||||
# - Go to the previous Conflict [Git-Conflict]:]x
|
|
||||||
# - Choose Theirs [Git-Conflict]:<leader>ct
|
|
||||||
};
|
|
||||||
# vim-fugitive provides git cmds
|
|
||||||
};
|
|
||||||
dashboard.alpha.enable = true;
|
|
||||||
notify.nvim-notify.enable = true;
|
|
||||||
ui = {
|
|
||||||
borders.enable = true; # TODO: enable plugin specific
|
|
||||||
breadcrumbs.enable = true;
|
|
||||||
breadcrumbs.navbuddy.enable = true; # nvim-navic
|
|
||||||
# nvim-colorizer highlights color codes
|
|
||||||
colorizer.enable = true; # TODO: check if it works
|
|
||||||
# fastaction.nvim overrides vim.ui.select with fast action
|
|
||||||
# TODO: look into this
|
|
||||||
fastaction.enable = true;
|
|
||||||
# vim-illuminate highlights all occurrences
|
|
||||||
illuminate.enable = true; # TOOD: check if neotree is covered
|
|
||||||
# modes-nvim colors the whole line
|
|
||||||
modes-nvim.enable = true;
|
|
||||||
# noice displays the command window in a floating window and disables the cmd line
|
|
||||||
# TODO: look at the options
|
|
||||||
noice.enable = true;
|
|
||||||
# nvim-ufo makes folds look nicer
|
|
||||||
nvim-ufo.enable = true;
|
|
||||||
# smartcolumn enables line length indicators
|
|
||||||
smartcolumn.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
vimdiffAlias = true;
|
|
||||||
extraLuaConfig = ''
|
|
||||||
vim.opt.shiftwidth = 2;
|
|
||||||
vim.opt.number = true;
|
|
||||||
vim.opt.relativenumber = true;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue