modules: move vim-dirtytalk to plugins/spellcheck

This commit is contained in:
raf 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 = { vim.lsp = {
formatOnSave = true; formatOnSave = true;
lspkind.enable = false; lspkind.enable = false;

View file

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

View file

@ -5,17 +5,15 @@
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (lib.options) mkEnableOption literalExpression mkOption; inherit (lib.options) mkEnableOption literalExpression mkOption;
inherit (lib.strings) concatStringsSep optionalString; inherit (lib.strings) concatStringsSep;
inherit (lib.lists) optionals; inherit (lib.lists) optionals;
inherit (lib.types) listOf str; inherit (lib.types) listOf str;
inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.dag) entryAfter;
cfg = config.vim.spellChecking; cfg = config.vim.spellChecking;
languages = cfg.languages ++ optionals cfg.enableProgrammingWordList ["programming"];
in { in {
options.vim.spellChecking = { options.vim.spellChecking = {
enable = mkEnableOption "neovim's built-in spellchecking"; enable = mkEnableOption "neovim's built-in spellchecking";
enableProgrammingWordList = mkEnableOption "vim-dirtytalk, a wordlist for programmers, that includes programming words";
languages = mkOption { languages = mkOption {
type = listOf str; type = listOf str;
default = ["en"]; default = ["en"];
@ -26,12 +24,10 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
vim = { vim = {
startPlugins = optionals cfg.spellChecking.enableProgrammingWordList ["vim-dirtytalk"];
configRC.spellchecking = entryAfter ["basic"] '' configRC.spellchecking = entryAfter ["basic"] ''
${optionalString cfg.enable '' " Spellchecking
set spell set spell
set spelllang=${concatStringsSep "," languages} 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";
};
}