From 38257935494d93756d3404ab153c54ff6e2c5892 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Fri, 10 Jan 2025 11:20:54 +0300 Subject: [PATCH] various: address diniamo's review comments --- configuration.nix | 2 +- docs/release-notes/rl-0.7.md | 2 +- modules/neovim/init/spellcheck.nix | 15 +++++++++++---- modules/wrapper/rc/options.nix | 15 ++++++--------- 4 files changed, 19 insertions(+), 15 deletions(-) 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/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..21d0e26e 100644 --- a/modules/wrapper/rc/options.nix +++ b/modules/wrapper/rc/options.nix @@ -238,13 +238,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 +310,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 +354,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