diff --git a/home/programs/nvf/default.nix b/home/programs/nvf/default.nix new file mode 100644 index 0000000..eaaefe8 --- /dev/null +++ b/home/programs/nvf/default.nix @@ -0,0 +1,25 @@ +{ + inputs, + pkgs, + ... +}: { + imports = [ + inputs.nvf.homeManagerModules.default + ./options.nix + ./languages.nix + ./picker.nix + ./snacks.nix + ./keymaps.nix + ./utils.nix + ./mini.nix + ]; + + programs.nvf = { + enable = true; + settings.vim = { + startPlugins = [ + pkgs.vimPlugins.vim-kitty-navigator + ]; + }; + }; +} diff --git a/home/programs/nvf/keymaps.nix b/home/programs/nvf/keymaps.nix new file mode 100644 index 0000000..ed34631 --- /dev/null +++ b/home/programs/nvf/keymaps.nix @@ -0,0 +1,173 @@ +{ + programs.nvf.settings.vim = { + globals.mapleader = " "; + binds = { + whichKey = { + enable = true; + # TODO: registers + register = {}; + }; + }; + keymaps = [ + # General Mappings + { + key = "s"; + mode = "n"; + silent = true; + action = "lua require('flash').jump()"; + desc = "Flash"; + } + { + key = "K"; + mode = "n"; + silent = true; + action = "lua vim.lsp.buf.hover()"; + desc = "LSP Hover"; + } + { + key = ""; + mode = "n"; + silent = true; + action = "bnext"; + desc = "Next Buffer"; + } + + # Kitty navigator + { + key = ""; + mode = "n"; + silent = true; + action = "KittyNavigateLeft"; + } + { + key = ""; + mode = "n"; + silent = true; + action = "KittyNavigateDown"; + } + { + key = ""; + mode = "n"; + silent = true; + action = "KittyNavigateUp"; + } + { + key = ""; + mode = "n"; + silent = true; + action = "KittyNavigateRight"; + } + + # Disable Arrow Keys in Normal Mode + { + key = ""; + mode = "n"; + silent = true; + action = ""; + desc = "Disable Up Arrow"; + } + { + key = ""; + mode = "n"; + silent = true; + action = ""; + desc = "Disable Down Arrow"; + } + { + key = ""; + mode = "n"; + silent = true; + action = ""; + desc = "Disable Left Arrow"; + } + { + key = ""; + mode = "n"; + silent = true; + action = ""; + desc = "Disable Right Arrow"; + } + + # UI + { + key = "uw"; + mode = "n"; + silent = true; + action = "set wrap!"; + desc = "Toggle word wrapping"; + } + { + key = "ul"; + mode = "n"; + silent = true; + action = "set linebreak!"; + desc = "Toggle linebreak"; + } + { + key = "us"; + mode = "n"; + silent = true; + action = "set spell!"; + desc = "Toggle spellLazyGitcheck"; + } + { + key = "uc"; + mode = "n"; + silent = true; + action = "set cursorline!"; + desc = "Toggle cursorline"; + } + { + key = "un"; + mode = "n"; + silent = true; + action = "set number!"; + desc = "Toggle line numbers"; + } + { + key = "ur"; + mode = "n"; + silent = true; + action = "set relativenumber!"; + desc = "Toggle relative line numbers"; + } + { + key = "ut"; + mode = "n"; + silent = true; + action = "set showtabline=2"; + desc = "Show tabline"; + } + { + key = "uT"; + mode = "n"; + silent = true; + action = "set showtabline=0"; + desc = "Hide tabline"; + } + + # Windows + { + key = "ws"; + mode = "n"; + silent = true; + action = "split"; + desc = "Split"; + } + { + key = "wv"; + mode = "n"; + silent = true; + action = "vsplit"; + desc = "VSplit"; + } + { + key = "wd"; + mode = "n"; + silent = true; + action = "close"; + desc = "Close"; + } + ]; + }; +} diff --git a/home/programs/nvf/languages.nix b/home/programs/nvf/languages.nix new file mode 100644 index 0000000..0c70b97 --- /dev/null +++ b/home/programs/nvf/languages.nix @@ -0,0 +1,46 @@ +{ + programs.nvf.settings.vim = { + diagnostics = { + enable = true; + nvim-lint.enable = true; + config.virtual_text = true; + }; + syntaxHighlighting = true; + treesitter = { + enable = true; + autotagHtml = true; + context.enable = true; + highlight = { + enable = true; + additionalVimRegexHighlighting = true; + }; + }; + lsp = { + enable = true; + trouble.enable = true; + formatOnSave = true; + inlayHints.enable = true; + lightbulb.enable = true; + null-ls.enable = true; + otter-nvim.enable = true; + }; + languages = { + enableDAP = true; + enableExtraDiagnostics = true; + enableFormat = true; + enableTreesitter = true; + + astro.enable = true; + go.enable = true; + markdown.enable = true; + ts.enable = true; + ts.extensions.ts-error-translator.enable = true; + css.enable = true; + svelte.enable = true; + html.enable = true; + bash.enable = true; + nix.enable = true; + tailwind.enable = true; + }; + }; +} diff --git a/home/programs/nvf/mini.nix b/home/programs/nvf/mini.nix new file mode 100644 index 0000000..2c0568b --- /dev/null +++ b/home/programs/nvf/mini.nix @@ -0,0 +1,13 @@ +{ + programs.nvf.settings.vim.mini = { + starter.enable = true; + comment.enable = true; + # cursorword.enable = true; + icons.enable = true; + indentscope.enable = true; + notify.enable = true; + pairs.enable = true; + diff.enable = true; + git.enable = true; + }; +} diff --git a/home/programs/nvf/options.nix b/home/programs/nvf/options.nix new file mode 100644 index 0000000..5858e62 --- /dev/null +++ b/home/programs/nvf/options.nix @@ -0,0 +1,21 @@ +{ + programs.nvf.settings.vim = { + viAlias = false; + vimAlias = true; + withNodeJs = true; + # syntaxHighlighting = true; + options = { + autoindent = true; + shiftwidth = 2; + signcolumn = "yes"; + tabstop = 2; + softtabstop = 2; + wrap = false; + }; + clipboard = { + enable = true; + registers = "unnamedplus"; + providers.wl-copy.enable = true; + }; + }; +} diff --git a/home/programs/nvim/plugins/picker.nix b/home/programs/nvf/picker.nix similarity index 56% rename from home/programs/nvim/plugins/picker.nix rename to home/programs/nvf/picker.nix index e5ff80d..c87033e 100644 --- a/home/programs/nvim/plugins/picker.nix +++ b/home/programs/nvf/picker.nix @@ -1,221 +1,256 @@ -{ config, ... }: { - programs.nixvim = { - highlightOverride = { - SnacksPicker = { - bg = "none"; - nocombine = true; +{ + programs.nvf.settings.vim = { + utility = { + oil-nvim.enable = true; + snacks-nvim = { + setupOpts = { + picker.enabled = true; + explorer.enabled = true; + }; }; - SnacksPickerBorder = { - bg = "none"; - fg = "#${config.lib.stylix.colors.base0D}"; - }; - SnacksPickerTree = { bg = "#${config.lib.stylix.colors.base00}"; }; - FloatBorder = { - bg = "#${config.lib.stylix.colors.base00}"; - fg = "#${config.lib.stylix.colors.base0D}"; - }; - NormalFloat = { bg = "#${config.lib.stylix.colors.base00}"; }; - }; - plugins = { - snacks.settings = { - picker.enable = true; - explorer.enable = true; - }; - oil.enable = true; - which-key.settings.spec = [ - { - __unkeyed-1 = "f"; - mode = "n"; - group = "+find"; - } - { - __unkeyed-1 = "g"; - mode = "n"; - group = "+git"; - } - { - __unkeyed-1 = "s"; - mode = "n"; - group = "+search"; - } - ]; }; keymaps = [ # Top Pickers & Explorer { key = " "; + mode = "n"; + silent = true; action = "lua Snacks.picker.smart()"; - options.desc = "Smart Find Files"; + desc = "Smart Find Files"; } { key = ","; + mode = "n"; + silent = true; action = "lua Snacks.picker.buffers()"; - options.desc = "Buffers"; + desc = "Buffers"; } { key = "/"; + mode = "n"; + silent = true; action = "lua Snacks.picker.grep()"; - options.desc = "Grep"; + desc = "Grep"; } { key = ":"; + mode = "n"; + silent = true; action = "lua Snacks.picker.command_history()"; - options.desc = "Command History"; + desc = "Command History"; } { key = "e"; + mode = "n"; + silent = true; action = "lua Snacks.explorer()"; - options.desc = "File Explorer"; + desc = "File Explorer"; } { key = "-"; + mode = "n"; + silent = true; action = "Oil"; - options.desc = "Oil"; + desc = "Oil"; } # Find { key = "fb"; + mode = "n"; + silent = true; action = "lua Snacks.picker.buffers()"; - options.desc = "Buffers"; + desc = "Buffers"; } { key = "fc"; + mode = "n"; + silent = true; action = '' lua Snacks.picker.files({ cwd = vim.fn.stdpath("config") })''; - options.desc = "Find Config File"; + desc = "Find Config File"; } { key = "ff"; + mode = "n"; + silent = true; action = "lua Snacks.picker.files()"; - options.desc = "Find Files"; + desc = "Find Files"; } { key = "fg"; + mode = "n"; + silent = true; action = "lua Snacks.picker.git_files()"; - options.desc = "Find Git Files"; + desc = "Find Git Files"; } { key = "fp"; + mode = "n"; + silent = true; action = "lua Snacks.picker.projects()"; - options.desc = "Projects"; + desc = "Projects"; } { key = "fr"; + mode = "n"; + silent = true; action = "lua Snacks.picker.recent()"; - options.desc = "Recent"; + desc = "Recent"; } { key = "fn"; + mode = "n"; + silent = true; action = "lua Snacks.picker.notifications()"; - options.desc = "Notification History"; + desc = "Notification History"; } { key = "fe"; + mode = "n"; + silent = true; action = "lua Snacks.picker.icons()"; - options.desc = "Emoji"; + desc = "Emoji"; } # Git { key = "gb"; + mode = "n"; + silent = true; action = "lua Snacks.picker.git_branches()"; - options.desc = "Git Branches"; + desc = "Git Branches"; } { key = "gL"; + mode = "n"; + silent = true; action = "lua Snacks.picker.git_log()"; - options.desc = "Git Log Line"; + desc = "Git Log Line"; } { key = "gs"; + mode = "n"; + silent = true; action = "lua Snacks.picker.git_status()"; - options.desc = "Git Status"; + desc = "Git Status"; } { key = "gS"; + mode = "n"; + silent = true; action = "lua Snacks.picker.git_stash()"; - options.desc = "Git Stash"; + desc = "Git Stash"; } { key = "gd"; + mode = "n"; + silent = true; action = "lua Snacks.picker.git_diff()"; - options.desc = "Git Diff (Hunks)"; + desc = "Git Diff (Hunks)"; } { key = "gf"; + mode = "n"; + silent = true; action = "lua Snacks.picker.git_log_file()"; - options.desc = "Git Log File"; + desc = "Git Log File"; } # Grep { key = "sb"; + mode = "n"; + silent = true; action = "lua Snacks.picker.lines()"; - options.desc = "Buffer Lines"; + desc = "Buffer Lines"; } { key = "st"; + mode = "n"; + silent = true; action = "lua Snacks.picker.todo_comments()"; - options.desc = "Todos"; + desc = "Todos"; } { key = "sB"; + mode = "n"; + silent = true; action = "lua Snacks.picker.grep_buffers()"; - options.desc = "Grep Open Buffers"; + desc = "Grep Open Buffers"; } { key = "sg"; + mode = "n"; + silent = true; action = "lua Snacks.picker.grep()"; - options.desc = "Grep"; + desc = "Grep"; } { key = "sw"; + mode = "n"; + silent = true; action = "lua Snacks.picker.grep_word()"; - options.desc = "Visual selection or word"; + desc = "Visual selection or word"; } { key = "sr"; + mode = "n"; + silent = true; action = "nohlsearch"; - options.desc = "Reset search"; + desc = "Reset search"; } # LSP { key = "gd"; + mode = "n"; + silent = true; action = "lua Snacks.picker.lsp_definitions()"; - options.desc = "Goto Definition"; + desc = "Goto Definition"; } { key = "gD"; + mode = "n"; + silent = true; action = "lua Snacks.picker.lsp_declarations()"; - options.desc = "Goto Declaration"; + desc = "Goto Declaration"; } { key = "gr"; + mode = "n"; + silent = true; action = "lua Snacks.picker.lsp_references()"; - options.desc = "References"; - options.nowait = true; + desc = "References"; + nowait = true; } { key = "gI"; + mode = "n"; + silent = true; action = "lua Snacks.picker.lsp_implementations()"; - options.desc = "Goto Implementation"; + desc = "Goto Implementation"; } { key = "gy"; + mode = "n"; + silent = true; action = "lua Snacks.picker.lsp_type_definitions()"; - options.desc = "Goto Type Definition"; + desc = "Goto Type Definition"; } { key = "ss"; + mode = "n"; + silent = true; action = "lua Snacks.picker.lsp_symbols()"; - options.desc = "LSP Symbols"; + desc = "LSP Symbols"; } { key = "sS"; + mode = "n"; + silent = true; action = "lua Snacks.picker.lsp_workspace_symbols()"; - options.desc = "LSP Workspace Symbols"; + desc = "LSP Workspace Symbols"; } ]; }; diff --git a/home/programs/nvf/snacks.nix b/home/programs/nvf/snacks.nix new file mode 100644 index 0000000..f0faf03 --- /dev/null +++ b/home/programs/nvf/snacks.nix @@ -0,0 +1,16 @@ +{ + programs.nvf.settings.vim.utility.snacks-nvim = { + enable = true; + setupOpts = { + image = { + enabled = true; + setupOpts.doc.inline = false; + }; + quickfile.enabled = true; + statuscolumn.enabled = true; + zen.enabled = true; + bufdelete.enabled = true; + gitsigns.enabled = true; + }; + }; +} diff --git a/home/programs/nvf/utils.nix b/home/programs/nvf/utils.nix new file mode 100644 index 0000000..ea27652 --- /dev/null +++ b/home/programs/nvf/utils.nix @@ -0,0 +1,33 @@ +{ + programs.nvf.settings.vim = { + utility = { + motion.flash-nvim.enable = true; + outline.aerial-nvim.enable = true; + }; + tabline.nvimBufferline.enable = true; + notes.todo-comments.enable = true; + assistant.copilot = { + enable = true; + cmp.enable = true; + }; + statusline.lualine.enable = true; + autocomplete.blink-cmp = { + enable = true; + friendly-snippets.enable = true; + }; + snippets.luasnip.enable = true; + ui = { + noice.enable = true; + colorizer.enable = true; + }; + git = { + enable = true; + gitsigns.enable = true; + }; + terminal.toggleterm = { + enable = true; + lazygit.enable = true; + }; + formatter.conform-nvim.enable = true; + }; +} diff --git a/home/programs/nvim/autocmds.nix b/home/programs/nvim/autocmds.nix deleted file mode 100644 index 6374304..0000000 --- a/home/programs/nvim/autocmds.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - programs.nixvim = { - autoGroups = { - highlightyank.clear = true; - q_close_windows.clear = true; - }; - - autoCmd = [ - # highlightyank - # https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L206-L211 - { - desc = "Highlight yanked text"; - event = "TextYankPost"; - group = "highlightyank"; - pattern = "*"; - - callback.__raw = '' - function() - vim.highlight.on_yank() - end - ''; - } - - # q_close_windows - # https://github.com/AstroNvim/AstroNvim/blob/v4.7.7/lua/astronvim/plugins/_astrocore_autocmds.lua#L242-L255 - { - desc = "Make q close help, man, quickfix, dap floats"; - event = "BufWinEnter"; - group = "q_close_windows"; - - callback.__raw = '' - function(event) - if vim.tbl_contains({ "help", "nofile", "quickfix" }, vim.bo[event.buf].buftype) then - vim.keymap.set("n", "q", "close", { - desc = "Close window", - buffer = event.buf, - silent = true, - nowait = true, - }) - end - end - ''; - } - ]; - }; -} diff --git a/home/programs/nvim/default.nix b/home/programs/nvim/default.nix deleted file mode 100644 index af52750..0000000 --- a/home/programs/nvim/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -# Nixvim is a NixOS module that installs and configures Neovim -{ inputs, ... }: { - imports = [ - inputs.nixvim.homeManagerModules.nixvim - ./plugins/cmp.nix - ./plugins/floaterm.nix - ./plugins/git.nix - ./plugins/lsp.nix - ./plugins/markdown.nix - ./plugins/mini.nix - ./plugins/picker.nix - ./plugins/snacks.nix - ./plugins/trouble.nix - ./plugins/utils.nix - - ./options.nix - ./keymaps.nix - ./autocmds.nix - ]; - - programs.nixvim.enable = true; -} diff --git a/home/programs/nvim/keymaps.nix b/home/programs/nvim/keymaps.nix deleted file mode 100644 index 48e97b4..0000000 --- a/home/programs/nvim/keymaps.nix +++ /dev/null @@ -1,156 +0,0 @@ -{ - programs.nixvim = { - plugins.which-key = { - enable = true; - settings = { - delay = 600; - icons = { - breadcrumb = "»"; - group = "+"; - separator = ""; # ➜ - mappings = false; - }; - spec = [ - # General Mappings - { - __unkeyed-1 = "u"; - mode = "n"; - group = "+ui"; - } - { - __unkeyed-1 = "w"; - mode = "n"; - group = "+windows"; - } - { - __unkeyed-1 = "c"; - mode = "n"; - group = "+code"; - } - ]; - win = { - border = "rounded"; - wo.winblend = 0; - }; - }; - }; - - keymaps = [ - # General Mappings - { - key = "s"; - action = "lua require('flash').jump()"; - options.desc = "Flash"; - } - { - key = "K"; - action = "lua vim.lsp.buf.hover()"; - options.desc = "LSP Hover"; - } - { - key = ""; - action = "bnext"; - options.desc = "Next Buffer"; - } - - # Tmux - { - key = ""; - action = "TmuxNavigateLeft"; - } - { - key = ""; - action = "TmuxNavigateDown"; - } - { - key = ""; - action = "TmuxNavigateUp"; - } - { - key = ""; - action = "TmuxNavigateRight"; - } - - # Disable Arrow Keys in Normal Mode - { - key = ""; - action = ""; - options.desc = "Disable Up Arrow"; - } - { - key = ""; - action = ""; - options.desc = "Disable Down Arrow"; - } - { - key = ""; - action = ""; - options.desc = "Disable Left Arrow"; - } - { - key = ""; - action = ""; - options.desc = "Disable Right Arrow"; - } - - # UI - { - key = "uw"; - action = "set wrap!"; - options.desc = "Toggle word wrapping"; - } - { - key = "ul"; - action = "set linebreak!"; - options.desc = "Toggle linebreak"; - } - { - key = "us"; - action = "set spell!"; - options.desc = "Toggle spellLazyGitcheck"; - } - { - key = "uc"; - action = "set cursorline!"; - options.desc = "Toggle cursorline"; - } - { - key = "un"; - action = "set number!"; - options.desc = "Toggle line numbers"; - } - { - key = "ur"; - action = "set relativenumber!"; - options.desc = "Toggle relative line numbers"; - } - { - key = "ut"; - action = "set showtabline=2"; - options.desc = "Show tabline"; - } - { - key = "uT"; - action = "set showtabline=0"; - options.desc = "Hide tabline"; - } - - # Windows - { - key = "ws"; - action = "split"; - options.desc = "Split"; - } - { - key = "wv"; - action = "vsplit"; - options.desc = "VSplit"; - } - { - key = "wd"; - action = "close"; - options.desc = "Close"; - } - ]; - }; -} diff --git a/home/programs/nvim/options.nix b/home/programs/nvim/options.nix deleted file mode 100644 index c9056c6..0000000 --- a/home/programs/nvim/options.nix +++ /dev/null @@ -1,141 +0,0 @@ -{ - programs.nixvim = { - globals.mapleader = " "; - diagnostic.settings = { - virtual_text = true; - virtual_improved = { current_line = "only"; }; - }; - opts = { - autoindent = true; - - smartindent = true; - - incsearch = true; - hlsearch = true; - wildmode = "list:longest"; - scrolloff = 8; - - swapfile = false; - conceallevel = 3; - clipboard = "unnamed,unnamedplus"; - - # Don't stop backspace at insert - backspace.__raw = '' - vim.list_extend(vim.opt.backspace:get(), { "nostop" }) - ''; - - # Keep visual indentation on wrapped lines - breakindent = true; - - # Hide command line unless needed - cmdheight = 0; - - # Insert mode completion options - completeopt = [ "menu" "menuone" "noselect" ]; - - # Raise a dialog asking if you wish to save the current file(s) - confirm = true; - - # Copy previous indentation on autoindenting - copyindent = true; - - # Highlight current line - cursorline = true; - - # Expand to spaces - expandtab = true; - - # Disable `~` on nonexistent lines - fillchars = { eob = " "; }; - - # Enable fold with all code unfolded - foldcolumn = "1"; - foldenable = true; - foldlevel = 99; - foldlevelstart = 99; - - # Ignore case in search patterns - ignorecase = true; - - # Show substitution preview in split window - inccommand = "split"; - - # Infer casing on word completion - infercase = true; - - # Global statusline - laststatus = 3; - - # Wrap lines at 'breakat' - linebreak = true; - - # Enable mouse support - mouse = "a"; - - # Show line numbers - number = true; - - # Preserve indentation as much as possible - preserveindent = true; - - # Height of the popup menu - pumheight = 10; - - # Display line numbers relative to current line - relativenumber = true; - - # Minimal number of lines to keep around the cursor - # This has the effect to move the view along with current line - #scrolloff = 999; - - # Number of spaces to use for indentation - shiftwidth = 2; - - # Disable showing modes in command line - showmode = false; - - # Always show tabline - showtabline = 2; - - # Show signs column - signcolumn = "yes"; - - # Override ignorecase if search pattern contains uppercase characters - smartcase = true; - - # Number of spaces input on - softtabstop = 2; - - # Open horizontal split below (:split) - splitbelow = true; - - # Open vertical split to the right (:vsplit) - splitright = true; - - # Number of spaces to represent a - tabstop = 2; - - # Enables 24-bit RGB color - termguicolors = true; - - # Shorter timeout duration - timeoutlen = 500; - - # Set window title to the filename - title = true; - - # Save undo history to undo file (in $XDG_STATE_HOME/nvim/undo) - undofile = true; - - # Enable virtual edit in visual block mode - # This has the effect of selecting empty cells beyond lines boundaries - virtualedit = "block"; - - # Disable line wrapping - wrap = false; - - # Disable making a backup before overwriting a file - writebackup = false; - }; - }; -} diff --git a/home/programs/nvim/plugins/cmp.nix b/home/programs/nvim/plugins/cmp.nix deleted file mode 100644 index b0c839b..0000000 --- a/home/programs/nvim/plugins/cmp.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ - programs.nixvim.plugins = { - luasnip.enable = true; - cmp-buffer = { enable = true; }; - cmp-emoji = { enable = true; }; - cmp-nvim-lsp = { enable = true; }; - cmp-path = { enable = true; }; - cmp_luasnip = { enable = true; }; - - cmp = { - enable = true; - settings = { - snippet.expand = - "function(args) require('luasnip').lsp_expand(args.body) end"; - sources = [ - { name = "nvim_lsp"; } - { name = "luasnip"; } - { - name = "buffer"; - option.get_bufnrs.__raw = "vim.api.nvim_list_bufs"; - } - { name = "nvim_lua"; } - { name = "mkdnflow"; } - { name = "render-markdown"; } - { name = "path"; } - ]; - - formatting = { - fields = [ "abbr" "kind" "menu" ]; - format = - # lua - '' - function(_, item) - local icons = { - Namespace = "󰌗", - Text = "󰉿", - Method = "󰆧", - Function = "󰆧", - Constructor = "", - Field = "󰜢", - Variable = "󰀫", - Class = "󰠱", - Interface = "", - Module = "", - Property = "󰜢", - Unit = "󰑭", - Value = "󰎠", - Enum = "", - Keyword = "󰌋", - Snippet = "", - Color = "󰏘", - File = "󰈚", - Reference = "󰈇", - Folder = "󰉋", - EnumMember = "", - Constant = "󰏿", - Struct = "󰙅", - Event = "", - Operator = "󰆕", - TypeParameter = "󰊄", - Table = "", - Object = "󰅩", - Tag = "", - Array = "[]", - Boolean = "", - Number = "", - Null = "󰟢", - String = "󰉿", - Calendar = "", - Watch = "󰥔", - Package = "", - Copilot = "", - Codeium = "", - TabNine = "", - } - - local icon = icons[item.kind] or "" - item.kind = string.format("%s %s", icon, item.kind or "") - return item - end - ''; - }; - - window = { - completion = { - winhighlight = - "FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel"; - scrollbar = false; - sidePadding = 0; - border = [ "╭" "─" "╮" "│" "╯" "─" "╰" "│" ]; - }; - - documentation = { - border = [ "╭" "─" "╮" "│" "╯" "─" "╰" "│" ]; - winhighlight = - "FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel"; - }; - }; - - mapping = { - "" = "cmp.mapping.select_next_item()"; - "" = "cmp.mapping.select_prev_item()"; - "" = "cmp.mapping.select_next_item()"; - "" = "cmp.mapping.select_prev_item()"; - "" = "cmp.mapping.select_next_item()"; - "" = "cmp.mapping.select_prev_item()"; - "" = "cmp.mapping.scroll_docs(-4)"; - "" = "cmp.mapping.scroll_docs(4)"; - "" = "cmp.mapping.complete()"; - "" = "cmp.mapping.close()"; - "" = - "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true })"; - }; - }; - }; - }; -} diff --git a/home/programs/nvim/plugins/floaterm.nix b/home/programs/nvim/plugins/floaterm.nix deleted file mode 100644 index f1d1796..0000000 --- a/home/programs/nvim/plugins/floaterm.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, ... }: { - programs.nixvim = { - plugins.floaterm.enable = true; - highlightOverride = { - FloatermBorder.fg = "#${config.lib.stylix.colors.base01}"; - }; - keymaps = [{ - key = "cn"; - action = - "FloatermNew --wintype=split --height=20 --title=nixy --autoclose=0 nixy"; - options.desc = "Nixy"; - }]; - }; -} diff --git a/home/programs/nvim/plugins/git.nix b/home/programs/nvim/plugins/git.nix deleted file mode 100644 index 2c01317..0000000 --- a/home/programs/nvim/plugins/git.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - programs.nixvim = { - plugins = { - gitsigns.enable = true; - snacks.settings = { lazygit.enable = true; }; - }; - keymaps = [{ - key = "gl"; - action = "lua Snacks.lazygit()"; - options.desc = "LazyGit"; - }]; - }; -} diff --git a/home/programs/nvim/plugins/lsp.nix b/home/programs/nvim/plugins/lsp.nix deleted file mode 100644 index 274b206..0000000 --- a/home/programs/nvim/plugins/lsp.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - programs.nixvim.plugins = { - lsp-format.enable = true; - lsp = { - enable = true; - inlayHints = true; - servers = { - bashls.enable = true; - gopls.enable = true; - ts_ls.enable = true; - nixd.enable = true; - tailwindcss.enable = true; - html.enable = true; - svelte.enable = true; - astro.enable = true; - }; - }; - none-ls = { - enable = true; - sources = { - completion = { luasnip.enable = true; }; - diagnostics = { - golangci_lint.enable = true; - statix.enable = true; - }; - formatting = { - gofmt.enable = true; - goimports.enable = true; - nixfmt.enable = true; - markdownlint.enable = true; - tidy.enable = true; - shellharden.enable = true; - shfmt.enable = true; - golines.enable = true; - gofumpt.enable = true; - }; - }; - }; - }; -} diff --git a/home/programs/nvim/plugins/markdown.nix b/home/programs/nvim/plugins/markdown.nix deleted file mode 100644 index ddd8f41..0000000 --- a/home/programs/nvim/plugins/markdown.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ config, ... }: -let - accent = "#${config.lib.stylix.colors.base0D}"; - muted = "#${config.lib.stylix.colors.base03}"; -in { - programs.nixvim = { - extraFiles."after/ftplugin/markdown.lua".text = '' - vim.bo.tabstop = 2 - vim.bo.shiftwidth = 2 - vim.bo.expandtab = true - vim.wo.cursorline = false - ''; - - # Plugins - plugins = { - # Render UI elements - render-markdown = { - enable = true; - settings = { completions.lsp.enabled = true; }; - }; - - mkdnflow = { - enable = true; - mappings = { - MkdnTableNextCell = { - key = ""; - modes = "i"; - }; - MkdnTablePrevCell = false; - }; - }; - }; - }; -} diff --git a/home/programs/nvim/plugins/mini.nix b/home/programs/nvim/plugins/mini.nix deleted file mode 100644 index 9a4bb8b..0000000 --- a/home/programs/nvim/plugins/mini.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, ... }: { - programs.nixvim = { - plugins.mini = { - enable = true; - mockDevIcons = true; - modules = { - icons = { }; - # TODO: Learn how to use this - bracketed = { }; - git = { }; - diff = { }; - starter = { }; - pairs = { }; - notify = { lsp_progress.enable = false; }; - indentscope = { }; - cursorword = { }; - comment = { }; - starter = { }; - }; - }; - }; -} diff --git a/home/programs/nvim/plugins/snacks.nix b/home/programs/nvim/plugins/snacks.nix deleted file mode 100644 index e6ba710..0000000 --- a/home/programs/nvim/plugins/snacks.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - programs.nixvim = { - plugins.snacks = { - enable = true; - settings = { - image = { - enable = true; - doc = { inline = false; }; - }; - quickfile.enable = true; - statuscolumn.enable = true; - zen.enable = true; - bufdelete.enable = true; - }; - }; - - keymaps = [ - { - key = "uz"; - action = "lua Snacks.zen()"; - options.desc = "Zen"; - } - { - key = "ud"; - action = "lua Snacks.dim.enable()"; - options.desc = "Dim"; - } - { - key = "uD"; - action = "lua Snacks.dim.disable()"; - options.desc = "Undim"; - } - { - key = "wc"; - action = "lua Snacks.bufdelete.all()"; - options.desc = "Close all buffers"; - } - ]; - }; -} diff --git a/home/programs/nvim/plugins/trouble.nix b/home/programs/nvim/plugins/trouble.nix deleted file mode 100644 index 2613274..0000000 --- a/home/programs/nvim/plugins/trouble.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ ctags ]; - - programs.nixvim = { - plugins = { - trouble.enable = true; - which-key.settings.spec = [{ - __unkeyed-1 = "t"; - mode = "n"; - group = "+trouble"; - }]; - }; - keymaps = [ - { - key = "tx"; - action = "Trouble diagnostics toggle"; - options.desc = "Diagnostics (Trouble)"; - } - { - key = "tX"; - action = "Trouble diagnostics toggle filter.buf=0"; - options.desc = "Buffer Diagnostics (Trouble)"; - } - { - key = "ts"; - action = "Trouble symbols toggle focus=false"; - options.desc = "Symbols (Trouble)"; - } - { - key = "tl"; - action = "Trouble lsp toggle focus=false win.position=right"; - options.desc = "LSP Definitions / references / ... (Trouble)"; - } - { - key = "tL"; - action = "Trouble loclist toggle"; - options.desc = "Location List (Trouble)"; - } - { - key = "tQ"; - action = "Trouble qflist toggle"; - options.desc = "Quickfix List (Trouble)"; - } - ]; - }; -} diff --git a/home/programs/nvim/plugins/utils.nix b/home/programs/nvim/plugins/utils.nix deleted file mode 100644 index ab1a80d..0000000 --- a/home/programs/nvim/plugins/utils.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ config, lib, pkgs, ... }: { - programs.nixvim = { - nixpkgs.config.allowUnfree = true; # For copilot - highlightOverride = { - WhichKeySeparator.bg = "#${config.lib.stylix.colors.base00}"; - }; - plugins = { - bufferline.enable = true; - copilot-vim = { - enable = true; - settings.node_command = lib.getExe pkgs.nodejs_20; - }; - flash.enable = true; - tmux-navigator.enable = true; - todo-comments.enable = true; - lualine = { enable = true; }; - aerial.enable = true; - treesitter = { - enable = true; - nixGrammars = true; - settings = { - ensure_installed = "all"; - indent.enable = true; - highlight.enable = true; - }; - }; - }; - keymaps = [{ - key = "ct"; - action = "AerialToggle"; - options.desc = "Aerial (tags)"; - }]; - }; -}