diff --git a/modules/module/settings/cat-packages.nix b/modules/module/settings/cat-packages.nix index 49a33e6..dbdba3f 100644 --- a/modules/module/settings/cat-packages.nix +++ b/modules/module/settings/cat-packages.nix @@ -5,10 +5,10 @@ ... }: let - -- Include packages from a category only if that category is enabled. - -- NOTE: The package list expression is still evaluated (packages in Nix are - -- lazy by default, so derivations are not built), so keep side-effecting - -- expressions out of these lists. + # Include packages from a category only if that category is enabled. + # NOTE: Package list expressions are lazily evaluated, and derivations are + # not built until needed, so keep side-effecting expressions out of these + # lists. maybe = cat: pkgsList: lib.optionals (config.cats.${cat} or false) pkgsList; rPackages = (pkgs.baseRPackages or [ ]) ++ config.settings.lang_packages.r; @@ -25,7 +25,9 @@ in }; config.catPkgs = { - always = maybe "always" (with pkgs; [ ]); + always = maybe "always" (with pkgs; [ + ripgrep + ]); clickhouse = maybe "clickhouse" (with pkgs; [ clickhouse-lts ]); @@ -51,7 +53,7 @@ in marksman texlab imagemagick - luaPackages.magick + harper ]); nix = maybe "nix" (with pkgs; [ diff --git a/modules/module/settings/lang-packages.nix b/modules/module/settings/lang-packages.nix index 97ec4e7..3be7a9a 100644 --- a/modules/module/settings/lang-packages.nix +++ b/modules/module/settings/lang-packages.nix @@ -44,7 +44,10 @@ data_table janitor styler - vscDebugger + # vscDebugger is not on CRAN/Bioconductor, so it is not available in + # pkgs.rpkgs.rPackages. Install it manually in your R library if you + # want to use the nvim-dap R adapter (see plugin/26_dap.lua). + # vscDebugger lintr ]) ); diff --git a/modules/module/specs/plugins.nix b/modules/module/specs/plugins.nix index ff072cc..7630632 100644 --- a/modules/module/specs/plugins.nix +++ b/modules/module/specs/plugins.nix @@ -36,7 +36,6 @@ let "rnoweb" "regex" "sql" - "stata" "toml" "vim" "vimdoc" @@ -190,9 +189,9 @@ in { ]; }; - -- Lazy-loaded plugins needed when the `r` cat is on. Kept separate from - -- `utils-lazy` so users with `r=true` and `utils=false` still get the - -- R debugger (via vscDebugger) and in-buffer image rendering for plots. + # Lazy-loaded plugins needed when the `r` cat is on. Kept separate from + # `utils-lazy` so users with `r=true` and `utils=false` still get the + # nvim-dap R adapter and in-buffer image rendering for plots. config.specs.r-lazy = lib.mkIf (config.cats.r or false) { lazy = true; data = with pkgs.vimPlugins; [ diff --git a/plugin/25_lsp.lua b/plugin/25_lsp.lua index e249872..5250cdd 100644 --- a/plugin/25_lsp.lua +++ b/plugin/25_lsp.lua @@ -17,6 +17,37 @@ now_if_args(function() marksman = { filetypes = { "markdown", "markdown_inline", "codecompanion" }, }, + harper_ls = { + cmd = { "harper-ls", "--stdio" }, + filetypes = { "markdown", "quarto", "text", "tex", "typst" }, + root_markers = { ".git", ".harper" }, + settings = { + ["harper-ls"] = { + linters = { + SpellCheck = true, + SpelledNumbers = false, + AnA = true, + SentenceCapitalization = true, + UnclosedQuotes = true, + WrongApostrophe = false, + LongSentences = true, + RepeatedWords = true, + Spaces = true, + CorrectNumberSuffix = true, + }, + codeActions = { + ForceStable = false, + }, + markdown = { + IgnoreLinkTitle = false, + }, + diagnosticSeverity = "hint", + isolateEnglish = false, + dialect = "American", + maxFileLength = 120000, + }, + }, + }, nil_ls = { settings = { ["nil"] = {