feat(spell): add multiple language support and vim-dirtytalk

BREAKING CHANGE: `vim.spellChecking.language` is replaced with `vim.spellChecking.languages`
This commit is contained in:
yavko 2023-08-06 14:24:54 +03:00
parent 6173845515
commit 31c237d149
No known key found for this signature in database
GPG key ID: F07D19A32407F857
4 changed files with 34 additions and 7 deletions

View file

@ -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": {

View file

@ -456,6 +456,12 @@
flake = false;
};
# Spellchecking
vim-dirtytalk = {
url = "github:psliwka/vim-dirtytalk";
flake = false;
};
# Terminal
toggleterm-nvim = {
url = "github:akinsho/toggleterm.nvim";

View file

@ -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}"

View file

@ -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"];
};
};