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/modules/basic/config.nix b/modules/basic/config.nix index 9329346..526285e 100644 --- a/modules/basic/config.nix +++ b/modules/basic/config.nix @@ -8,7 +8,10 @@ with builtins; let cfg = config.vim; in { config = { - vim.startPlugins = ["plenary-nvim"]; + vim.startPlugins = + if cfg.spellChecking.enableProgrammingWordList + then ["plenary-nvim" "vim-dirtytalk"] + else ["plenary-nvim"]; vim.maps.normal = mkIf cfg.disableArrows { @@ -140,7 +143,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..ff37cf8 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 "adds vim-dirtytalk, a wordlist for programmers, that includes programming words"; + languages = mkOption { + type = types.listOf types.str; + description = "The languages to be used for spellchecking"; + default = ["en_US"]; + example = ["en_US" "de"]; }; };