diff --git a/docs/release-notes/rl-0.5.adoc b/docs/release-notes/rl-0.5.adoc index 78c18f5..9526493 100644 --- a/docs/release-notes/rl-0.5.adoc +++ b/docs/release-notes/rl-0.5.adoc @@ -24,6 +24,8 @@ https://github.com/yavko[yavko]: * Added Deno Language Server for javascript/typescript +* Added support for multiple languages <>, and added vim-dirtytalk <> + https://github.com/notashelf[notashelf]: * Added GitHub Copilot to completion sources. diff --git a/flake.lock b/flake.lock index 078c43f..6820ac4 100644 --- a/flake.lock +++ b/flake.lock @@ -1491,6 +1491,7 @@ "toggleterm-nvim": "toggleterm-nvim", "tokyonight": "tokyonight", "trouble": "trouble", + "vim-dirtytalk": "vim-dirtytalk", "vim-illuminate": "vim-illuminate", "vim-markdown": "vim-markdown", "vim-repeat": "vim-repeat", @@ -1788,6 +1789,22 @@ "type": "github" } }, + "vim-dirtytalk": { + "flake": false, + "locked": { + "lastModified": 1690722430, + "narHash": "sha256-kjyLwkAk6mqK7u4+zAr+Yh+zbSiukNKtXwb7t39LUco=", + "owner": "psliwka", + "repo": "vim-dirtytalk", + "rev": "a49251dce1852875951d95f7013979ece5caebf0", + "type": "github" + }, + "original": { + "owner": "psliwka", + "repo": "vim-dirtytalk", + "type": "github" + } + }, "vim-illuminate": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 957010b..ea91125 100644 --- a/flake.nix +++ b/flake.nix @@ -456,6 +456,12 @@ flake = false; }; + # Spellchecking + vim-dirtytalk = { + url = "github:psliwka/vim-dirtytalk"; + flake = false; + }; + # Terminal toggleterm-nvim = { url = "github:akinsho/toggleterm.nvim"; diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index 18ad20c..03251de 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -91,6 +91,7 @@ with lib; let "nvim-navbuddy" "copilot-cmp" "lsp-lines" + "vim-dirtytalk" ]; # You can either use the name of the plugin or a package. pluginType = with types; diff --git a/modules/basic/config.nix b/modules/basic/config.nix index 9329346..f85da79 100644 --- a/modules/basic/config.nix +++ b/modules/basic/config.nix @@ -8,7 +8,7 @@ with builtins; let cfg = config.vim; in { config = { - vim.startPlugins = ["plenary-nvim"]; + vim.startPlugins = ["plenary-nvim"] ++ lib.optionals (cfg.spellChecking.enableProgrammingWordList) ["vim-dirtytalk"]; vim.maps.normal = mkIf cfg.disableArrows { @@ -140,7 +140,7 @@ in { ''} ${optionalString cfg.spellChecking.enable '' set spell - set spelllang=${toString cfg.spellChecking.language} + set spelllang=${builtins.concatStringsSep "," cfg.spellChecking.languages}${optionalString cfg.spellChecking.enableProgrammingWordList ",programming"} ''} ${optionalString (cfg.leaderKey != null) '' let mapleader = "${toString cfg.leaderKey}" diff --git a/modules/basic/module.nix b/modules/basic/module.nix index 1793607..553ee15 100644 --- a/modules/basic/module.nix +++ b/modules/basic/module.nix @@ -31,11 +31,12 @@ with builtins; { spellChecking = { enable = mkEnableOption "neovim's built-in spellchecking"; - language = mkOption { - type = types.str; - description = "The language to be used for spellchecking"; - default = "en_US"; - example = "de"; + enableProgrammingWordList = mkEnableOption "vim-dirtytalk, a wordlist for programmers, that includes programming words"; + languages = mkOption { + type = with types; listOf str; + description = "The languages to be used for spellchecking"; + default = ["en"]; + example = ["en" "de"]; }; };