From 024e1a6845a8c483c41b9dc6d95be0e8a6eab2ac Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 26 Feb 2024 08:05:23 +0300 Subject: [PATCH] modules: make lib calls explicit where possible --- modules/assistant/copilot/config.nix | 15 +++-- modules/assistant/copilot/copilot.nix | 47 ++++++++++------ modules/assistant/copilot/default.nix | 2 +- modules/autopairs/default.nix | 2 +- modules/autopairs/nvim-autopairs/config.nix | 36 ++++++------ modules/autopairs/nvim-autopairs/default.nix | 2 +- .../nvim-autopairs/nvim-autopairs.nix | 11 ++-- .../comments/comment-nvim/comment-nvim.nix | 3 +- modules/comments/comment-nvim/config.nix | 12 ++-- modules/comments/comment-nvim/default.nix | 2 +- modules/comments/default.nix | 2 +- modules/completion/default.nix | 2 +- modules/completion/nvim-cmp/config.nix | 13 +++-- modules/completion/nvim-cmp/nvim-cmp.nix | 10 ++-- modules/dashboard/alpha/alpha.nix | 10 +--- modules/dashboard/alpha/config.nix | 5 +- modules/dashboard/alpha/default.nix | 2 +- modules/dashboard/dashboard-nvim/config.nix | 5 +- .../dashboard-nvim/dashboard-nvim.nix | 8 +-- modules/dashboard/dashboard-nvim/default.nix | 2 +- modules/dashboard/default.nix | 2 +- modules/dashboard/startify/config.nix | 4 +- modules/dashboard/startify/startify.nix | 55 ++++++++++--------- modules/debugger/default.nix | 2 +- modules/debugger/nvim-dap/config.nix | 16 +++--- modules/debugger/nvim-dap/default.nix | 2 +- modules/debugger/nvim-dap/nvim-dap.nix | 8 ++- modules/filetree/default.nix | 2 +- modules/filetree/nvimtree/config.nix | 52 +++++++++--------- modules/git/config.nix | 8 ++- modules/git/default.nix | 2 +- modules/git/git.nix | 13 +++-- modules/languages/bash/bash.nix | 20 ++++--- modules/languages/bash/config.nix | 6 +- modules/languages/bash/default.nix | 2 +- modules/languages/dart/config.nix | 13 +++-- modules/languages/dart/dart.nix | 29 ++++++---- modules/languages/dart/default.nix | 2 +- modules/languages/elixir/config.nix | 9 +-- modules/languages/elixir/default.nix | 2 +- modules/languages/elixir/elixir-tools.nix | 8 +-- 41 files changed, 245 insertions(+), 203 deletions(-) diff --git a/modules/assistant/copilot/config.nix b/modules/assistant/copilot/config.nix index 18f540d..5cfe955 100644 --- a/modules/assistant/copilot/config.nix +++ b/modules/assistant/copilot/config.nix @@ -1,11 +1,14 @@ { - pkgs, config, lib, ... }: let inherit (builtins) toJSON; - inherit (lib) mkIf nvim mkLuaBinding mkMerge; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.nvim.dag) entryAnywhere; + inherit (lib.lists) optionals; + inherit (lib.trivial) boolToString; + inherit (lib.nvim.binds) mkLuaBinding; cfg = config.vim.assistant.copilot; @@ -27,16 +30,16 @@ in { "copilot-lua" cfg.copilotNodePackage ] - ++ lib.optionals (cfg.cmp.enable) [ + ++ optionals (cfg.cmp.enable) [ "copilot-cmp" ]; - vim.luaConfigRC.copilot = nvim.dag.entryAnywhere '' + vim.luaConfigRC.copilot = entryAnywhere '' require("copilot").setup({ -- available options: https://github.com/zbirenbaum/copilot.lua copilot_node_command = "${cfg.copilotNodeCommand}", panel = { - enabled = ${lib.boolToString (!cfg.cmp.enable)}, + enabled = ${boolToString (!cfg.cmp.enable)}, keymap = { jump_prev = false, jump_next = false, @@ -50,7 +53,7 @@ in { }, }, suggestion = { - enabled = ${lib.boolToString (!cfg.cmp.enable)}, + enabled = ${boolToString (!cfg.cmp.enable)}, keymap = { accept = false, accept_word = false, diff --git a/modules/assistant/copilot/copilot.nix b/modules/assistant/copilot/copilot.nix index 8583869..283a0b6 100644 --- a/modules/assistant/copilot/copilot.nix +++ b/modules/assistant/copilot/copilot.nix @@ -1,10 +1,12 @@ { - pkgs, config, + pkgs, lib, ... }: let - inherit (lib) mkEnableOption mkOption types; + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.types) enum float nullOr str package; + inherit (lib.meta) getExe; cfg = config.vim.assistant.copilot; in { @@ -14,7 +16,7 @@ in { panel = { position = mkOption { - type = types.enum [ + type = enum [ "bottom" "top" "left" @@ -24,7 +26,7 @@ in { description = "Panel position"; }; ratio = mkOption { - type = types.float; + type = float; default = 0.4; description = "Panel size"; }; @@ -33,59 +35,68 @@ in { mappings = { panel = { jumpPrev = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = "[["; description = "Jump to previous suggestion"; }; + jumpNext = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = "]]"; description = "Jump to next suggestion"; }; + accept = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = ""; description = "Accept suggestion"; }; + refresh = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = "gr"; description = "Refresh suggestions"; }; + open = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = ""; description = "Open suggestions"; }; }; suggestion = { accept = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = ""; description = "Accept suggetion"; }; + acceptWord = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = null; description = "Accept next word"; }; + acceptLine = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = null; description = "Accept next line"; }; + prev = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = ""; description = "Previous suggestion"; }; + next = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = ""; description = "Next suggestion"; }; + dismiss = mkOption { - type = types.nullOr types.str; + type = nullOr str; default = ""; description = "Dismiss suggestion"; }; @@ -93,8 +104,8 @@ in { }; copilotNodeCommand = mkOption { - type = types.str; - default = "${lib.getExe cfg.copilotNodePackage}"; + type = str; + default = "${getExe cfg.copilotNodePackage}"; description = '' The command that will be executed to initiate nodejs for GitHub Copilot. Recommended to leave as default. @@ -102,7 +113,7 @@ in { }; copilotNodePackage = mkOption { - type = with types; nullOr package; + type = nullOr package; default = pkgs.nodejs-slim; description = '' The nodeJS package that will be used for GitHub Copilot. If you are using a custom node command diff --git a/modules/assistant/copilot/default.nix b/modules/assistant/copilot/default.nix index fb291bd..2b89045 100644 --- a/modules/assistant/copilot/default.nix +++ b/modules/assistant/copilot/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./copilot.nix ./config.nix diff --git a/modules/autopairs/default.nix b/modules/autopairs/default.nix index 742665c..cc2f69c 100644 --- a/modules/autopairs/default.nix +++ b/modules/autopairs/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./nvim-autopairs ]; diff --git a/modules/autopairs/nvim-autopairs/config.nix b/modules/autopairs/nvim-autopairs/config.nix index 0aceca5..1502db8 100644 --- a/modules/autopairs/nvim-autopairs/config.nix +++ b/modules/autopairs/nvim-autopairs/config.nix @@ -1,26 +1,28 @@ { - lib, config, + lib, ... }: let - inherit (lib) mkIf nvim optionalString boolToString; + inherit (lib.modules) mkIf; + inherit (lib.nvim.dag) entryAnywhere; + inherit (lib.strings) optionalString; + inherit (lib.trivial) boolToString; cfg = config.vim.autopairs; in { - config = - mkIf (cfg.enable) - { - vim.startPlugins = ["nvim-autopairs"]; + config = mkIf cfg.enable { + vim.startPlugins = ["nvim-autopairs"]; - vim.luaConfigRC.autopairs = nvim.dag.entryAnywhere '' - require("nvim-autopairs").setup{} - ${optionalString (config.vim.autocomplete.type == "nvim-compe") '' - require('nvim-autopairs.completion.compe').setup({ - map_cr = ${boolToString cfg.nvim-compe.map_cr}, - map_complete = ${boolToString cfg.nvim-compe.map_complete}, - auto_select = ${boolToString cfg.nvim-compe.auto_select}, - }) - ''} - ''; - }; + vim.luaConfigRC.autopairs = entryAnywhere '' + require("nvim-autopairs").setup{} + ${optionalString (config.vim.autocomplete.type == "nvim-compe") '' + -- nvim-compe integration + require('nvim-autopairs.completion.compe').setup({ + map_cr = ${boolToString cfg.nvim-compe.map_cr}, + map_complete = ${boolToString cfg.nvim-compe.map_complete}, + auto_select = ${boolToString cfg.nvim-compe.auto_select}, + }) + ''} + ''; + }; } diff --git a/modules/autopairs/nvim-autopairs/default.nix b/modules/autopairs/nvim-autopairs/default.nix index f228331..7098049 100644 --- a/modules/autopairs/nvim-autopairs/default.nix +++ b/modules/autopairs/nvim-autopairs/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./config.nix ./nvim-autopairs.nix diff --git a/modules/autopairs/nvim-autopairs/nvim-autopairs.nix b/modules/autopairs/nvim-autopairs/nvim-autopairs.nix index 330d118..940a60c 100644 --- a/modules/autopairs/nvim-autopairs/nvim-autopairs.nix +++ b/modules/autopairs/nvim-autopairs/nvim-autopairs.nix @@ -1,31 +1,32 @@ {lib, ...}: let - inherit (lib) mkEnableOption mkOption types; + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.types) enum bool; in { options.vim = { autopairs = { enable = mkEnableOption "autopairs" // {default = false;}; type = mkOption { - type = types.enum ["nvim-autopairs"]; + type = enum ["nvim-autopairs"]; default = "nvim-autopairs"; description = "Set the autopairs type. Options: nvim-autopairs [nvim-autopairs]"; }; nvim-compe = { map_cr = mkOption { - type = types.bool; + type = bool; default = true; description = ''map on insert mode''; }; map_complete = mkOption { - type = types.bool; + type = bool; default = true; description = "auto insert `(` after select function or method item"; }; auto_select = mkOption { - type = types.bool; + type = bool; default = false; description = "auto select first item"; }; diff --git a/modules/comments/comment-nvim/comment-nvim.nix b/modules/comments/comment-nvim/comment-nvim.nix index 13ca475..61a9171 100644 --- a/modules/comments/comment-nvim/comment-nvim.nix +++ b/modules/comments/comment-nvim/comment-nvim.nix @@ -1,5 +1,6 @@ {lib, ...}: let - inherit (lib) mkEnableOption mkMappingOption; + inherit (lib.options) mkEnableOption; + inherit (lib.nvim.binds) mkMappingOption; in { options.vim.comments.comment-nvim = { enable = mkEnableOption "smart and powerful comment plugin for neovim comment-nvim"; diff --git a/modules/comments/comment-nvim/config.nix b/modules/comments/comment-nvim/config.nix index ea2f1e1..40ccb0a 100644 --- a/modules/comments/comment-nvim/config.nix +++ b/modules/comments/comment-nvim/config.nix @@ -3,13 +3,13 @@ lib, ... }: let - inherit (lib) mkIf mkMerge mkExprBinding mkBinding nvim; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.nvim.binds) mkExprBinding mkBinding; + inherit (lib.nvim.dag) entryAnywhere; cfg = config.vim.comments.comment-nvim; - self = import ./comment-nvim.nix { - inherit lib; - }; - mappings = self.options.vim.comments.comment-nvim.mappings; + self = import ./comment-nvim.nix {inherit lib;}; + inherit (self.options.vim.comments.comment-nvim) mappings; in { config = mkIf cfg.enable { vim.startPlugins = [ @@ -41,7 +41,7 @@ in { (mkBinding cfg.mappings.toggleSelectedBlock "(comment_toggle_blockwise_visual)" mappings.toggleSelectedBlock.description) ]; - vim.luaConfigRC.comment-nvim = nvim.dag.entryAnywhere '' + vim.luaConfigRC.comment-nvim = entryAnywhere '' require('Comment').setup({ mappings = { basic = false, extra = false, }, }) diff --git a/modules/comments/comment-nvim/default.nix b/modules/comments/comment-nvim/default.nix index db4eb42..6a6dbcb 100644 --- a/modules/comments/comment-nvim/default.nix +++ b/modules/comments/comment-nvim/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./config.nix ./comment-nvim.nix diff --git a/modules/comments/default.nix b/modules/comments/default.nix index cb6ac19..afc1a87 100644 --- a/modules/comments/default.nix +++ b/modules/comments/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./comment-nvim ]; diff --git a/modules/completion/default.nix b/modules/completion/default.nix index 77d51b4..0cae45f 100644 --- a/modules/completion/default.nix +++ b/modules/completion/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./nvim-cmp ]; diff --git a/modules/completion/nvim-cmp/config.nix b/modules/completion/nvim-cmp/config.nix index b20f71b..142a118 100644 --- a/modules/completion/nvim-cmp/config.nix +++ b/modules/completion/nvim-cmp/config.nix @@ -4,8 +4,11 @@ ... }: let inherit (builtins) toJSON; - inherit (lib) addDescriptionsToMappings concatMapStringsSep attrNames concatStringsSep mapAttrsToList mkIf mkSetLuaBinding mkMerge optionalString; - inherit (lib.nvim) dag; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.attrsets) attrNames mapAttrsToList; + inherit (lib.strings) concatMapStringsSep concatStringsSep optionalString; + inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLuaBinding; + inherit (lib.nvim.dag) entryAnywhere entryAfter; cfg = config.vim.autocomplete; lspkindEnabled = config.vim.lsp.enable && config.vim.lsp.lspkind.enable; @@ -33,8 +36,8 @@ dagPlacement = if lspkindEnabled - then dag.entryAfter ["lspkind"] - else dag.entryAnywhere; + then entryAfter ["lspkind"] + else entryAnywhere; in { config = mkIf cfg.enable { vim.startPlugins = [ @@ -195,7 +198,7 @@ in { local cmp = require'cmp' cmp.setup({ - ${optionalString (config.vim.ui.borders.enable) '' + ${optionalString config.vim.ui.borders.enable '' -- explicitly enabled by setting ui.borders.enable = true -- TODO: try to get nvim-cmp to follow global border style window = { diff --git a/modules/completion/nvim-cmp/nvim-cmp.nix b/modules/completion/nvim-cmp/nvim-cmp.nix index 38c8619..59c32db 100644 --- a/modules/completion/nvim-cmp/nvim-cmp.nix +++ b/modules/completion/nvim-cmp/nvim-cmp.nix @@ -1,5 +1,7 @@ {lib, ...}: let - inherit (lib) mkEnableOption mkMappingOption mkOption types; + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.nvim.binds) mkMappingOption; + inherit (lib.types) enum attrsOf nullOr str; in { options.vim = { autocomplete = { @@ -16,7 +18,7 @@ in { }; type = mkOption { - type = types.enum ["nvim-cmp"]; + type = enum ["nvim-cmp"]; default = "nvim-cmp"; description = "Set the autocomplete plugin. Options: [nvim-cmp]"; }; @@ -31,7 +33,7 @@ in { Note: only use a single attribute name per attribute set ''; - type = with types; attrsOf (nullOr str); + type = attrsOf (nullOr str); default = {}; example = '' {nvim-cmp = null; buffer = "[Buffer]";} @@ -48,7 +50,7 @@ in { Default is to call the menu mapping function. ''; - type = types.str; + type = str; default = "nvim_cmp_menu_map"; example = lib.literalMD '' ```lua diff --git a/modules/dashboard/alpha/alpha.nix b/modules/dashboard/alpha/alpha.nix index 3c43e15..d5329cc 100644 --- a/modules/dashboard/alpha/alpha.nix +++ b/modules/dashboard/alpha/alpha.nix @@ -1,11 +1,7 @@ -{ - config, - lib, - ... -}: let - inherit (lib) mkEnableOption; +{lib, ...}: let + inherit (lib.options) mkEnableOption; in { options.vim.dashboard.alpha = { - enable = mkEnableOption "dashboard via alpha.nvim"; + enable = mkEnableOption "fast and fully programmable greeter for neovim [alpha.mvim]"; }; } diff --git a/modules/dashboard/alpha/config.nix b/modules/dashboard/alpha/config.nix index a2ee14b..12072e3 100644 --- a/modules/dashboard/alpha/config.nix +++ b/modules/dashboard/alpha/config.nix @@ -3,7 +3,8 @@ lib, ... }: let - inherit (lib) mkIf nvim; + inherit (lib.modules) mkIf; + inherit (lib.nvim.dag) entryAnywhere; cfg = config.vim.dashboard.alpha; in { @@ -15,7 +16,7 @@ in { # the entire credit for this dashboard configuration to https://github.com/Rishabh672003 # honestly, excellent work - vim.luaConfigRC.alpha = nvim.dag.entryAnywhere '' + vim.luaConfigRC.alpha = entryAnywhere '' local alpha = require("alpha") local plenary_path = require("plenary.path") local dashboard = require("alpha.themes.dashboard") diff --git a/modules/dashboard/alpha/default.nix b/modules/dashboard/alpha/default.nix index 16496c6..913b32b 100644 --- a/modules/dashboard/alpha/default.nix +++ b/modules/dashboard/alpha/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./alpha.nix ./config.nix diff --git a/modules/dashboard/dashboard-nvim/config.nix b/modules/dashboard/dashboard-nvim/config.nix index 13c08e6..9d827a4 100644 --- a/modules/dashboard/dashboard-nvim/config.nix +++ b/modules/dashboard/dashboard-nvim/config.nix @@ -3,7 +3,8 @@ lib, ... }: let - inherit (lib) mkIf nvim; + inherit (lib.modules) mkIf; + inherit (lib.nvim.dag) entryAnywhere; cfg = config.vim.dashboard.dashboard-nvim; in { @@ -12,7 +13,7 @@ in { "dashboard-nvim" ]; - vim.luaConfigRC.dashboard-nvim = nvim.dag.entryAnywhere '' + vim.luaConfigRC.dashboard-nvim = entryAnywhere '' require("dashboard").setup{} ''; }; diff --git a/modules/dashboard/dashboard-nvim/dashboard-nvim.nix b/modules/dashboard/dashboard-nvim/dashboard-nvim.nix index 78264ca..6233391 100644 --- a/modules/dashboard/dashboard-nvim/dashboard-nvim.nix +++ b/modules/dashboard/dashboard-nvim/dashboard-nvim.nix @@ -1,11 +1,7 @@ -{ - config, - lib, - ... -}: let +{lib, ...}: let inherit (lib) mkEnableOption; in { options.vim.dashboard.dashboard-nvim = { - enable = mkEnableOption "dashboard via dashboard.nvim"; + enable = mkEnableOption "Fancy and Blazing Fast start screen plugin of neovim [dashboard.nvim]"; }; } diff --git a/modules/dashboard/dashboard-nvim/default.nix b/modules/dashboard/dashboard-nvim/default.nix index 5bc4473..1483749 100644 --- a/modules/dashboard/dashboard-nvim/default.nix +++ b/modules/dashboard/dashboard-nvim/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./dashboard-nvim.nix ./config.nix diff --git a/modules/dashboard/default.nix b/modules/dashboard/default.nix index c63ad3e..365ea8d 100644 --- a/modules/dashboard/default.nix +++ b/modules/dashboard/default.nix @@ -1,4 +1,4 @@ -{...}: { +{ imports = [ ./alpha ./dashboard-nvim diff --git a/modules/dashboard/startify/config.nix b/modules/dashboard/startify/config.nix index 447f385..7e9a0f4 100644 --- a/modules/dashboard/startify/config.nix +++ b/modules/dashboard/startify/config.nix @@ -4,8 +4,8 @@ lib, ... }: let - inherit (lib) mkIf nvim; - inherit (nvim.vim) mkVimBool; + inherit (lib.modules) mkIf; + inherit (lib.nvim.vim) mkVimBool; cfg = config.vim.dashboard.startify; in { diff --git a/modules/dashboard/startify/startify.nix b/modules/dashboard/startify/startify.nix index 36118f4..fa70a4d 100644 --- a/modules/dashboard/startify/startify.nix +++ b/modules/dashboard/startify/startify.nix @@ -3,7 +3,8 @@ lib, ... }: let - inherit (lib) mkEnableOption mkOption types; + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.types) listOf attrs bool enum str oneOf int; in { options.vim.dashboard.startify = { enable = mkEnableOption "dashboard via vim-startify"; @@ -11,38 +12,38 @@ in { bookmarks = mkOption { default = []; description = ''List of book marks to disaply on start page''; - type = with types; listOf attrs; + type = listOf attrs; example = {"c" = "~/.vimrc";}; }; changeToDir = mkOption { default = true; description = "Should vim change to the directory of the file you open"; - type = types.bool; + type = bool; }; changeToVCRoot = mkOption { default = false; description = "Should vim change to the version control root when opening a file"; - type = types.bool; + type = bool; }; changeDirCmd = mkOption { default = "lcd"; description = "Command to change the current window with. Can be cd, lcd or tcd"; - type = types.enum ["cd" "lcd" "tcd"]; + type = enum ["cd" "lcd" "tcd"]; }; customHeader = mkOption { default = []; description = "Text to place in the header"; - type = with types; listOf str; + type = listOf str; }; customFooter = mkOption { default = []; description = "Text to place in the footer"; - type = with types; listOf str; + type = listOf str; }; lists = mkOption { @@ -69,121 +70,121 @@ in { } ]; description = "Specify the lists and in what order they are displayed on startify."; - type = with types; listOf attrs; + type = listOf attrs; }; skipList = mkOption { default = []; description = "List of regex patterns to exclude from MRU lists"; - type = with types; listOf str; + type = listOf str; }; updateOldFiles = mkOption { default = false; description = "Set if you want startify to always update and not just when neovim closes"; - type = types.bool; + type = bool; }; sessionAutoload = mkOption { default = false; description = "Make startify auto load Session.vim files from the current directory"; - type = types.bool; + type = bool; }; commands = mkOption { default = []; description = "Commands that are presented to the user on startify page"; - type = with types; listOf (oneOf [str attrs (listOf str)]); + type = listOf (oneOf [str attrs (listOf str)]); }; filesNumber = mkOption { default = 10; description = "How many files to list"; - type = types.int; + type = int; }; customIndices = mkOption { default = []; description = "Specify a list of default charecters to use instead of numbers"; - type = with types; listOf str; + type = listOf str; }; disableOnStartup = mkOption { default = false; description = "Prevent startify from opening on startup but can be called with :Startify"; - type = types.bool; + type = bool; }; unsafe = mkOption { default = false; description = "Turns on unsafe mode for Startify. Stops resolving links, checking files are readable and filtering bookmark list"; - type = types.bool; + type = bool; }; paddingLeft = mkOption { default = 3; description = "Number of spaces used for left padding."; - type = types.int; + type = int; }; useEnv = mkOption { default = false; description = "Show environment variables in path if name is shorter than value"; - type = types.bool; + type = bool; }; sessionBeforeSave = mkOption { default = []; description = "Commands to run before saving a session"; - type = with types; listOf str; + type = listOf str; }; sessionPersistence = mkOption { default = false; description = "Persist session before leaving vim or switching session"; - type = types.bool; + type = bool; }; sessionDeleteBuffers = mkOption { default = true; description = "Delete all buffers when loading or closing a session"; - type = types.bool; + type = bool; }; sessionDir = mkOption { default = "~/.vim/session"; description = "Directory to save and load sessions from"; - type = types.str; + type = str; }; skipListServer = mkOption { default = []; description = "List of vim servers to not load startify for"; - type = with types; listOf str; + type = listOf str; }; sessionRemoveLines = mkOption { default = []; description = "Patterns to remove from session files"; - type = with types; listOf str; + type = listOf str; }; sessionSavevars = mkOption { default = []; description = "List of variables to save into a session file."; - type = with types; listOf str; + type = listOf str; }; sessionSavecmds = mkOption { default = []; description = "List of commands to run when loading a session."; - type = with types; listOf str; + type = listOf str; }; sessionSort = mkOption { default = false; description = "Set if you want items sorted by date rather than alphabetically"; - type = types.bool; + type = bool; }; }; } diff --git a/modules/debugger/default.nix b/modules/debugger/default.nix index f882196..a34e059 100644 --- a/modules/debugger/default.nix +++ b/modules/debugger/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./nvim-dap ]; diff --git a/modules/debugger/nvim-dap/config.nix b/modules/debugger/nvim-dap/config.nix index db9558d..cc04c26 100644 --- a/modules/debugger/nvim-dap/config.nix +++ b/modules/debugger/nvim-dap/config.nix @@ -3,12 +3,14 @@ lib, ... }: let - inherit (lib) addDescriptionsToMappings mkMerge mkIf mapAttrs nvim mkSetLuaBinding optionalString; + inherit (lib.strings) optionalString; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.attrsets) mapAttrs; + inherit (lib.nvim.binds) addDescriptionsToMappings mkSetLuaBinding; + inherit (lib.nvim.dag) entryAnywhere entryAfter; cfg = config.vim.debugger.nvim-dap; - self = import ./nvim-dap.nix { - inherit lib; - }; + self = import ./nvim-dap.nix {inherit lib;}; mappingDefinitions = self.options.vim.debugger.nvim-dap.mappings; mappings = addDescriptionsToMappings cfg.mappings mappingDefinitions; in { @@ -19,12 +21,12 @@ in { vim.luaConfigRC = { # TODO customizable keymaps - nvim-dap = nvim.dag.entryAnywhere '' + nvim-dap = entryAnywhere '' local dap = require("dap") vim.fn.sign_define("DapBreakpoint", { text = "🛑", texthl = "ErrorMsg", linehl = "", numhl = "" }) ''; } - // mapAttrs (_: v: (nvim.dag.entryAfter ["nvim-dap"] v)) cfg.sources; + // mapAttrs (_: v: (entryAfter ["nvim-dap"] v)) cfg.sources; vim.maps.normal = mkMerge [ (mkSetLuaBinding mappings.continue "require('dap').continue") @@ -49,7 +51,7 @@ in { (mkIf (cfg.enable && cfg.ui.enable) { vim.startPlugins = ["nvim-dap-ui"]; - vim.luaConfigRC.nvim-dap-ui = nvim.dag.entryAfter ["nvim-dap"] ('' + vim.luaConfigRC.nvim-dap-ui = entryAfter ["nvim-dap"] ('' local dapui = require("dapui") dapui.setup() '' diff --git a/modules/debugger/nvim-dap/default.nix b/modules/debugger/nvim-dap/default.nix index 083220b..a921e26 100644 --- a/modules/debugger/nvim-dap/default.nix +++ b/modules/debugger/nvim-dap/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./config.nix ./nvim-dap.nix diff --git a/modules/debugger/nvim-dap/nvim-dap.nix b/modules/debugger/nvim-dap/nvim-dap.nix index ade007a..3fab33a 100644 --- a/modules/debugger/nvim-dap/nvim-dap.nix +++ b/modules/debugger/nvim-dap/nvim-dap.nix @@ -1,5 +1,7 @@ {lib, ...}: let - inherit (lib) mkEnableOption mkOption types mkMappingOption; + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.types) bool attrsOf str; + inherit (lib.nvim.binds) mkMappingOption; in { options.vim.debugger.nvim-dap = { enable = mkEnableOption "debugging via nvim-dap"; @@ -7,7 +9,7 @@ in { ui = { enable = mkEnableOption "UI extension for nvim-dap"; autoStart = mkOption { - type = types.bool; + type = bool; default = true; description = "Automatically Opens and Closes DAP-UI upon starting/closing a debugging session"; }; @@ -16,7 +18,7 @@ in { sources = mkOption { default = {}; description = "List of debuggers to install"; - type = with types; attrsOf str; + type = attrsOf str; }; mappings = { diff --git a/modules/filetree/default.nix b/modules/filetree/default.nix index fdceb6a..1441b4f 100644 --- a/modules/filetree/default.nix +++ b/modules/filetree/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./nvimtree ]; diff --git a/modules/filetree/nvimtree/config.nix b/modules/filetree/nvimtree/config.nix index 5f11c5a..684be7a 100644 --- a/modules/filetree/nvimtree/config.nix +++ b/modules/filetree/nvimtree/config.nix @@ -4,14 +4,16 @@ pkgs, ... }: let - inherit (lib) mkIf mkMerge mkBinding nvim boolToString; + inherit (lib.strings) optionalString; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.trivial) boolToString; + inherit (lib.nvim.binds) mkBinding; + inherit (lib.nvim.dag) entryAnywhere; + inherit (lib.nvim.lua) listToLuaTable expToLua; cfg = config.vim.filetree.nvimTree; - self = import ./nvimtree.nix { - inherit pkgs; - lib = lib; - }; - mappings = self.options.vim.filetree.nvimTree.mappings; + self = import ./nvimtree.nix {inherit pkgs lib;}; + inherit (self.options.vim.filetree.nvimTree) mappings; in { config = mkIf cfg.enable { vim.startPlugins = ["nvim-tree-lua"]; @@ -23,9 +25,9 @@ in { (mkBinding cfg.mappings.focus ":NvimTreeFocus" mappings.focus.description) ]; - vim.luaConfigRC.nvimtreelua = nvim.dag.entryAnywhere '' + vim.luaConfigRC.nvimtreelua = entryAnywhere '' ${ - lib.optionalString (cfg.disableNetrw) '' + lib.optionalString cfg.disableNetrw '' -- disable netrew completely vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 @@ -44,7 +46,7 @@ in { hijack_unnamed_buffer_when_opening = ${boolToString cfg.hijackUnnamedBufferWhenOpening}, hijack_cursor = ${boolToString cfg.hijackCursor}, - root_dirs = ${nvim.lua.listToLuaTable cfg.rootDirs}, + root_dirs = ${listToLuaTable cfg.rootDirs}, prefer_startup_root = ${boolToString cfg.preferStartupRoot}, sync_root_with_cwd = ${boolToString cfg.syncRootWithCwd}, reload_on_bufenter = ${boolToString cfg.reloadOnBufEnter}, @@ -58,12 +60,12 @@ in { update_focused_file = { enable = ${boolToString cfg.updateFocusedFile.enable}, update_root = ${boolToString cfg.updateFocusedFile.updateRoot}, - ignore_list = ${nvim.lua.listToLuaTable cfg.updateFocusedFile.ignoreList}, + ignore_list = ${listToLuaTable cfg.updateFocusedFile.ignoreList}, }, system_open = { cmd = "${cfg.systemOpen.cmd}", - args = ${nvim.lua.listToLuaTable cfg.systemOpen.args}, + args = ${listToLuaTable cfg.systemOpen.args}, }, diagnostics = { @@ -85,7 +87,7 @@ in { enable = ${boolToString cfg.git.enable}, show_on_dirs = ${boolToString cfg.git.showOnDirs}, show_on_open_dirs = ${boolToString cfg.git.showOnOpenDirs}, - disable_for_dirs = ${nvim.lua.listToLuaTable cfg.git.disableForDirs}, + disable_for_dirs = ${listToLuaTable cfg.git.disableForDirs}, timeout = ${toString cfg.git.timeout}, }, @@ -98,7 +100,7 @@ in { filesystem_watchers = { enable = ${boolToString cfg.filesystemWatchers.enable}, debounce_delay = ${toString cfg.filesystemWatchers.debounceDelay}, - ignore_dirs = ${nvim.lua.listToLuaTable cfg.filesystemWatchers.ignoreDirs}, + ignore_dirs = ${listToLuaTable cfg.filesystemWatchers.ignoreDirs}, }, select_prompts = ${boolToString cfg.selectPrompts}, @@ -107,7 +109,7 @@ in { centralize_selection = ${boolToString cfg.view.centralizeSelection}, cursorline = ${boolToString cfg.view.cursorline}, debounce_delay = ${toString cfg.view.debounceDelay}, - width = ${nvim.lua.expToLua cfg.view.width}, + width = ${expToLua cfg.view.width}, side = "${cfg.view.side}", preserve_window_proportions = ${boolToString cfg.view.preserveWindowProportions}, number = ${boolToString cfg.view.number}, @@ -134,15 +136,15 @@ in { highlight_git = ${boolToString cfg.renderer.highlightGit}, highlight_opened_files = ${cfg.renderer.highlightOpenedFiles}, highlight_modified = ${cfg.renderer.highlightModified}, - root_folder_label = ${nvim.lua.expToLua cfg.renderer.rootFolderLabel}, + root_folder_label = ${expToLua cfg.renderer.rootFolderLabel}, indent_width = ${toString cfg.renderer.indentWidth}, indent_markers = { enable = ${boolToString cfg.renderer.indentMarkers.enable}, inline_arrows = ${boolToString cfg.renderer.indentMarkers.inlineArrows}, - icons = ${nvim.lua.expToLua cfg.renderer.indentMarkers.icons}, + icons = ${expToLua cfg.renderer.indentMarkers.icons}, }, - special_files = ${nvim.lua.listToLuaTable cfg.renderer.specialFiles}, + special_files = ${listToLuaTable cfg.renderer.specialFiles}, symlink_destination = ${boolToString cfg.renderer.symlinkDestination}, icons = { @@ -194,7 +196,7 @@ in { dotfiles = ${boolToString cfg.filters.dotfiles}, git_clean = ${boolToString cfg.filters.gitClean}, no_buffer = ${boolToString cfg.filters.noBuffer}, - exclude = ${nvim.lua.listToLuaTable cfg.filters.exclude}, + exclude = ${listToLuaTable cfg.filters.exclude}, }, trash = { @@ -211,11 +213,11 @@ in { expand_all = { max_folder_discovery = ${toString cfg.actions.expandAll.maxFolderDiscovery}, - exclude = ${nvim.lua.listToLuaTable cfg.actions.expandAll.exclude}, + exclude = ${listToLuaTable cfg.actions.expandAll.exclude}, }, file_popup = { - open_win_config = ${nvim.lua.expToLua cfg.actions.filePopup.openWinConfig}, + open_win_config = ${expToLua cfg.actions.filePopup.openWinConfig}, }, open_file = { @@ -227,8 +229,8 @@ in { picker = "${cfg.actions.openFile.windowPicker.picker}", chars = "${cfg.actions.openFile.windowPicker.chars}", exclude = { - filetype = ${nvim.lua.listToLuaTable cfg.actions.openFile.windowPicker.exclude.filetype}, - buftype = ${nvim.lua.listToLuaTable cfg.actions.openFile.windowPicker.exclude.buftype}, + filetype = ${listToLuaTable cfg.actions.openFile.windowPicker.exclude.filetype}, + buftype = ${listToLuaTable cfg.actions.openFile.windowPicker.exclude.buftype}, }, }, }, @@ -247,7 +249,7 @@ in { sync = { open = ${boolToString cfg.tab.sync.open}, close = ${boolToString cfg.tab.sync.close}, - ignore = ${nvim.lua.listToLuaTable cfg.tab.sync.ignore}, + ignore = ${listToLuaTable cfg.tab.sync.ignore}, }, }, @@ -264,9 +266,9 @@ in { }, }) - -- autostart behaviour ${ - lib.optionalString (cfg.openOnSetup) '' + optionalString cfg.openOnSetup '' + -- autostart behaviour -- Open on startup has been deprecated -- see https://github.com/nvim-tree/nvim-tree.lua/wiki/Open-At-Startup diff --git a/modules/git/config.nix b/modules/git/config.nix index e0d4a03..c02dc9e 100644 --- a/modules/git/config.nix +++ b/modules/git/config.nix @@ -4,11 +4,13 @@ ... }: let inherit (builtins) toJSON; - inherit (lib) addDescriptionsToMappings mkIf mkMerge mkSetExprBinding mkSetLuaBinding nvim; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.nvim.binds) addDescriptionsToMappings mkSetExprBinding mkSetLuaBinding; + inherit (lib.nvim.dag) entryAnywhere; cfg = config.vim.git; - self = import ./git.nix {inherit lib;}; + self = import ./git.nix {inherit lib config;}; gsMappingDefinitions = self.options.vim.git.gitsigns.mappings; gsMappings = addDescriptionsToMappings cfg.gitsigns.mappings gsMappingDefinitions; @@ -61,7 +63,7 @@ in { (mkSetLuaBinding gsMappings.resetHunk "function() package.loaded.gitsigns.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end") ]; - vim.luaConfigRC.gitsigns = nvim.dag.entryAnywhere '' + vim.luaConfigRC.gitsigns = entryAnywhere '' require('gitsigns').setup{} ''; } diff --git a/modules/git/default.nix b/modules/git/default.nix index 6336b41..d3348bc 100644 --- a/modules/git/default.nix +++ b/modules/git/default.nix @@ -1,4 +1,4 @@ -{...}: { +{ imports = [ ./config.nix ./git.nix diff --git a/modules/git/git.nix b/modules/git/git.nix index 0447fc4..1201982 100644 --- a/modules/git/git.nix +++ b/modules/git/git.nix @@ -1,11 +1,16 @@ -{lib, ...}: let - inherit (lib) mkEnableOption mkMappingOption; +{ + config, + lib, + ... +}: let + inherit (lib.options) mkEnableOption; + inherit (lib.nvim.binds) mkMappingOption; in { options.vim.git = { - enable = mkEnableOption "git tools via gitsigns"; + enable = mkEnableOption "git integration"; gitsigns = { - enable = mkEnableOption "gitsigns"; + enable = mkEnableOption "gitsigns" // {default = config.vim.git.enable;}; mappings = { nextHunk = mkMappingOption "Next hunk [Gitsigns]" "]c"; diff --git a/modules/languages/bash/bash.nix b/modules/languages/bash/bash.nix index 243f30c..03cce94 100644 --- a/modules/languages/bash/bash.nix +++ b/modules/languages/bash/bash.nix @@ -5,7 +5,10 @@ ... }: let inherit (builtins) attrNames; - inherit (lib) mkOption mkEnableOption types isList nvim; + inherit (lib.options) mkOption mkEnableOption literalExpression; + inherit (lib.lists) isList; + inherit (lib.types) enum either package listOf str bool; + inherit (lib.nvim.lua) expToLua; cfg = config.vim.languages.bash; @@ -19,7 +22,7 @@ on_attach = default_on_attach; cmd = ${ if isList cfg.lsp.package - then nvim.lua.expToLua cfg.lsp.package + then expToLua cfg.lsp.package else ''{"${cfg.lsp.package}/bin/bash-language-server", "start"}'' }; } @@ -70,14 +73,14 @@ in { server = mkOption { description = "Bash LSP server to use"; - type = with types; enum (attrNames servers); + type = enum (attrNames servers); default = defaultServer; }; package = mkOption { description = "bash-language-server package, or the command to run as a list of strings"; - example = lib.literalExpression ''[lib.getExe pkgs.nodePackages.bash-language-server "start"]''; - type = with types; either package (listOf str); + example = literalExpression ''[lib.getExe pkgs.nodePackages.bash-language-server "start"]''; + type = either package (listOf str); default = pkgs.nodePackages.bash-language-server; }; }; @@ -85,25 +88,24 @@ in { format = { enable = mkOption { description = "Enable Bash formatting"; - type = types.bool; + type = bool; default = config.vim.languages.enableFormat; }; type = mkOption { description = "Bash formatter to use"; - type = with types; enum (attrNames formats); + type = enum (attrNames formats); default = defaultFormat; }; package = mkOption { description = "Bash formatter package"; - type = types.package; + type = package; default = formats.${cfg.format.type}.package; }; }; extraDiagnostics = { enable = mkEnableOption "extra Bash diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; - types = lib.nvim.types.diagnostics { langDesc = "Bash"; inherit diagnostics; diff --git a/modules/languages/bash/config.nix b/modules/languages/bash/config.nix index 241032d..e55600b 100644 --- a/modules/languages/bash/config.nix +++ b/modules/languages/bash/config.nix @@ -4,7 +4,9 @@ lib, ... }: let - inherit (lib) isList nvim mkIf mkMerge; + inherit (lib.lists) isList; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.nvim.lua) expToLua; cfg = config.vim.languages.bash; diagnostics = { @@ -44,7 +46,7 @@ on_attach = default_on_attach; cmd = ${ if isList cfg.lsp.package - then nvim.lua.expToLua cfg.lsp.package + then expToLua cfg.lsp.package else ''{"${cfg.lsp.package}/bin/bash-language-server", "start"}'' }; } diff --git a/modules/languages/bash/default.nix b/modules/languages/bash/default.nix index 7dd72f7..7bb1ea2 100644 --- a/modules/languages/bash/default.nix +++ b/modules/languages/bash/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./bash.nix ./config.nix diff --git a/modules/languages/dart/config.nix b/modules/languages/dart/config.nix index 510a413..be7c111 100644 --- a/modules/languages/dart/config.nix +++ b/modules/languages/dart/config.nix @@ -4,7 +4,12 @@ pkgs, ... }: let - inherit (lib) isList nvim mkIf mkMerge optionalString boolToString; + inherit (lib.lists) isList; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.strings) optionalString; + inherit (lib.trivial) boolToString; + inherit (lib.nvim.lua) expToLua; + inherit (lib.nvim.dag) entryAnywhere; cfg = config.vim.languages.dart; ftcfg = cfg.flutter-tools; @@ -17,7 +22,7 @@ on_attach=default_on_attach; cmd = ${ if isList cfg.lsp.package - then nvim.lua.expToLua cfg.lsp.package + then expToLua cfg.lsp.package else ''{"${cfg.lsp.package}/bin/dart", "language-server", "--protocol=lsp"}'' }; ${optionalString (cfg.lsp.opts != null) "init_options = ${cfg.lsp.dartOpts}"} @@ -38,13 +43,13 @@ in { vim.lsp.lspconfig.sources.dart-lsp = servers.${cfg.lsp.server}.lspConfig; }) - (mkIf (ftcfg.enable) { + (mkIf ftcfg.enable { vim.startPlugins = if ftcfg.enableNoResolvePatch then ["flutter-tools-patched"] else ["flutter-tools"]; - vim.luaConfigRC.flutter-tools = nvim.dag.entryAnywhere '' + vim.luaConfigRC.flutter-tools = entryAnywhere '' require('flutter-tools').setup { lsp = { color = { -- show the derived colours for dart variables diff --git a/modules/languages/dart/dart.nix b/modules/languages/dart/dart.nix index c30f1f3..13ce3d9 100644 --- a/modules/languages/dart/dart.nix +++ b/modules/languages/dart/dart.nix @@ -5,7 +5,12 @@ ... }: let inherit (builtins) attrNames; - inherit (lib) isList nvim mkEnableOption mkOption types optionalString; + inherit (lib.lists) isList; + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.types) enum either listOf package nullOr str bool; + inherit (lib.strings) optionalString; + inherit (lib.nvim.lua) expToLua; + inherit (lib.nvim.types) mkGrammarOption; cfg = config.vim.languages.dart; defaultServer = "dart"; @@ -18,7 +23,7 @@ on_attach=default_on_attach; cmd = ${ if isList cfg.lsp.package - then nvim.lua.expToLua cfg.lsp.package + then expToLua cfg.lsp.package else ''{"${cfg.lsp.package}/bin/dart", "language-server", "--protocol=lsp"}'' }; ${optionalString (cfg.lsp.opts != null) "init_options = ${cfg.lsp.dartOpts}"} @@ -32,25 +37,25 @@ in { treesitter = { enable = mkEnableOption "Dart treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = nvim.types.mkGrammarOption pkgs "dart"; + package = mkGrammarOption pkgs "dart"; }; lsp = { enable = mkEnableOption "Dart LSP support"; server = mkOption { description = "The Dart LSP server to use"; - type = with types; enum (attrNames servers); + type = enum (attrNames servers); default = defaultServer; }; package = mkOption { description = "Dart LSP server package, or the command to run as a list of strings"; example = ''[lib.getExe pkgs.jdt-language-server "-data" "~/.cache/jdtls/workspace"]''; - type = with types; either package (listOf str); + type = either package (listOf str); default = servers.${cfg.lsp.server}.package; }; opts = mkOption { description = "Options to pass to Dart LSP server"; - type = with types; nullOr str; + type = nullOr str; default = null; }; }; @@ -58,7 +63,7 @@ in { dap = { enable = mkOption { description = "Enable Dart DAP support via flutter-tools"; - type = types.bool; + type = bool; default = config.vim.languages.enableDAP; }; }; @@ -66,7 +71,7 @@ in { flutter-tools = { enable = mkOption { description = "Enable flutter-tools for flutter support"; - type = types.bool; + type = bool; default = config.vim.languages.enableLSP; }; @@ -76,7 +81,7 @@ in { This is required if you want to use a flutter package built with nix. If you are using a flutter SDK installed from a different source and encounter the error "`dart` missing from PATH", disable this option. ''; - type = types.bool; + type = bool; default = true; }; @@ -84,13 +89,13 @@ in { enable = mkEnableOption "Whether or mot to highlight color variables at all"; highlightBackground = mkOption { - type = types.bool; + type = bool; default = false; description = "Highlight the background"; }; highlightForeground = mkOption { - type = types.bool; + type = bool; default = false; description = "Highlight the foreground"; }; @@ -99,7 +104,7 @@ in { enable = mkEnableOption "Show the highlight using virtual text"; character = mkOption { - type = types.str; + type = str; default = "■"; description = "Virtual text character to highlight"; }; diff --git a/modules/languages/dart/default.nix b/modules/languages/dart/default.nix index da454ec..2ad34f3 100644 --- a/modules/languages/dart/default.nix +++ b/modules/languages/dart/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./dart.nix ./config.nix diff --git a/modules/languages/elixir/config.nix b/modules/languages/elixir/config.nix index dc05a48..eaf26ea 100644 --- a/modules/languages/elixir/config.nix +++ b/modules/languages/elixir/config.nix @@ -4,7 +4,9 @@ pkgs, ... }: let - inherit (lib) nvim mkIf getExe; + inherit (lib.modules) mkIf; + inherit (lib.meta) getExe; + inherit (lib.nvim.dag) entryAnywhere; cfg = config.vim.languages.elixir; in { @@ -13,14 +15,12 @@ in { "elixir-tools" ]; - vim.luaConfigRC.elixir-tools = nvim.dag.entryAnywhere '' + vim.luaConfigRC.elixir-tools = entryAnywhere '' local elixir = require("elixir") local elixirls = require("elixir.elixirls") elixir.setup { elixirls = { - - -- alternatively, point to an existing elixir-ls installation (optional) -- not currently supported by elixirls, but can be a table if you wish to pass other args `{"path/to/elixirls", "--foo"}` cmd = "${getExe pkgs.elixir-ls}", @@ -51,6 +51,7 @@ in { vim.keymap.set("n", "K", "lua vim.lsp.buf.hover()", map_opts) vim.keymap.set("n", "gD","lua vim.lsp.buf.implementation()", map_opts) vim.keymap.set("n", "1gD","lua vim.lsp.buf.type_definition()", map_opts) + -- keybinds for fzf-lsp.nvim: https://github.com/gfanto/fzf-lsp.nvim -- you could also use telescope.nvim: https://github.com/nvim-telescope/telescope.nvim -- there are also core vim.lsp functions that put the same data in the loclist diff --git a/modules/languages/elixir/default.nix b/modules/languages/elixir/default.nix index b8ea9be..c84acf0 100644 --- a/modules/languages/elixir/default.nix +++ b/modules/languages/elixir/default.nix @@ -1,4 +1,4 @@ -_: { +{ imports = [ ./config.nix ./elixir-tools.nix diff --git a/modules/languages/elixir/elixir-tools.nix b/modules/languages/elixir/elixir-tools.nix index 42e69a3..0527359 100644 --- a/modules/languages/elixir/elixir-tools.nix +++ b/modules/languages/elixir/elixir-tools.nix @@ -1,9 +1,5 @@ -{ - config, - lib, - ... -}: let - inherit (lib) mkEnableOption; +{lib, ...}: let + inherit (lib.options) mkEnableOption; in { options.vim.languages.elixir = { enable = mkEnableOption "Elixir language support";