modules: move vim-dirtytalk to `plugins/spellcheck`

This commit is contained in:
NotAShelf 2024-04-14 14:41:10 +03:00
parent 6011ec2bab
commit b4384a833f
No known key found for this signature in database
GPG Key ID: 02D1DD3FA08B6B29
7 changed files with 48 additions and 8 deletions

View File

@ -29,6 +29,8 @@ inputs: let
};
};
vim.spellcheck.vim-dirtytalk.enable = true;
vim.lsp = {
formatOnSave = true;
lspkind.enable = false;

View File

@ -33,6 +33,7 @@
"rich-presence"
"session"
"snippets"
"spellcheck"
"statusline"
"tabline"
"terminal"

View File

@ -5,17 +5,15 @@
}: let
inherit (lib.modules) mkIf;
inherit (lib.options) mkEnableOption literalExpression mkOption;
inherit (lib.strings) concatStringsSep optionalString;
inherit (lib.strings) concatStringsSep;
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"];
@ -26,12 +24,10 @@ in {
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}
''}
" Spellchecking
set spell
set spelllang=${concatStringsSep "," cfg.languages}
'';
};
};

View File

@ -0,0 +1,5 @@
{
imports = [
./vim-dirtytalk
];
}

View File

@ -0,0 +1,23 @@
{
config,
lib,
...
}: let
inherit (lib.modules) mkIf;
inherit (lib.nvim.dag) entryAfter;
cfg = config.vim.spellcheck;
in {
config = mkIf cfg.vim-dirtytalk.enable {
vim = {
startPlugins = ["vim-dirtytalk"];
# vim-dirtytalk doesn't have any setup
# but we would like to append programming to spelllang
# as soon as possible while the plugin is enabled
luaConfigRC.vim-dirtytalk = entryAfter ["basic"] ''
-- append programming to spelllang
vim.opt.spelllang:append("programming")
'';
};
};
}

View File

@ -0,0 +1,6 @@
{
imports = [
./config.nix
./vim-dirtytalk.nix
];
}

View File

@ -0,0 +1,7 @@
{lib, ...}: let
inherit (lib.options) mkEnableOption;
in {
options.vim.spellcheck.vim-dirtytalk = {
enable = mkEnableOption "vim-dirtytalk, a wordlist for programmers, that includes programming words";
};
}