diff --git a/.editorconfig b/.editorconfig index c7fdc76d..2f767ae8 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,7 +14,7 @@ indent_style = space indent_size = 2 trim_trailing_whitespace = false -[*.{js,json,nix,yml,yaml,toml}] +[*.{js,json,nix,yml,yaml}] indent_style = space indent_size = 2 tab_width = 2 diff --git a/.github/README.md b/.github/README.md index 7c0974c3..01395211 100644 --- a/.github/README.md +++ b/.github/README.md @@ -237,7 +237,7 @@ customizability of plugin inputs, which is one of our primary features. an imperative path (e.g., `~/.config/nvim`) for my Neovim configuration instead of a configuration generated from Nix? -**A**: Yes! Add `"~/.config/nvim"` to `vim.additionalRuntimePaths = [ ... ]` and +**A**: Yes! Add `"~/.config.nvim"` to `vim.additionalRuntimePaths = [ ... ]` and any plugins you want to load to `vim.startPlugins`. This will load your configuration from `~/.config/nvim`. You may still use `vim.*` to modify Neovim's behaviour with Nix. diff --git a/.github/typos.toml b/.github/typos.toml index 2cd18dde..2ea46a8c 100644 --- a/.github/typos.toml +++ b/.github/typos.toml @@ -1,10 +1,5 @@ -files.extend-exclude = ["npins/sources.json"] -default.extend-ignore-words-re = [ - "(?i)(noice)", - "befores", - "annote", - "viw", - "BA", # somehow "BANanaD3V" is valid, but BA is not... +default.extend-ignore-words-re = ["(?i)(noice)", "befores", "annote", "viw"] +files.extend-exclude = [ +"npins/sources.json" ] - diff --git a/.github/workflows/cachix.yml b/.github/workflows/cachix.yml index 959a04b6..cac8ee51 100644 --- a/.github/workflows/cachix.yml +++ b/.github/workflows/cachix.yml @@ -36,7 +36,7 @@ jobs: - name: Install Nix uses: DeterminateSystems/nix-installer-action@main - - uses: cachix/cachix-action@v16 + - uses: cachix/cachix-action@v15 with: authToken: ${{ secrets.CACHIX_TOKEN }} extraPullNames: nix-community diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index bd52df0d..c0165d30 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -3,9 +3,7 @@ ## Breaking changes - `git-conflict` keybinds are now prefixed with `` to avoid conflicting - with builtins. - -- `alpha` is now configured with nix, default config removed. + with builtins [NotAShelf](https://github.com/notashelf): @@ -20,7 +18,7 @@ - Add a search widget to the options page in the nvf manual. - Add [render-markdown.nvim] under - `languages.markdown.extensions.render-markdown-nvim`. + `languages.markdown.extensions.render-markdown-nvim` - Implement [](#opt-vim.git.gitsigns.setupOpts) for user-specified setup table in gitsigns configuration. @@ -54,14 +52,6 @@ - Add [yazi.nvim] as a companion plugin for Yazi, the terminal file manager. -- Add [](#opt-vim.autocmds) and [](#opt-vim.augroups) to allow declaring - autocommands via Nix. - -- Fix plugin `setupOpts` for yanky.nvim and assert if shada is configured as a - backend while shada is disabled in Neovim options. - -- Add [yazi.nvim] as a companion plugin for Yazi, the terminal file manager. - [amadaluzia](https://github.com/amadaluzia): [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim @@ -72,7 +62,7 @@ [blink.cmp]: https://github.com/saghen/blink.cmp -- Add [blink.cmp] support. +- Add [blink.cmp] support [diniamo](https://github.com/diniamo): @@ -86,8 +76,8 @@ [aerial.nvim]: (https://github.com/stevearc/aerial.nvim) [nvim-ufo]: (https://github.com/kevinhwang91/nvim-ufo) -- Add [aerial.nvim]. -- Add [nvim-ufo]. +- Add [aerial.nvim] +- Add [nvim-ufo] [LilleAila](https://github.com/LilleAila): @@ -159,10 +149,8 @@ [thamenato](https://github.com/thamenato): [ruff]: (https://github.com/astral-sh/ruff) -[cue]: (https://cuelang.org/) - Add [ruff] as a formatter option in `vim.languages.python.format.type`. -- Add [cue] support under `vim.languages.cue`. [ARCIII](https://github.com/ArmandoCIII): @@ -172,7 +160,7 @@ Inspiration from `vim.languages.clang.dap` implementation. - Add [leetcode.nvim] plugin under `vim.utility.leetcode-nvim`. -[nezia1](https://github.com/nezia1): +[nezia1](https://github.com/nezia1) - Add support for [nixd](https://github.com/nix-community/nixd) language server. @@ -182,73 +170,23 @@ available plugins, under `vim.utility.multicursors`. - Add [hydra.nvim](https://github.com/nvimtools/hydra.nvim) as dependency for `multicursors.nvim` and lazy loads by default. - -[folospior](https://github.com/folospior): + [folospior](https://github.com/folospior) - Fix plugin name for lsp/lspkind. -- Move `vim-illuminate` to `setupOpts format` - -[iynaix](https://github.com/iynaix): +[iynaix](https://github.com/iynaix) - Add lsp options support for [nixd](https://github.com/nix-community/nixd) language server. -[Mr-Helpful](https://github.com/Mr-Helpful): +[Mr-Helpful](https://github.com/Mr-Helpful) -- Corrects pin names used for nvim themes. +- Corrects pin names used for nvim themes -[Libadoxon](https://github.com/Libadoxon): +[Libadoxon](https://github.com/Libadoxon) - Add [git-conflict](https://github.com/akinsho/git-conflict.nvim) plugin for - resolving git conflicts. + resolving git conflicts - Add formatters for go: [gofmt](https://go.dev/blog/gofmt), [golines](https://github.com/segmentio/golines) and - [gofumpt](https://github.com/mvdan/gofumpt). - -[UltraGhostie](https://github.com/UltraGhostie) - -- Add [harpoon](https://github.com/ThePrimeagen/harpoon) plugin for navigation - -[MaxMur](https://github.com/TheMaxMur): - -- Add YAML support under `vim.languages.yaml`. - -[alfarel](https://github.com/alfarelcynthesis): - -- Add missing `yazi.nvim` dependency (`snacks.nvim`). - -- Add [mkdir.nvim](https://github.com/jghauser/mkdir.nvim) plugin for automatic - creation of parent directories when editing a nested file. -- Add [nix-develop.nvim](https://github.com/figsoda/nix-develop.nvim) plugin for - in-neovim `nix develop`, `nix shell` and more. -- Add [direnv.vim](https://github.com/direnv/direnv.vim) plugin for automatic - syncing of nvim shell environment with direnv's. -- Add [blink.cmp] source options and some default-disabled sources. -- Add [blink.cmp] option to add - [friendly-snippets](https://github.com/rafamadriz/friendly-snippets) so - blink.cmp can source snippets from it. - -[TheColorman](https://github.com/TheColorman): - -- Fix plugin `setupOpts` for `neovim-session-manager` having an invalid value - for `autoload_mode`. - -[esdevries](https://github.com/esdevries): - -[projekt0n/github-nvim-theme]: https://github.com/projekt0n/github-nvim-theme - -- Add `github-nvim-theme` theme from [projekt0n/github-nvim-theme]. - -[BANanaD3V](https://github.com/BANanaD3V): - -- `alpha` is now configured with nix. - -[viicslen](https://github.com/viicslen): - -- Add `intelephense` language server support under - `vim.languages.php.lsp.server` - -[Butzist](https://github.com/butzist): - -- Add Helm chart support under `vim.languages.helm`. + [gofumpt](https://github.com/mvdan/gofumpt) diff --git a/modules/neovim/init/autocmds.nix b/modules/neovim/init/autocmds.nix deleted file mode 100644 index 5da7bc55..00000000 --- a/modules/neovim/init/autocmds.nix +++ /dev/null @@ -1,185 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.options) mkOption mkEnableOption literalExpression; - inherit (lib.lists) filter; - inherit (lib.strings) optionalString; - inherit (lib.types) nullOr submodule listOf str bool; - inherit (lib.nvim.types) luaInline; - inherit (lib.nvim.lua) toLuaObject; - inherit (lib.nvim.dag) entryAfter; - - autocommandType = submodule { - options = { - enable = - mkEnableOption "" - // { - default = true; - description = "Whether to enable this autocommand"; - }; - - event = mkOption { - type = nullOr (listOf str); - default = null; - example = ["BufRead" "BufWritePre"]; - description = "The event(s) that trigger the autocommand."; - }; - - pattern = mkOption { - type = nullOr (listOf str); - default = null; - example = ["*.lua" "*.vim"]; - description = "The file pattern(s) that determine when the autocommand applies)."; - }; - - callback = mkOption { - type = nullOr luaInline; - default = null; - example = literalExpression '' - mkLuaInline ''' - function() - print("Saving a Lua file...") - end - '''' - ''; - description = "The file pattern(s) that determine when the autocommand applies."; - }; - - command = mkOption { - type = nullOr str; - default = null; - description = "Vim command string instead of a Lua function."; - }; - - group = mkOption { - type = nullOr str; - default = null; - example = "MyAutoCmdGroup"; - description = "An optional autocommand group to manage related autocommands."; - }; - - desc = mkOption { - type = nullOr str; - default = null; - example = "Notify when saving a Lua file"; - description = "A description for the autocommand."; - }; - - once = mkOption { - type = bool; - default = false; - description = "Whether autocommand run only once."; - }; - - nested = mkOption { - type = bool; - default = false; - description = "Whether to allow nested autocommands to trigger."; - }; - }; - }; - - autogroupType = submodule { - options = { - enable = - mkEnableOption "" - // { - default = true; - description = "Whether to enable this autogroup"; - }; - - name = mkOption { - type = str; - example = "MyAutoCmdGroup"; - description = "The name of the autocommand group."; - }; - - clear = mkOption { - type = bool; - default = true; - description = '' - Whether to clear existing autocommands in this group before defining new ones. - This helps avoid duplicate autocommands. - ''; - }; - }; - }; - - cfg = config.vim; -in { - options.vim = { - augroups = mkOption { - type = listOf autogroupType; - default = []; - description = '' - A list of Neovim autogroups, which are used to organize and manage related - autocommands together. Groups allow multiple autocommands to be cleared - or redefined collectively, preventing duplicate definitions. - - Each autogroup consists of a name, a boolean indicating whether to clear - existing autocommands, and a list of associated autocommands. - ''; - }; - - autocmds = mkOption { - type = listOf autocommandType; - default = []; - description = '' - A list of Neovim autocommands to be registered. - - Each entry defines an autocommand, specifying events, patterns, optional - callbacks, commands, groups, and execution settings. - ''; - }; - }; - - config = { - vim = let - enabledAutocommands = filter (cmd: cmd.enable) cfg.autocmds; - enabledAutogroups = filter (au: au.enable) cfg.augroups; - in { - luaConfigRC = { - augroups = entryAfter ["pluginConfigs"] (optionalString (enabledAutogroups != []) '' - local nvf_autogroups = {} - for _, group in ipairs(${toLuaObject enabledAutogroups}) do - if group.name then - nvf_autogroups[group.name] = { clear = group.clear } - end - end - - for group_name, options in pairs(nvf_autogroups) do - vim.api.nvim_create_augroup(group_name, options) - end - ''); - - autocmds = entryAfter ["pluginConfigs"] (optionalString (enabledAutocommands != []) '' - local nvf_autocommands = ${toLuaObject enabledAutocommands} - for _, autocmd in ipairs(nvf_autocommands) do - vim.api.nvim_create_autocmd( - autocmd.event, - { - group = autocmd.group, - pattern = autocmd.pattern, - buffer = autocmd.buffer, - desc = autocmd.desc, - callback = autocmd.callback, - command = autocmd.command, - once = autocmd.once, - nested = autocmd.nested - } - ) - end - ''); - }; - }; - - assertions = [ - { - assertion = builtins.all (cmd: (cmd.command == null || cmd.callback == null)) cfg.autocmds; - message = "An autocommand cannot have both 'command' and 'callback' defined at the same time."; - } - ]; - }; -} diff --git a/modules/neovim/init/default.nix b/modules/neovim/init/default.nix index ac9d29e5..b0c7e0ce 100644 --- a/modules/neovim/init/default.nix +++ b/modules/neovim/init/default.nix @@ -1,6 +1,5 @@ { imports = [ - ./autocmds.nix ./basic.nix ./debug.nix ./highlight.nix diff --git a/modules/plugins/completion/blink-cmp/blink-cmp.nix b/modules/plugins/completion/blink-cmp/blink-cmp.nix index 4290e1cb..13cdb9f4 100644 --- a/modules/plugins/completion/blink-cmp/blink-cmp.nix +++ b/modules/plugins/completion/blink-cmp/blink-cmp.nix @@ -2,7 +2,7 @@ inherit (lib.options) mkEnableOption mkOption literalMD; inherit (lib.types) listOf str either attrsOf submodule enum anything int nullOr; inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.types) mkPluginSetupOption luaInline pluginType; + inherit (lib.nvim.types) mkPluginSetupOption luaInline; inherit (lib.nvim.binds) mkMappingOption; inherit (lib.nvim.config) mkBool; @@ -118,66 +118,5 @@ in { scrollDocsUp = mkMappingOption "Scroll docs up [blink.cmp]" ""; scrollDocsDown = mkMappingOption "Scroll docs down [blink.cmp]" ""; }; - - sourcePlugins = let - sourcePluginType = submodule { - options = { - package = mkOption { - type = pluginType; - description = '' - `blink-cmp` source plugin package. - ''; - }; - module = mkOption { - type = str; - description = '' - Value of {option}`vim.autocomplete.blink-cmp.setupOpts.sources.providers..module`. - - Should be present in the source's documentation. - ''; - }; - enable = mkEnableOption "this source"; - }; - }; - in - mkOption { - type = submodule { - freeformType = attrsOf sourcePluginType; - options = let - defaultSourcePluginOption = name: package: module: { - package = mkOption { - type = pluginType; - default = package; - description = '' - `blink-cmp` ${name} source plugin package. - ''; - }; - module = mkOption { - type = str; - default = module; - description = '' - Value of {option}`vim.autocomplete.blink-cmp.setupOpts.sources.providers.${name}.module`. - ''; - }; - enable = mkEnableOption "${name} source"; - }; - in { - # emoji completion after : - emoji = defaultSourcePluginOption "emoji" "blink-emoji-nvim" "blink-emoji"; - # spelling suggestions as completions - spell = defaultSourcePluginOption "spell" "blink-cmp-spell" "blink-cmp-spell"; - # words from nearby files - ripgrep = defaultSourcePluginOption "ripgrep" "blink-ripgrep-nvim" "blink-ripgrep"; - }; - }; - default = {}; - description = '' - `blink.cmp` sources. - - Attribute names must be source names used in {option}`vim.autocomplete.blink-cmp.setupOpts.sources.default`. - ''; - }; - - friendly-snippets.enable = mkEnableOption "friendly-snippets for blink to source from automatically"; }; } diff --git a/modules/plugins/completion/blink-cmp/config.nix b/modules/plugins/completion/blink-cmp/config.nix index 875a4fd4..914821f9 100644 --- a/modules/plugins/completion/blink-cmp/config.nix +++ b/modules/plugins/completion/blink-cmp/config.nix @@ -6,8 +6,6 @@ inherit (lib.modules) mkIf; inherit (lib.strings) optionalString; inherit (lib.generators) mkLuaInline; - inherit (lib.attrsets) attrValues filterAttrs; - inherit (lib.lists) map optional; inherit (lib.nvim.lua) toLuaObject; inherit (builtins) concatStringsSep typeOf tryEval attrNames mapAttrs; @@ -21,12 +19,9 @@ else if (plugin ? pname && (tryEval plugin.pname).success) then plugin.pname else plugin.name; - - enabledBlinkSources = filterAttrs (_source: definition: definition.enable) cfg.sourcePlugins; - blinkSourcePlugins = map (definition: definition.package) (attrValues enabledBlinkSources); in { vim = mkIf cfg.enable { - startPlugins = ["blink-compat"] ++ blinkSourcePlugins ++ (optional cfg.friendly-snippets.enable "friendly-snippets"); + startPlugins = ["blink-compat"]; lazy.plugins = { blink-cmp = { package = "blink-cmp"; @@ -37,14 +32,12 @@ in { # # event = ["InsertEnter" "CmdlineEnter"]; - after = - # lua - '' - ${optionalString config.vim.lazy.enable - (concatStringsSep "\n" (map - (package: "require('lz.n').trigger_load(${toLuaObject (getPluginName package)})") - cmpCfg.sourcePlugins))} - ''; + after = '' + ${optionalString config.vim.lazy.enable + (concatStringsSep "\n" (map + (package: "require('lz.n').trigger_load(${toLuaObject (getPluginName package)})") + cmpCfg.sourcePlugins))} + ''; }; }; @@ -52,26 +45,13 @@ in { enableSharedCmpSources = true; blink-cmp.setupOpts = { sources = { - default = - [ - "lsp" - "path" - "snippets" - "buffer" - ] - ++ (attrNames cmpCfg.sources) - ++ (attrNames enabledBlinkSources); + default = ["lsp" "path" "snippets" "buffer"] ++ (attrNames cmpCfg.sources); providers = mapAttrs (name: _: { inherit name; module = "blink.compat.source"; }) - cmpCfg.sources - // (mapAttrs (name: definition: { - inherit name; - inherit (definition) module; - }) - enabledBlinkSources); + cmpCfg.sources; }; snippets = mkIf config.vim.snippets.luasnip.enable { preset = "luasnip"; @@ -87,18 +67,16 @@ in { ${mappings.next} = [ "select_next" "snippet_forward" - (mkLuaInline - # lua - '' - function(cmp) - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - has_words_before = col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil + (mkLuaInline '' + function(cmp) + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + has_words_before = col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil - if has_words_before then - return cmp.show() - end + if has_words_before then + return cmp.show() end - '') + end + '') "fallback" ]; ${mappings.previous} = [ diff --git a/modules/plugins/dashboard/alpha/alpha.nix b/modules/plugins/dashboard/alpha/alpha.nix index 90d02f30..d5329cc7 100644 --- a/modules/plugins/dashboard/alpha/alpha.nix +++ b/modules/plugins/dashboard/alpha/alpha.nix @@ -1,23 +1,7 @@ {lib, ...}: let - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) listOf attrsOf anything nullOr enum; + inherit (lib.options) mkEnableOption; in { options.vim.dashboard.alpha = { - enable = mkEnableOption "fast and fully programmable greeter for neovim [alpha.nvim]"; - theme = mkOption { - type = nullOr (enum ["dashboard" "startify" "theta"]); - default = "dashboard"; - description = "Alpha default theme to use"; - }; - layout = mkOption { - type = listOf (attrsOf anything); - default = []; - description = "Alpha dashboard layout"; - }; - opts = mkOption { - type = attrsOf anything; - default = {}; - description = "Optional global options"; - }; + enable = mkEnableOption "fast and fully programmable greeter for neovim [alpha.mvim]"; }; } diff --git a/modules/plugins/dashboard/alpha/config.nix b/modules/plugins/dashboard/alpha/config.nix index 804189b9..bb648a50 100644 --- a/modules/plugins/dashboard/alpha/config.nix +++ b/modules/plugins/dashboard/alpha/config.nix @@ -5,11 +5,8 @@ }: let inherit (lib.modules) mkIf; inherit (lib.nvim.dag) entryAnywhere; - inherit (lib.nvim.lua) toLuaObject; cfg = config.vim.dashboard.alpha; - themeDefined = cfg.theme != null; - layoutDefined = cfg.layout != []; in { config = mkIf cfg.enable { vim.startPlugins = [ @@ -17,30 +14,207 @@ in { "nvim-web-devicons" ]; - vim.pluginRC.alpha = let - setupOpts = - if themeDefined - then lib.generators.mkLuaInline "require'alpha.themes.${cfg.theme}'.config" - else { - inherit (cfg) layout opts; - }; - in '' - require('alpha').setup(${toLuaObject setupOpts}) - ''; + # the entire credit for this dashboard configuration to https://github.com/Rishabh672003 + # honestly, excellent work + vim.pluginRC.alpha = entryAnywhere '' + local alpha = require("alpha") + local plenary_path = require("plenary.path") + local dashboard = require("alpha.themes.dashboard") + local cdir = vim.fn.getcwd() + local if_nil = vim.F.if_nil - assertions = [ - { - assertion = themeDefined || layoutDefined; - message = '' - One of 'theme' or 'layout' should be defined in Alpha configuration. - ''; + local nvim_web_devicons = { + enabled = true, + highlight = true, } - { - assertion = !(themeDefined && layoutDefined); - message = '' - 'theme' and 'layout' cannot be defined at the same time. - ''; + + local function get_extension(fn) + local match = fn:match("^.+(%..+)$") + local ext = "" + if match ~= nil then + ext = match:sub(2) + end + return ext + end + + local function icon(fn) + local nwd = require("nvim-web-devicons") + local ext = get_extension(fn) + return nwd.get_icon(fn, ext, { default = true }) + end + + local function file_button(fn, sc, short_fn) + short_fn = short_fn or fn + local ico_txt + local fb_hl = {} + + if nvim_web_devicons.enabled then + local ico, hl = icon(fn) + local hl_option_type = type(nvim_web_devicons.highlight) + if hl_option_type == "boolean" then + if hl and nvim_web_devicons.highlight then + table.insert(fb_hl, { hl, 0, 3 }) + end + end + if hl_option_type == "string" then + table.insert(fb_hl, { nvim_web_devicons.highlight, 0, 3 }) + end + ico_txt = ico .. " " + else + ico_txt = "" + end + local file_button_el = dashboard.button(sc, ico_txt .. short_fn, "e " .. fn .. " ") + local fn_start = short_fn:match(".*[/\\]") + if fn_start ~= nil then + table.insert(fb_hl, { "Comment", #ico_txt - 2, #fn_start + #ico_txt }) + end + file_button_el.opts.hl = fb_hl + return file_button_el + end + + local default_mru_ignore = { "gitcommit" } + + local mru_opts = { + ignore = function(path, ext) + return (string.find(path, "COMMIT_EDITMSG")) or (vim.tbl_contains(default_mru_ignore, ext)) + end, } - ]; + + --- @param start number + --- @param cwd string optional + --- @param items_number number optional number of items to generate, default = 10 + local function mru(start, cwd, items_number, opts) + opts = opts or mru_opts + items_number = if_nil(items_number, 15) + + local oldfiles = {} + for _, v in pairs(vim.v.oldfiles) do + if #oldfiles == items_number then + break + end + local cwd_cond + if not cwd then + cwd_cond = true + else + cwd_cond = vim.startswith(v, cwd) + end + local ignore = (opts.ignore and opts.ignore(v, get_extension(v))) or false + if (vim.fn.filereadable(v) == 1) and cwd_cond and not ignore then + oldfiles[#oldfiles + 1] = v + end + end + local target_width = 35 + + local tbl = {} + for i, fn in ipairs(oldfiles) do + local short_fn + if cwd then + short_fn = vim.fn.fnamemodify(fn, ":.") + else + short_fn = vim.fn.fnamemodify(fn, ":~") + end + + if #short_fn > target_width then + short_fn = plenary_path.new(short_fn):shorten(1, { -2, -1 }) + if #short_fn > target_width then + short_fn = plenary_path.new(short_fn):shorten(1, { -1 }) + end + end + + local shortcut = tostring(i + start - 1) + + local file_button_el = file_button(fn, shortcut, short_fn) + tbl[i] = file_button_el + end + return { + type = "group", + val = tbl, + opts = {}, + } + end + + local default_header = { + type = "text", + val = { + + [[███ ██ ███████ ██████ ██ ██ ██ ███ ███]], + [[████ ██ ██ ██ ██ ██ ██ ██ ████ ████]], + [[██ ██ ██ █████ ██ ██ ██ ██ ██ ██ ████ ██]], + [[██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██]], + [[██ ████ ███████ ██████ ████ ██ ██ ██]], + + -- [[ __ ]], + -- [[ ___ ___ ___ __ __ /\_\ ___ ___ ]], + -- [[ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ ]], + -- [[/\ \/\ \/\ __//\ \_\ \ \ \_/ |\ \ \/\ \/\ \/\ \ ]], + -- [[\ \_\ \_\ \____\ \____/\ \___/ \ \_\ \_\ \_\ \_\]], + -- [[ \/_/\/_/\/____/\/___/ \/__/ \/_/\/_/\/_/\/_/]], + }, + opts = { + position = "center", + hl = "Type", + -- wrap = "overflow"; + }, + } + + local section_mru = { + type = "group", + val = { + { + type = "text", + val = "Recent files", + opts = { + hl = "SpecialComment", + shrink_margin = false, + position = "center", + }, + }, + { type = "padding", val = 1 }, + { + type = "group", + val = function() + return { mru(0, cdir) } + end, + opts = { shrink_margin = false }, + }, + }, + } + + local buttons = { + type = "group", + val = { + { type = "text", val = "Quick links", opts = { hl = "SpecialComment", position = "center" } }, + { type = "padding", val = 1 }, + -- TODO: buttons should be added based on whether or not the relevant plugin is available + dashboard.button("e", " New file", "ene"), -- available all the time + dashboard.button("SPC F", "󰈞 Find file"), -- telescope + dashboard.button("SPC ff", "󰊄 Live grep"), -- telescope + dashboard.button("SPC p", " Projects"), -- any project + dashboard.button("q", "󰅚 Quit", "qa"), -- available all the time + }, + position = "center", + } + + local config = { + layout = { + { type = "padding", val = 2 }, + default_header, + { type = "padding", val = 2 }, + section_mru, + { type = "padding", val = 2 }, + buttons, + }, + opts = { + margin = 5, + setup = function() + vim.cmd([[ + autocmd alpha_temp DirChanged * lua require('alpha').redraw() + ]]) + end, + }, + } + + alpha.setup(config) + ''; }; } diff --git a/modules/plugins/languages/cue.nix b/modules/plugins/languages/cue.nix deleted file mode 100644 index 313e3233..00000000 --- a/modules/plugins/languages/cue.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) package; - inherit (lib.nvim.types) mkGrammarOption; - - cfg = config.vim.languages.cue; -in { - options.vim.languages.cue = { - enable = mkEnableOption "CUE language support"; - - treesitter = { - enable = mkEnableOption "CUE treesitter" // {default = config.vim.languages.enableTreesitter;}; - - package = mkGrammarOption pkgs "cue"; - }; - - lsp = { - enable = mkEnableOption "CUE LSP support" // {default = config.vim.languages.enableLSP;}; - - package = mkOption { - type = package; - default = pkgs.cue; - description = "cue lsp implementation"; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.treesitter.enable { - vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; - }) - - (mkIf cfg.lsp.enable { - vim.lsp.lspconfig.enable = true; - vim.lsp.lspconfig.sources.cue-lsp = '' - lspconfig.cue.setup { - capabilities = capabilities, - on_attach = default_on_attach, - cmd = {"${cfg.lsp.package}/bin/cue", "lsp"}, - } - ''; - }) - ]); -} diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index 20acfb6c..219e04fb 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -5,7 +5,6 @@ in { ./asm.nix ./astro.nix ./bash.nix - ./cue.nix ./dart.nix ./clang.nix ./css.nix @@ -13,7 +12,6 @@ in { ./gleam.nix ./go.nix ./hcl.nix - ./helm.nix ./kotlin.nix ./html.nix ./haskell.nix @@ -41,7 +39,6 @@ in { ./nu.nix ./odin.nix ./wgsl.nix - ./yaml.nix ./ruby.nix ]; diff --git a/modules/plugins/languages/helm.nix b/modules/plugins/languages/helm.nix deleted file mode 100644 index d3fd636e..00000000 --- a/modules/plugins/languages/helm.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - inherit (builtins) attrNames; - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.lists) isList; - inherit (lib.types) enum either listOf package str; - inherit (lib.nvim.types) mkGrammarOption; - inherit (lib.nvim.lua) expToLua; - - cfg = config.vim.languages.helm; - yamlCfg = config.vim.languages.yaml; - - helmCmd = - if isList cfg.lsp.package - then cfg.lsp.package - else ["${cfg.lsp.package}/bin/helm_ls" "serve"]; - yamlCmd = - if isList yamlCfg.lsp.package - then builtins.elemAt yamlCfg.lsp.package 0 - else "${yamlCfg.lsp.package}/bin/yaml-language-server"; - - defaultServer = "helm-ls"; - servers = { - helm-ls = { - package = pkgs.helm-ls; - lspConfig = '' - lspconfig.helm_ls.setup { - capabilities = capabilities, - on_attach = default_on_attach, - cmd = ${expToLua helmCmd}, - settings = { - ['helm-ls'] = { - yamlls = { - path = "${yamlCmd}" - } - } - } - } - ''; - }; - }; -in { - options.vim.languages.helm = { - enable = mkEnableOption "Helm language support"; - - treesitter = { - enable = mkEnableOption "Helm treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = mkGrammarOption pkgs "helm"; - }; - - lsp = { - enable = mkEnableOption "Helm LSP support" // {default = config.vim.languages.enableLSP;}; - - server = mkOption { - description = "Helm LSP server to use"; - type = enum (attrNames servers); - default = defaultServer; - }; - - package = mkOption { - description = "Helm LSP server package"; - type = either package (listOf str); - default = servers.${cfg.lsp.server}.package; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.treesitter.enable { - vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; - }) - - (mkIf cfg.lsp.enable { - vim.lsp.lspconfig.enable = true; - vim.lsp.lspconfig.sources.helm-lsp = servers.${cfg.lsp.server}.lspConfig; - }) - - { - # Enables filetype detection - vim.startPlugins = [pkgs.vimPlugins.vim-helm]; - } - ]); -} diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index 54c11af2..1ae2693e 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -121,6 +121,8 @@ ) ''; }; + + nixpkgs-fmt = null; # removed }; defaultDiagnosticsProvider = ["statix" "deadnix"]; @@ -217,6 +219,7 @@ in { ${concatStringsSep ", " (attrNames formats)} ''; } + { assertion = cfg.lsp.server != "rnix"; message = '' diff --git a/modules/plugins/languages/php.nix b/modules/plugins/languages/php.nix index 4dccc8cd..d921b11d 100644 --- a/modules/plugins/languages/php.nix +++ b/modules/plugins/languages/php.nix @@ -64,26 +64,6 @@ } ''; }; - - intelephense = { - package = pkgs.intelephense; - lspConfig = '' - lspconfig.intelephense.setup{ - capabilities = capabilities, - on_attach = default_on_attach, - cmd = ${ - if isList cfg.lsp.package - then expToLua cfg.lsp.package - else '' - { - "${getExe cfg.lsp.package}", - "--stdio" - }, - '' - } - } - ''; - }; }; in { options.vim.languages.php = { diff --git a/modules/plugins/languages/rust.nix b/modules/plugins/languages/rust.nix index aea10687..7e9cb627 100644 --- a/modules/plugins/languages/rust.nix +++ b/modules/plugins/languages/rust.nix @@ -62,15 +62,6 @@ in { description = "Options to pass to rust analyzer"; type = str; default = ""; - example = '' - ['rust-analyzer'] = { - cargo = {allFeature = true}, - checkOnSave = true, - procMacro = { - enable = true, - }, - }, - ''; }; }; @@ -151,9 +142,6 @@ in { then expToLua cfg.lsp.package else ''{"${cfg.lsp.package}/bin/rust-analyzer"}'' }, - default_settings = { - ${cfg.lsp.opts} - }, on_attach = function(client, bufnr) default_on_attach(client, bufnr) local opts = { noremap=true, silent=true, buffer = bufnr } diff --git a/modules/plugins/languages/yaml.nix b/modules/plugins/languages/yaml.nix deleted file mode 100644 index c84b17cd..00000000 --- a/modules/plugins/languages/yaml.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - inherit (builtins) attrNames; - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.lists) isList; - inherit (lib.types) enum either listOf package str; - inherit (lib.nvim.types) mkGrammarOption; - inherit (lib.nvim.lua) expToLua; - - cfg = config.vim.languages.yaml; - - onAttach = - if config.vim.languages.helm.lsp.enable - then '' - on_attach = function(client, bufnr) - local filetype = vim.bo[bufnr].filetype - if filetype == "helm" then - client.stop() - end - end'' - else "on_attach = default_on_attach"; - - defaultServer = "yaml-language-server"; - servers = { - yaml-language-server = { - package = pkgs.nodePackages.yaml-language-server; - lspConfig = '' - - - lspconfig.yamlls.setup { - capabilities = capabilities, - ${onAttach}, - cmd = ${ - if isList cfg.lsp.package - then expToLua cfg.lsp.package - else ''{"${cfg.lsp.package}/bin/yaml-language-server", "--stdio"}'' - }, - } - ''; - }; - }; -in { - options.vim.languages.yaml = { - enable = mkEnableOption "YAML language support"; - - treesitter = { - enable = mkEnableOption "YAML treesitter" // {default = config.vim.languages.enableTreesitter;}; - - package = mkGrammarOption pkgs "yaml"; - }; - - lsp = { - enable = mkEnableOption "YAML LSP support" // {default = config.vim.languages.enableLSP;}; - - server = mkOption { - type = enum (attrNames servers); - default = defaultServer; - description = "YAML LSP server to use"; - }; - - package = mkOption { - type = either package (listOf str); - default = servers.${cfg.lsp.server}.package; - description = "YAML LSP server package"; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.treesitter.enable { - vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; - }) - - (mkIf cfg.lsp.enable { - vim.lsp.lspconfig.enable = true; - vim.lsp.lspconfig.sources.yaml-lsp = servers.${cfg.lsp.server}.lspConfig; - }) - ]); -} diff --git a/modules/plugins/lsp/nvim-docs-view/nvim-docs-view.nix b/modules/plugins/lsp/nvim-docs-view/nvim-docs-view.nix index df571123..105aebec 100644 --- a/modules/plugins/lsp/nvim-docs-view/nvim-docs-view.nix +++ b/modules/plugins/lsp/nvim-docs-view/nvim-docs-view.nix @@ -57,8 +57,8 @@ in { }; mappings = { - viewToggle = mkMappingOption "Open or close the docs view panel" "lvt"; - viewUpdate = mkMappingOption "Manually update the docs view panel" "lvu"; + viewToggle = mkMappingOption "Open or close the docs view panel" "lvt"; + viewUpdate = mkMappingOption "Manually update the docs view panel" "lvu"; }; }; } diff --git a/modules/plugins/lsp/otter/config.nix b/modules/plugins/lsp/otter/config.nix index b1b045d8..c8a2d3c6 100644 --- a/modules/plugins/lsp/otter/config.nix +++ b/modules/plugins/lsp/otter/config.nix @@ -15,12 +15,13 @@ mappings = addDescriptionsToMappings cfg.otter-nvim.mappings mappingDefinitions; in { config = mkIf (cfg.enable && cfg.otter-nvim.enable) { - warnings = [ - # TODO: remove warning when we update to nvim 0.11 - (mkIf config.vim.utility.ccc.enable '' - ccc and otter occasionally have small conflicts that will disappear with nvim 0.11. - In the meantime, otter handles it by throwing a warning, but both plugins will work. - '') + assertions = [ + { + assertion = !config.vim.utility.ccc.enable; + message = '' + ccc and otter have a breaking conflict. It's been reported upstream. Until it's fixed, disable one of them + ''; + } ]; vim = { startPlugins = ["otter-nvim"]; diff --git a/modules/plugins/session/nvim-session-manager/nvim-session-manager.nix b/modules/plugins/session/nvim-session-manager/nvim-session-manager.nix index e60a4a5d..05d0b01b 100644 --- a/modules/plugins/session/nvim-session-manager/nvim-session-manager.nix +++ b/modules/plugins/session/nvim-session-manager/nvim-session-manager.nix @@ -1,10 +1,6 @@ {lib, ...}: let - inherit (lib.options) mkOption mkEnableOption; - inherit (lib.modules) mkRenamedOptionModule; - inherit (lib.strings) isString; - inherit (lib.types) nullOr str bool int enum listOf either; - inherit (lib.generators) mkLuaInline; - inherit (lib.nvim.types) luaInline mkPluginSetupOption; + inherit (lib.types) nullOr str bool; + inherit (lib) mkEnableOption mkOption types mkRenamedOptionModule; in { imports = let renameSetupOpt = oldPath: newPath: @@ -54,100 +50,68 @@ in { usePicker = mkOption { type = bool; default = true; - description = '' - Whether we should use `dressing.nvim` to build a session picker UI - ''; + description = "Whether or not we should use dressing.nvim to build a session picker UI"; }; - setupOpts = mkPluginSetupOption "which-key" { + setupOpts = { path_replacer = mkOption { - type = str; + type = types.str; default = "__"; - description = '' - The character to which the path separator will be replaced for session files - ''; + description = "The character to which the path separator will be replaced for session files"; }; colon_replacer = mkOption { - type = str; + type = types.str; default = "++"; - description = '' - The character to which the colon symbol will be replaced for session files - ''; + description = "The character to which the colon symbol will be replaced for session files"; }; autoload_mode = mkOption { - type = either (enum ["Disabled" "CurrentDir" "LastSession"]) luaInline; - # Variable 'sm' is defined in the pluginRC of nvim-session-manager. The - # definition is as follows: `local sm = require('session_manager.config')` - apply = val: - if isString val - then mkLuaInline "sm.AutoloadMode.${val}" - else val; + type = types.enum ["Disabled" "CurrentDir" "LastSession"]; default = "LastSession"; - description = '' - Define what to do when Neovim is started without arguments. - - Takes either one of `"Disabled"`, `"CurrentDir"`, `"LastSession` in which case the value - will be inserted into `sm.AutoloadMode.`, or an inline Lua value. - ''; + description = "Define what to do when Neovim is started without arguments. Possible values: Disabled, CurrentDir, LastSession"; }; max_path_length = mkOption { - type = nullOr int; + type = types.nullOr types.int; default = 80; - description = '' - Shorten the display path if length exceeds this threshold. - - Use `0` if don't want to shorten the path at all - ''; + description = "Shorten the display path if length exceeds this threshold. Use 0 if don't want to shorten the path at all"; }; autosave_last_session = mkOption { - type = bool; + type = types.bool; default = true; - description = '' - Automatically save last session on exit and on session switch - ''; + description = "Automatically save last session on exit and on session switch"; }; autosave_ignore_not_normal = mkOption { - type = bool; + type = types.bool; default = true; - description = '' - Plugin will not save a session when no buffers are opened, or all of them are - not writable or listed - ''; + description = "Plugin will not save a session when no buffers are opened, or all of them aren't writable or listed"; }; autosave_ignore_dirs = mkOption { - type = listOf str; + type = types.listOf types.str; default = []; description = "A list of directories where the session will not be autosaved"; }; autosave_ignore_filetypes = mkOption { - type = listOf str; + type = types.listOf types.str; default = ["gitcommit"]; - description = '' - All buffers of these file types will be closed before the session is saved - ''; + description = "All buffers of these file types will be closed before the session is saved"; }; autosave_ignore_buftypes = mkOption { - type = listOf str; + type = types.listOf types.str; default = []; - description = '' - All buffers of these buffer types will be closed before the session is saved - ''; + description = "All buffers of these buffer types will be closed before the session is saved"; }; autosave_only_in_session = mkOption { - type = bool; + type = types.bool; default = false; - description = '' - Always autosaves session. If `true`, only autosaves after a session is active - ''; + description = "Always autosaves session. If true, only autosaves after a session is active"; }; }; }; diff --git a/modules/plugins/statusline/lualine/lualine.nix b/modules/plugins/statusline/lualine/lualine.nix index 9943f78e..6e95f03b 100644 --- a/modules/plugins/statusline/lualine/lualine.nix +++ b/modules/plugins/statusline/lualine/lualine.nix @@ -21,17 +21,6 @@ "codedark" "dracula" "everforest" - "github_dark" - "github_light" - "github_dark_dimmed" - "github_dark_default" - "github_light_default" - "github_dark_high_contrast" - "github_light_high_contrast" - "github_dark_colorblind" - "github_light_colorblind" - "github_dark_tritanopia" - "github_light_tritanopia" "gruvbox" "gruvbox_dark" "gruvbox_light" diff --git a/modules/plugins/theme/supported-themes.nix b/modules/plugins/theme/supported-themes.nix index 0b5cb90b..4029a1c0 100644 --- a/modules/plugins/theme/supported-themes.nix +++ b/modules/plugins/theme/supported-themes.nix @@ -195,20 +195,4 @@ in { vim.cmd.colorscheme("nord") ''; }; - github = { - setup = { - style ? "dark", - transparent ? false, - ... - }: '' - require('github-theme').setup({ - options = { - transparent = ${boolToString transparent}, - }, - }) - - vim.cmd[[colorscheme github_${style}]] - ''; - styles = ["dark" "light" "dark_dimmed" "dark_default" "light_default" "dark_high_contrast" "light_high_contrast" "dark_colorblind" "light_colorblind" "dark_tritanopia" "light_tritanopia"]; - }; } diff --git a/modules/plugins/ui/illuminate/config.nix b/modules/plugins/ui/illuminate/config.nix index 37ad4cfa..ffba85fe 100644 --- a/modules/plugins/ui/illuminate/config.nix +++ b/modules/plugins/ui/illuminate/config.nix @@ -4,20 +4,22 @@ ... }: let inherit (lib.modules) mkIf; - inherit (lib.nvim.lua) toLuaObject; inherit (lib.nvim.dag) entryAnywhere; cfg = config.vim.ui.illuminate; in { config = mkIf cfg.enable { - vim = { - startPlugins = ["vim-illuminate"]; + vim.startPlugins = ["vim-illuminate"]; - # vim-illuminate does not have a setup function. It is instead called 'configure' - # and does what you expect from a setup function. Wild. - pluginRC.vim-illuminate = entryAnywhere '' - require('illuminate').configure(${toLuaObject cfg.setupOpts}) - ''; - }; + vim.pluginRC.vim-illuminate = entryAnywhere '' + require('illuminate').configure({ + filetypes_denylist = { + 'dirvish', + 'fugitive', + 'NvimTree', + 'TelescopePrompt', + }, + }) + ''; }; } diff --git a/modules/plugins/ui/illuminate/illuminate.nix b/modules/plugins/ui/illuminate/illuminate.nix index b910101f..c9c5d2f8 100644 --- a/modules/plugins/ui/illuminate/illuminate.nix +++ b/modules/plugins/ui/illuminate/illuminate.nix @@ -1,19 +1,7 @@ {lib, ...}: let - inherit (lib.options) mkOption mkEnableOption; - inherit (lib.types) listOf str; - inherit (lib.nvim.types) mkPluginSetupOption; + inherit (lib.options) mkEnableOption; in { options.vim.ui.illuminate = { - enable = mkEnableOption '' - automatically highlight other uses of the word under the cursor [vim-illuminate] - ''; - - setupOpts = mkPluginSetupOption "vim-illuminate" { - filetypes_denylist = mkOption { - type = listOf str; - default = ["dirvish" "fugitive" "NvimTree" "TelescopePrompt"]; - description = "Filetypes to not illuminate, this overrides `filetypes_allowlist`"; - }; - }; + enable = mkEnableOption "automatically highlight other uses of the word under the cursor [vim-illuminate]"; }; } diff --git a/modules/plugins/utility/default.nix b/modules/plugins/utility/default.nix index a1574b97..47579070 100644 --- a/modules/plugins/utility/default.nix +++ b/modules/plugins/utility/default.nix @@ -3,18 +3,14 @@ ./binds ./ccc ./diffview - ./direnv ./fzf-lua ./gestures - ./harpoon ./icon-picker ./images ./leetcode-nvim - ./mkdir ./motion ./multicursors ./new-file-template - ./nix-develop ./outline ./preview ./surround diff --git a/modules/plugins/utility/direnv/config.nix b/modules/plugins/utility/direnv/config.nix deleted file mode 100644 index b2211deb..00000000 --- a/modules/plugins/utility/direnv/config.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - - cfg = config.vim.utility.direnv; -in { - vim = mkIf cfg.enable { - startPlugins = ["direnv-vim"]; - }; -} diff --git a/modules/plugins/utility/direnv/default.nix b/modules/plugins/utility/direnv/default.nix deleted file mode 100644 index 7a489920..00000000 --- a/modules/plugins/utility/direnv/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./config.nix - ./direnv.nix - ]; -} diff --git a/modules/plugins/utility/direnv/direnv.nix b/modules/plugins/utility/direnv/direnv.nix deleted file mode 100644 index 98d3f1f6..00000000 --- a/modules/plugins/utility/direnv/direnv.nix +++ /dev/null @@ -1,5 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption; -in { - options.vim.utility.direnv.enable = mkEnableOption "syncing nvim shell environment with direnv's using `direnv.vim`"; -} diff --git a/modules/plugins/utility/harpoon/config.nix b/modules/plugins/utility/harpoon/config.nix deleted file mode 100644 index 487e67e4..00000000 --- a/modules/plugins/utility/harpoon/config.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - options, - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - inherit (lib.nvim.binds) pushDownDefault mkKeymap; - - cfg = config.vim.navigation.harpoon; - - keys = cfg.mappings; - inherit (options.vim.navigation.harpoon) mappings; -in { - config = mkIf cfg.enable { - vim = { - startPlugins = ["plenary-nvim"]; - - lazy.plugins.harpoon = { - package = "harpoon"; - setupModule = "harpoon"; - inherit (cfg) setupOpts; - - cmd = ["Harpoon"]; - - keys = [ - (mkKeymap "n" keys.markFile "lua require('harpoon'):list():add()" {desc = mappings.markFile.description;}) - (mkKeymap "n" keys.listMarks "lua require('harpoon').ui:toggle_quick_menu(require('harpoon'):list())" {desc = mappings.listMarks.description;}) - (mkKeymap "n" keys.file1 "lua require('harpoon'):list():select(1)" {desc = mappings.file1.description;}) - (mkKeymap "n" keys.file2 "lua require('harpoon'):list():select(2)" {desc = mappings.file2.description;}) - (mkKeymap "n" keys.file3 "lua require('harpoon'):list():select(3)" {desc = mappings.file3.description;}) - (mkKeymap "n" keys.file4 "lua require('harpoon'):list():select(4)" {desc = mappings.file4.description;}) - ]; - }; - - binds.whichKey.register = pushDownDefault { - "a" = "Harpoon Mark"; - }; - }; - }; -} diff --git a/modules/plugins/utility/harpoon/default.nix b/modules/plugins/utility/harpoon/default.nix deleted file mode 100644 index 21637c5b..00000000 --- a/modules/plugins/utility/harpoon/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./harpoon.nix - ./config.nix - ]; -} diff --git a/modules/plugins/utility/harpoon/harpoon.nix b/modules/plugins/utility/harpoon/harpoon.nix deleted file mode 100644 index 4478c938..00000000 --- a/modules/plugins/utility/harpoon/harpoon.nix +++ /dev/null @@ -1,53 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) bool; - inherit (lib.nvim.binds) mkMappingOption; - inherit (lib.nvim.types) mkPluginSetupOption luaInline; - inherit (lib.generators) mkLuaInline; -in { - options.vim.navigation.harpoon = { - mappings = { - markFile = mkMappingOption "Mark file [Harpoon]" "a"; - listMarks = mkMappingOption "List marked files [Harpoon]" ""; - file1 = mkMappingOption "Go to marked file 1 [Harpoon]" ""; - file2 = mkMappingOption "Go to marked file 2 [Harpoon]" ""; - file3 = mkMappingOption "Go to marked file 3 [Harpoon]" ""; - file4 = mkMappingOption "Go to marked file 4 [Harpoon]" ""; - }; - - enable = mkEnableOption "Quick bookmarks on keybinds [Harpoon]"; - - setupOpts = mkPluginSetupOption "Harpoon" { - defaults = { - save_on_toggle = mkOption { - type = bool; - default = false; - description = '' - Any time the ui menu is closed then we will save the - state back to the backing list, not to the fs - ''; - }; - sync_on_ui_close = mkOption { - type = bool; - default = false; - description = '' - Any time the ui menu is closed then the state of the - list will be sync'd back to the fs - ''; - }; - key = mkOption { - type = luaInline; - default = mkLuaInline '' - function() - return vim.loop.cwd() - end - ''; - description = '' - How the out list key is looked up. This can be useful - when using worktrees and using git remote instead of file path - ''; - }; - }; - }; - }; -} diff --git a/modules/plugins/utility/mkdir/config.nix b/modules/plugins/utility/mkdir/config.nix deleted file mode 100644 index 2f6a1fe7..00000000 --- a/modules/plugins/utility/mkdir/config.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - cfg = config.vim.utility.mkdir; -in { - vim = mkIf cfg.enable { - startPlugins = ["mkdir-nvim"]; - }; -} diff --git a/modules/plugins/utility/mkdir/default.nix b/modules/plugins/utility/mkdir/default.nix deleted file mode 100644 index 1ee6379b..00000000 --- a/modules/plugins/utility/mkdir/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./config.nix - ./mkdir.nix - ]; -} diff --git a/modules/plugins/utility/mkdir/mkdir.nix b/modules/plugins/utility/mkdir/mkdir.nix deleted file mode 100644 index c591e6e6..00000000 --- a/modules/plugins/utility/mkdir/mkdir.nix +++ /dev/null @@ -1,7 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption; -in { - options.vim.utility.mkdir.enable = mkEnableOption '' - parent directory creation when editing a nested path that does not exist using `mkdir.nvim` - ''; -} diff --git a/modules/plugins/utility/nix-develop/config.nix b/modules/plugins/utility/nix-develop/config.nix deleted file mode 100644 index e1c57ff6..00000000 --- a/modules/plugins/utility/nix-develop/config.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib.modules) mkIf; - cfg = config.vim.utility.nix-develop; -in { - vim = mkIf cfg.enable { - startPlugins = ["nix-develop-nvim"]; - }; -} diff --git a/modules/plugins/utility/nix-develop/default.nix b/modules/plugins/utility/nix-develop/default.nix deleted file mode 100644 index 7d227af5..00000000 --- a/modules/plugins/utility/nix-develop/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./config.nix - ./nix-develop.nix - ]; -} diff --git a/modules/plugins/utility/nix-develop/nix-develop.nix b/modules/plugins/utility/nix-develop/nix-develop.nix deleted file mode 100644 index cee77a6d..00000000 --- a/modules/plugins/utility/nix-develop/nix-develop.nix +++ /dev/null @@ -1,5 +0,0 @@ -{lib, ...}: let - inherit (lib.options) mkEnableOption; -in { - options.vim.utility.nix-develop.enable = mkEnableOption "in-neovim `nix develop`, `nix shell`, and more using `nix-develop.nvim`"; -} diff --git a/modules/plugins/utility/yazi-nvim/config.nix b/modules/plugins/utility/yazi-nvim/config.nix index e6a85d68..a781e5f0 100644 --- a/modules/plugins/utility/yazi-nvim/config.nix +++ b/modules/plugins/utility/yazi-nvim/config.nix @@ -15,7 +15,6 @@ in { config = mkIf cfg.enable { vim = { - startPlugins = ["snacks-nvim"]; lazy.plugins."yazi.nvim" = { package = pkgs.vimPlugins.yazi-nvim; setupModule = "yazi"; diff --git a/npins/sources.json b/npins/sources.json index daad4177..cd7e0b20 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -51,18 +51,6 @@ "url": "https://api.github.com/repos/saghen/blink.cmp/tarball/v0.12.4", "hash": "0jdifjifxjqa8r80wlqgkn5rm48wziap92340xz228nrgd0c9g69" }, - "blink-cmp-spell": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "ribru17", - "repo": "blink-cmp-spell" - }, - "branch": "master", - "revision": "38d6797dea6f72baa6e8b3bfca6da96d8fcac64d", - "url": "https://github.com/ribru17/blink-cmp-spell/archive/38d6797dea6f72baa6e8b3bfca6da96d8fcac64d.tar.gz", - "hash": "19pnasa446iiapgsr3z2fpk0nnrzh8g5wrzrq8n0y4q0z6spc9f6" - }, "blink-compat": { "type": "Git", "repository": { @@ -75,30 +63,6 @@ "url": "https://github.com/saghen/blink.compat/archive/4104671562c663d059d91a99da3780bead5bc467.tar.gz", "hash": "0bsf8kg5s3m1xk9d4n0yl0h5xyk484hip3z8va547f6ibim9ccv4" }, - "blink-emoji-nvim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "moyiz", - "repo": "blink-emoji.nvim" - }, - "branch": "master", - "revision": "a77aebc092ebece1eed108f301452ae774d6b67a", - "url": "https://github.com/moyiz/blink-emoji.nvim/archive/a77aebc092ebece1eed108f301452ae774d6b67a.tar.gz", - "hash": "0n4qv2mk7zx910gnwf9ri2w5qxwx8szx99nqqzik4yyvl4axm41d" - }, - "blink-ripgrep-nvim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "mikavilpas", - "repo": "blink-ripgrep.nvim" - }, - "branch": "main", - "revision": "305e1ae5363f527abdfd71915a3fe1f42af52824", - "url": "https://github.com/mikavilpas/blink-ripgrep.nvim/archive/305e1ae5363f527abdfd71915a3fe1f42af52824.tar.gz", - "hash": "1hcfyicgf33dlr2hhgnhhzdcxxqw1v8v1yjfbnwvlcsgw0rhjl8w" - }, "bufdelete-nvim": { "type": "Git", "repository": { @@ -351,18 +315,6 @@ "url": "https://github.com/sindrets/diffview.nvim/archive/4516612fe98ff56ae0415a259ff6361a89419b0a.tar.gz", "hash": "0brabpd02596hg98bml118bx6z2sly98kf1cr2p0xzybiinb4zs9" }, - "direnv-vim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "direnv", - "repo": "direnv.vim" - }, - "branch": "master", - "revision": "ab2a7e08dd630060cd81d7946739ac7442a4f269", - "url": "https://github.com/direnv/direnv.vim/archive/ab2a7e08dd630060cd81d7946739ac7442a4f269.tar.gz", - "hash": "1hhwfnaj9ibz17ggxvhzrkinghfy51fqfa0bs482z484jpvjc31g" - }, "dracula": { "type": "Git", "repository": { @@ -483,18 +435,6 @@ "url": "https://github.com/akinsho/git-conflict.nvim/archive/a1badcd070d176172940eb55d9d59029dad1c5a6.tar.gz", "hash": "05rnwhm1fmg3yb7j2xc9nmw262jc687qxhwabn97qarrk2da0r0a" }, - "github": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "projekt0n", - "repo": "github-nvim-theme" - }, - "branch": "main", - "revision": "c106c9472154d6b2c74b74565616b877ae8ed31d", - "url": "https://github.com/projekt0n/github-nvim-theme/archive/c106c9472154d6b2c74b74565616b877ae8ed31d.tar.gz", - "hash": "/A4hkKTzjzeoR1SuwwklraAyI8oMkhxrwBBV9xb59PA=" - }, "gitsigns-nvim": { "type": "Git", "repository": { @@ -531,18 +471,6 @@ "url": "https://github.com/ellisonleao/gruvbox.nvim/archive/089b60e92aa0a1c6fa76ff527837cd35b6f5ac81.tar.gz", "hash": "0mr8q2xi4s2anibll8lhxax7q1akyg687bp5r58gckkhi04064q4" }, - "harpoon": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "ThePrimeagen", - "repo": "harpoon" - }, - "branch": "harpoon2", - "revision": "ed1f853847ffd04b2b61c314865665e1dadf22c7", - "url": "https://github.com/ThePrimeagen/harpoon/archive/ed1f853847ffd04b2b61c314865665e1dadf22c7.tar.gz", - "hash": "1dcpdlna2lff9dlsh6i4v16qmn5r9279wdvn0ry3xg4abqwnzc9g" - }, "haskell-tools-nvim": { "type": "Git", "repository": { @@ -1277,18 +1205,6 @@ "url": "https://github.com/wfxr/minimap.vim/archive/57287e2dd28fa3e63276a32d11c729df14741d54.tar.gz", "hash": "05k4cgcrz0gj92xy685bd4p6nh2jmaywc2f5sw1lap0v685h7n79" }, - "mkdir-nvim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "jghauser", - "repo": "mkdir.nvim" - }, - "branch": "main", - "revision": "c55d1dee4f099528a1853b28bb28caa802eba217", - "url": "https://github.com/jghauser/mkdir.nvim/archive/c55d1dee4f099528a1853b28bb28caa802eba217.tar.gz", - "hash": "0zpyvkbw7wfqdxfgidr7zfxqb5ldci4pflx50rsm1hbwai0ybv23" - }, "modes-nvim": { "type": "Git", "repository": { @@ -1388,18 +1304,6 @@ "url": "https://github.com/otavioschwanck/new-file-template.nvim/archive/6ac66669dbf2dc5cdee184a4fe76d22465ca67e8.tar.gz", "hash": "0c7378c3w6bniclp666rq15c28akb0sjy58ayva0wpyin4k26hl3" }, - "nix-develop-nvim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "figsoda", - "repo": "nix-develop.nvim" - }, - "branch": "main", - "revision": "afea026f5c478c000a8af8de87f7b711676387ab", - "url": "https://github.com/figsoda/nix-develop.nvim/archive/afea026f5c478c000a8af8de87f7b711676387ab.tar.gz", - "hash": "0nwjgr19pzdxd7yygz380b388qcfbzp9svs916kh0zayzi9yxc2k" - }, "noice-nvim": { "type": "Git", "repository": { @@ -1804,9 +1708,9 @@ "repo": "otter.nvim" }, "branch": "main", - "revision": "e37053d2c6a17463e705483122eee04d41e3d4af", - "url": "https://github.com/jmbuhr/otter.nvim/archive/e37053d2c6a17463e705483122eee04d41e3d4af.tar.gz", - "hash": "0sq7x2mcxl7z0j4s3a395fy0bzz13h4rxd03lp6674y6hsjxcm55" + "revision": "21f042f4d1a9ff4788634ad76a10033eed13c7f2", + "url": "https://github.com/jmbuhr/otter.nvim/archive/21f042f4d1a9ff4788634ad76a10033eed13c7f2.tar.gz", + "hash": "1gi603ckyxljbhkg8jhwh2pf5kvgb676ykw3sv9gvi0c2s4fb55r" }, "oxocarbon": { "type": "Git", @@ -1976,18 +1880,6 @@ "url": "https://github.com/m4xshen/smartcolumn.nvim/archive/92f3773af80d674f1eb61e112dca79e2fa449fd1.tar.gz", "hash": "0k1xnyvblshn4fhbxgl0i34j22n55xlwr09sdmb23l57br5rb07q" }, - "snacks-nvim": { - "type": "Git", - "repository": { - "type": "GitHub", - "owner": "folke", - "repo": "snacks.nvim" - }, - "branch": "main", - "revision": "bc0630e43be5699bb94dadc302c0d21615421d93", - "url": "https://github.com/folke/snacks.nvim/archive/bc0630e43be5699bb94dadc302c0d21615421d93.tar.gz", - "hash": "0a5nw7xa33shag1h12gf930g3vcixbwk8dxv0ji4980ycskh238v" - }, "sqls-nvim": { "type": "Git", "repository": { @@ -2140,9 +2032,9 @@ "repo": "vim-illuminate" }, "branch": "master", - "revision": "19cb21f513fc2b02f0c66be70107741e837516a1", - "url": "https://github.com/RRethy/vim-illuminate/archive/19cb21f513fc2b02f0c66be70107741e837516a1.tar.gz", - "hash": "1wfri17br6yqxnci43g69mvbckb7ajhj3c0mlcn1g0s7jkxz4acd" + "revision": "b5713e6ca3f627b46968386d6d3f24d374d3cb17", + "url": "https://github.com/RRethy/vim-illuminate/archive/b5713e6ca3f627b46968386d6d3f24d374d3cb17.tar.gz", + "hash": "0l16qa2bm4nyimkcjlhajgcv8l9kyqqjpc55jxnny0gy6rycp40n" }, "vim-markdown": { "type": "Git", @@ -2206,4 +2098,4 @@ } }, "version": 3 -} \ No newline at end of file +}