Merge pull request #1101 from gmvar/lsp/harper-ls

lsp/harper-ls: init
This commit is contained in:
Ching Pei Yang 2025-08-30 12:05:39 +02:00 committed by GitHub
commit d2ceb1b610
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 68 additions and 0 deletions

View file

@ -31,6 +31,7 @@ isMaximal: {
lspSignature.enable = !isMaximal; # conflicts with blink in maximal lspSignature.enable = !isMaximal; # conflicts with blink in maximal
otter-nvim.enable = isMaximal; otter-nvim.enable = isMaximal;
nvim-docs-view.enable = isMaximal; nvim-docs-view.enable = isMaximal;
harper-ls.enable = isMaximal;
}; };
debugger = { debugger = {

View file

@ -528,6 +528,12 @@
- Fixed `typescript` treesitter grammar not being included by default. - 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.
[derethil](https://github.com/derethil): [derethil](https://github.com/derethil):
- Fix `vim.lazy.plugins.<name>.enabled` Lua evaluation. - Fix `vim.lazy.plugins.<name>.enabled` Lua evaluation.

View file

@ -7,6 +7,7 @@
./lspconfig ./lspconfig
./lspsaga ./lspsaga
./null-ls ./null-ls
./harper-ls
# lsp plugins # lsp plugins
./lspsaga ./lspsaga

View file

@ -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;};
};
};
}

View file

@ -0,0 +1,6 @@
{
imports = [
./harper-ls.nix
./config.nix
];
}

View file

@ -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";
};
};
}