mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-30 08:36:46 +00:00
39 lines
1.2 KiB
Nix
39 lines
1.2 KiB
Nix
|
{
|
||
|
config,
|
||
|
lib,
|
||
|
...
|
||
|
}: let
|
||
|
inherit (lib.modules) mkIf;
|
||
|
inherit (lib.options) mkEnableOption literalExpression mkOption;
|
||
|
inherit (lib.strings) concatStringsSep optionalString;
|
||
|
inherit (lib.lists) optionals;
|
||
|
inherit (lib.types) listOf str;
|
||
|
inherit (lib.nvim.dag) entryAfter;
|
||
|
|
||
|
cfg = config.vim.spellChecking;
|
||
|
languages = cfg.languages ++ optionals cfg.enableProgrammingWordList ["programming"];
|
||
|
in {
|
||
|
options.vim.spellChecking = {
|
||
|
enable = mkEnableOption "neovim's built-in spellchecking";
|
||
|
enableProgrammingWordList = mkEnableOption "vim-dirtytalk, a wordlist for programmers, that includes programming words";
|
||
|
languages = mkOption {
|
||
|
type = listOf str;
|
||
|
default = ["en"];
|
||
|
example = literalExpression ["en" "de"];
|
||
|
description = "The languages to be used for spellchecking";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = mkIf cfg.enable {
|
||
|
vim = {
|
||
|
startPlugins = optionals cfg.spellChecking.enableProgrammingWordList ["vim-dirtytalk"];
|
||
|
configRC.spellchecking = entryAfter ["basic"] ''
|
||
|
${optionalString cfg.enable ''
|
||
|
set spell
|
||
|
set spelllang=${concatStringsSep "," languages}
|
||
|
''}
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|