From f119298d10063d733e32d1c23462e0dbea37c768 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sun, 24 Aug 2025 23:43:54 +0200 Subject: [PATCH 1/7] docs: fix formatting --- docs/release-notes/rl-0.8.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 7c92ee80..041266f0 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -515,10 +515,12 @@ [Morsicus](https://github.com/Morsicus): -- Add [EEx Treesitter Grammar](https://github.com/connorlay/tree-sitter-eex) for Elixir -- Add [HEEx Treesitter Grammar](https://github.com/phoenixframework/tree-sitter-heex) for Elixir +- Add [EEx Treesitter Grammar](https://github.com/connorlay/tree-sitter-eex) for + Elixir +- Add + [HEEx Treesitter Grammar](https://github.com/phoenixframework/tree-sitter-heex) + for Elixir [diced](https://github.com/diced): - Fixed `typescript` treesitter grammar not being included by default. - From c390d28c8aab3e3f572fbbe24f4e106573f54df0 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sun, 24 Aug 2025 23:58:05 +0200 Subject: [PATCH 2/7] docs: remove outdated mention of null-ls --- docs/manual/configuring/languages.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/manual/configuring/languages.md b/docs/manual/configuring/languages.md index 252163fb..57380d8c 100644 --- a/docs/manual/configuring/languages.md +++ b/docs/manual/configuring/languages.md @@ -1,10 +1,10 @@ # Language Support {#ch-languages} Language specific support means there is a combination of language specific -plugins, `treesitter` support, `nvim-lspconfig` language servers, and `null-ls` -integration. This gets you capabilities ranging from autocompletion to -formatting to diagnostics. The following languages have sections under the -`vim.languages` attribute. +plugins, `treesitter` support, `nvim-lspconfig` language servers, `conform-nvim` +formatters, and `nvim-lint` linter integration. This gets you capabilities +ranging from autocompletion to formatting to diagnostics. The following +languages have sections under the `vim.languages` attribute. - Rust: [vim.languages.rust.enable](#opt-vim.languages.rust.enable) - Nix: [vim.languages.nix.enable](#opt-vim.languages.nix.enable) From b88773b6480ce717bd1a86a9008db8e910ca97e7 Mon Sep 17 00:00:00 2001 From: Jamy Golden Date: Sat, 23 Aug 2025 10:22:20 +0200 Subject: [PATCH 3/7] docs: Add missing languages to manual --- docs/manual/configuring/languages.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/manual/configuring/languages.md b/docs/manual/configuring/languages.md index 252163fb..208b93cc 100644 --- a/docs/manual/configuring/languages.md +++ b/docs/manual/configuring/languages.md @@ -20,6 +20,34 @@ formatting to diagnostics. The following languages have sections under the - Lua: [vim.languages.lua.enable](#opt-vim.languages.lua.enable) - PHP: [vim.languages.php.enable](#opt-vim.languages.php.enable) - F#: [vim.languages.fsharp.enable](#opt-vim.languages.fsharp.enable) +- Assembly: [vim.languages.assembly.enable](#opt-vim.languages.assembly.enable) +- Astro: [vim.languages.astro.enable](#opt-vim.languages.astro.enable) +- Bash: [vim.languages.bash.enable](#opt-vim.languages.bash.enable) +- Clang: [vim.languages.clang.enable](#opt-vim.languages.clang.enable) +- Clojure: [vim.languages.clojure.enable](#opt-vim.languages.clojure.enable) +- C#: [vim.languages.csharp.enable](#opt-vim.languages.csharp.enable) +- CSS: [vim.languages.css.enable](#opt-vim.languages.css.enable) +- CUE: [vim.languages.cue.enable](#opt-vim.languages.cue.enable) +- Elixir: [vim.languages.elixir.enable](#opt-vim.languages.elixir.enable) +- Gleam: [vim.languages.gleam.enable](#opt-vim.languages.gleam.enable) +- HCL: [vim.languages.hcl.enable](#opt-vim.languages.hcl.enable) +- Helm: [vim.languages.helm.enable](#opt-vim.languages.helm.enable) +- Julia: [vim.languages.julia.enable](#opt-vim.languages.julia.enable) +- Kotlin: [vim.languages.kotlin.enable](#opt-vim.languages.kotlin.enable) +- Nim: [vim.languages.nim.enable](#opt-vim.languages.nim.enable) +- Nu: [vim.languages.nu.enable](#opt-vim.languages.nu.enable) +- OCaml: [vim.languages.ocaml.enable](#opt-vim.languages.ocaml.enable) +- Odin: [vim.languages.odin.enable](#opt-vim.languages.odin.enable) +- R: [vim.languages.r.enable](#opt-vim.languages.r.enable) +- Ruby: [vim.languages.ruby.enable](#opt-vim.languages.ruby.enable) +- Scala: [vim.languages.scala.enable](#opt-vim.languages.scala.enable) +- Svelte: [vim.languages.svelte.enable](#opt-vim.languages.svelte.enable) +- Tailwind: [vim.languages.tailwind.enable](#opt-vim.languages.tailwind.enable) +- Terraform: [vim.languages.terraform.enable](#opt-vim.languages.terraform.enable) +- Typst: [vim.languages.typst.enable](#opt-vim.languages.typst.enable) +- Vala: [vim.languages.vala.enable](#opt-vim.languages.vala.enable) +- WGSL: [vim.languages.wgsl.enable](#opt-vim.languages.wgsl.enable) +- YAML: [vim.languages.yaml.enable](#opt-vim.languages.yaml.enable) Adding support for more languages, and improving support for existing ones are great places where you can contribute with a PR. From c752aaa24f8cb0ded413e98e3034b9535669b462 Mon Sep 17 00:00:00 2001 From: gmvar Date: Fri, 22 Aug 2025 14:56:00 -0700 Subject: [PATCH 4/7] lsp/harper-ls: init --- configuration.nix | 1 + docs/release-notes/rl-0.8.md | 6 ++++ modules/plugins/lsp/default.nix | 1 + modules/plugins/lsp/harper-ls/config.nix | 19 +++++++++++ modules/plugins/lsp/harper-ls/default.nix | 6 ++++ modules/plugins/lsp/harper-ls/harper-ls.nix | 35 +++++++++++++++++++++ 6 files changed, 68 insertions(+) create mode 100644 modules/plugins/lsp/harper-ls/config.nix create mode 100644 modules/plugins/lsp/harper-ls/default.nix create mode 100644 modules/plugins/lsp/harper-ls/harper-ls.nix diff --git a/configuration.nix b/configuration.nix index 256f0b51..750862af 100644 --- a/configuration.nix +++ b/configuration.nix @@ -31,6 +31,7 @@ isMaximal: { lspSignature.enable = !isMaximal; # conflicts with blink in maximal otter-nvim.enable = isMaximal; nvim-docs-view.enable = isMaximal; + harper-ls.enable = isMaximal; }; debugger = { diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 041266f0..14f04b1e 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -524,3 +524,9 @@ [diced](https://github.com/diced): - Fixed `typescript` treesitter grammar not being included by default. + +[gmvar](https://github.com/gmvar): + +[harper-ls]: https://github.com/Automattic/harper + +- Add [harper-ls] to the `vim.lsp` module. diff --git a/modules/plugins/lsp/default.nix b/modules/plugins/lsp/default.nix index eb694583..ed20685d 100644 --- a/modules/plugins/lsp/default.nix +++ b/modules/plugins/lsp/default.nix @@ -7,6 +7,7 @@ ./lspconfig ./lspsaga ./null-ls + ./harper-ls # lsp plugins ./lspsaga diff --git a/modules/plugins/lsp/harper-ls/config.nix b/modules/plugins/lsp/harper-ls/config.nix new file mode 100644 index 00000000..d6e27bfc --- /dev/null +++ b/modules/plugins/lsp/harper-ls/config.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.meta) getExe; + + cfg = config.vim.lsp; +in { + config = mkIf (cfg.enable && cfg.harper-ls.enable) { + vim.lsp.servers.harper-ls = { + root_markers = [".git"]; + cmd = [(getExe pkgs.harper) "--stdio"]; + settings = {harper-ls = cfg.harper-ls.settings;}; + }; + }; +} diff --git a/modules/plugins/lsp/harper-ls/default.nix b/modules/plugins/lsp/harper-ls/default.nix new file mode 100644 index 00000000..9b4b3ec7 --- /dev/null +++ b/modules/plugins/lsp/harper-ls/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./harper-ls.nix + ./config.nix + ]; +} diff --git a/modules/plugins/lsp/harper-ls/harper-ls.nix b/modules/plugins/lsp/harper-ls/harper-ls.nix new file mode 100644 index 00000000..9fab45fe --- /dev/null +++ b/modules/plugins/lsp/harper-ls/harper-ls.nix @@ -0,0 +1,35 @@ +{lib, ...}: let + inherit (lib.options) mkOption mkEnableOption; + inherit (lib.types) anything attrsOf; +in { + options.vim.lsp.harper-ls = { + enable = mkEnableOption "Harper grammar checking LSP"; + settings = mkOption { + type = attrsOf anything; + default = {}; + example = { + userDictPath = ""; + workspaceDictPath = ""; + fileDictPath = ""; + linters = { + BoringWords = true; + PossessiveNoun = true; + SentenceCapitalization = false; + SpellCheck = false; + }; + codeActions = { + ForceStable = false; + }; + markdown = { + IgnoreLinkTitle = false; + }; + diagnosticSeverity = "hint"; + isolateEnglish = false; + dialect = "American"; + maxFileLength = 120000; + ignoredLintsPath = {}; + }; + description = "Settings to pass to harper-ls"; + }; + }; +} From fe860f701b3fb335bc0fec0c85627778c07d6937 Mon Sep 17 00:00:00 2001 From: Poseidon Date: Mon, 25 Aug 2025 12:00:52 -0500 Subject: [PATCH 5/7] docs: remove duplicate release notes entry --- docs/release-notes/rl-0.8.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 041266f0..faecdbc4 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -506,7 +506,6 @@ - Add [nvim-biscuits] support under `vim.utility.nvim-biscuits`. - Add just support under `vim.languages.just` using [just-lsp]. - Add [roslyn-ls] to the `vim.languages.csharp` module. -- Added json support under `vim.languages.json` using [jsonls] and [jsonfmt]. - Add JSON support under `vim.languages.json` using [jsonls] and [jsonfmt]. - Add advanced HTML support under `vim.languages.html` using [superhtml] and [htmlHINT]. From f6cfc3ab4beadd509548ea768927329f280fce8c Mon Sep 17 00:00:00 2001 From: Jaren Glenn Date: Tue, 26 Aug 2025 19:34:53 -0600 Subject: [PATCH 6/7] lazy: enabled option accepts luaInline instead of str Makes inline Lua enabled options evaluate to Lua instead of string literals. --- docs/release-notes/rl-0.8.md | 4 ++++ modules/wrapper/lazy/lazy.nix | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index faecdbc4..41aee57e 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -523,3 +523,7 @@ [diced](https://github.com/diced): - Fixed `typescript` treesitter grammar not being included by default. + +[derethil](https://github.com/derethil): + +- Fix `vim.lazy.plugins..enabled` Lua evaluation. diff --git a/modules/wrapper/lazy/lazy.nix b/modules/wrapper/lazy/lazy.nix index eb1f5cdf..cef54360 100644 --- a/modules/wrapper/lazy/lazy.nix +++ b/modules/wrapper/lazy/lazy.nix @@ -1,7 +1,7 @@ {lib, ...}: let inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) enum listOf submodule nullOr str bool int attrsOf anything either oneOf lines; - inherit (lib.nvim.types) pluginType; + inherit (lib.nvim.types) pluginType luaInline; inherit (lib.nvim.config) mkBool; lznKeysSpec = submodule { @@ -98,7 +98,7 @@ # lz.n options enabled = mkOption { - type = nullOr (either bool str); + type = nullOr (either bool luaInline); default = null; description = "When false, or if the lua function returns false, this plugin will not be included in the spec"; }; From a360dd23154894aac01e646402db13b2a0a33a74 Mon Sep 17 00:00:00 2001 From: sjcobb Date: Thu, 28 Aug 2025 09:36:29 +0100 Subject: [PATCH 7/7] update rl notes --- docs/release-notes/rl-0.8.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 41aee57e..78009b5f 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -111,6 +111,10 @@ - Add [hunk.nvim], Neovim plugin & tool for splitting diffs in Neovim. Available as `vim.git.hunk-nvim` +[sjcobb2022](https://github.com/sjcobb2022): + +- Migrate all current lsp configurations to `vim.lsp.server` and remove internal dependency on `nvim-lspconfig` + [amadaluzia](https://github.com/amadaluzia): [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim