diff --git a/configuration.nix b/configuration.nix index 3be1d39b..15f85480 100644 --- a/configuration.nix +++ b/configuration.nix @@ -13,7 +13,7 @@ isMaximal: { }; spellcheck = { - enable = isMaximal; + enable = true; }; lsp = { diff --git a/docs/release-notes/rl-0.7.md b/docs/release-notes/rl-0.7.md index 32186a8f..d62e3619 100644 --- a/docs/release-notes/rl-0.7.md +++ b/docs/release-notes/rl-0.7.md @@ -28,7 +28,7 @@ configuration formats. ### `vim.maps` rewrite {#sec-vim-maps-rewrite} -Instead of specifying map modes using submodules (e.g.: `vim.maps.normal`), a +Instead of specifying map modes using submodules (e.g., `vim.maps.normal`), a new `vim.keymaps` submodule with support for a `mode` option has been introduced. It can be either a string, or a list of strings, where a string represents the short-name of the map mode(s), that the mapping should be set diff --git a/lib/languages.nix b/lib/languages.nix index 56c225d6..a202ff14 100644 --- a/lib/languages.nix +++ b/lib/languages.nix @@ -5,13 +5,6 @@ inherit (lib.types) bool; inherit (lib.nvim.attrsets) mapListToAttrs; in { - # Converts a boolean to a yes/no string. This is used in lots of - # configuration formats, and is not covered by `toLuaObject` - toVimBool = bool: - if bool - then "yes" - else "no"; - diagnosticsToLua = { lang, config, diff --git a/modules/neovim/init/spellcheck.nix b/modules/neovim/init/spellcheck.nix index f8d784da..fb0f86ea 100644 --- a/modules/neovim/init/spellcheck.nix +++ b/modules/neovim/init/spellcheck.nix @@ -6,7 +6,7 @@ }: let inherit (lib.modules) mkIf mkRenamedOptionModule; inherit (lib.options) mkOption mkEnableOption literalExpression; - inherit (lib.strings) concatLines; + inherit (lib.strings) concatLines concatStringsSep optionalString; inherit (lib.attrsets) mapAttrsToList; inherit (lib.types) listOf str attrsOf; inherit (lib.nvim.lua) listToLuaTable; @@ -134,10 +134,17 @@ in { options = { spell = true; - spelllang = cfg.languages; + + # Workaround for Neovim's spelllang setup. It can be + # - a string, e.g., "en" + # - multiple strings, separated with commas, e.g., "en,de" + # toLuaObject cannot generate the correct type here, unless we take a string here. + spelllang = concatStringsSep "," cfg.languages; }; - luaConfigRC.spellcheck = entryAfter ["basic"] '' + # Register an autocommand to disable spellchecking in buffers with given filetypes. + # If the list is empty, the autocommand does not need to be registered. + luaConfigRC.spellcheck = entryAfter ["basic"] (optionalString (cfg.ignoredFiletypes != []) '' -- Disable spellchecking for certain filetypes -- as configured by `vim.spellcheck.ignoredFiletypes` vim.api.nvim_create_augroup("nvf_autocmds", {clear = false}) @@ -148,7 +155,7 @@ in { vim.opt_local.spell = false end, }) - ''; + ''); }; }; } diff --git a/modules/wrapper/rc/options.nix b/modules/wrapper/rc/options.nix index 36296f02..4cd3026f 100644 --- a/modules/wrapper/rc/options.nix +++ b/modules/wrapper/rc/options.nix @@ -6,8 +6,6 @@ inherit (lib.options) mkOption literalMD literalExpression; inherit (lib.strings) optionalString; inherit (lib.types) str bool int enum attrsOf lines listOf either path submodule anything; - inherit (lib.trivial) isBool; - inherit (lib.nvim.languages) toVimBool; inherit (lib.nvim.types) dagOf; inherit (lib.nvim.lua) listToLuaTable; @@ -238,13 +236,10 @@ in { }; signcolumn = mkOption { - type = either str bool; - default = true; - apply = x: - if isBool x - then toVimBool x # convert to a yes/no str - else x; - description = "Show the sign column"; + type = str; + default = "yes"; + example = "no"; + description = "Whether to show the sign column"; }; tabstop = mkOption { @@ -313,7 +308,7 @@ in { if [](#opt-vim.enableLuaLoader) is set to true. ''; - example = literalExpression ''''${builtins.readFile ./my-lua-config-pre.lua}''; + example = literalExpression "\${builtins.readFile ./my-lua-config-pre.lua}"; description = '' Verbatim lua code that will be inserted **before** @@ -357,7 +352,7 @@ in { luaConfigPost = mkOption { type = str; default = ""; - example = literalExpression ''"$${builtins.readFile ./my-lua-config-post.lua}"''; + example = literalExpression "\${builtins.readFile ./my-lua-config-post.lua}"; description = '' Verbatim lua code that will be inserted **after** the result of the `luaConfigRc` DAG has been resolved