This commit is contained in:
Erik Nygren 2025-08-01 20:10:26 +01:00 committed by GitHub
commit 73e11cd45d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 66 additions and 17 deletions

View file

@ -467,7 +467,7 @@ in
{
enable = mkOverride 1490 true;
};
warnings = lib.nixvim.mkWarnings "plugins.ltex-extra" {
warnings = lib.nixvim.mkWarnings "plugins.lspsaga" {
# https://nvimdev.github.io/lspsaga/implement/#default-options
when = (cfg.implement.enable == true) && (cfg.symbolInWinbar.enable == false);

View file

@ -2,9 +2,13 @@
lib,
helpers,
config,
options,
...
}:
with lib;
let
lspCfg = config.plugins.lsp;
in
lib.nixvim.plugins.mkNeovimPlugin {
name = "ltex-extra";
packPathName = "ltex_extra.nvim";
@ -13,6 +17,10 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ maintainers.loicreynier ];
description = ''
This plugin works with both the ltex or ltex_plus language servers and will enable ltex_plus if neither are.
'';
callSetup = false;
settingsOptions = {
@ -45,24 +53,65 @@ lib.nixvim.plugins.mkNeovimPlugin {
};
extraConfig = cfg: {
warnings = lib.nixvim.mkWarnings "plugins.ltex-extra" {
when = !config.plugins.lsp.enable;
message = ''
You have enabled `ltex-extra` but not the lsp (`plugins.lsp`).
You should set `plugins.lsp.enable = true` to make use of the LTeX_extra plugin's features.
'';
};
warnings = lib.nixvim.mkWarnings "plugins.ltex-extra" [
{
when = !lspCfg.enable;
message = ''
You have enabled `ltex-extra` but not the lsp (`plugins.lsp`).
You should set `plugins.lsp.enable = true` to make use of the LTeX_extra plugin's features.
'';
}
(
let
expectedDefs = map toString [
./.
../../lsp/language-servers
];
isExternal = d: !elem d.file expectedDefs;
anyExternal =
acc: name: v:
let
e = findFirst isExternal null v.definitionsWithLocations;
in
if acc != null then
acc
else if e == null then
null
else
{
inherit name;
inherit (e) file;
};
external = foldlAttrs anyExternal null options.plugins.lsp.servers.ltex;
in
{
# TODO: Added 2025-03-30; remove after 25.05
# Warn if servers.ltex seems to be configured outside of ltex-extra
when = !lspCfg.servers.ltex.enable && external != null;
message = ''
in ${external.file}
You seem to have configured `plugins.lsp.servers.ltex.${external.name}` for `ltex-extra`.
It now uses `plugins.lsp.servers.ltex_plus` by default,
either move the configuration or explicitly enable `ltex` with `plugins.lsp.servers.ltex.enable = true`
'';
}
)
];
plugins.lsp = {
servers.ltex = {
# Enable the ltex language server
enable = true;
onAttach.function = ''
plugins.lsp =
let
attachLua = ''
require("ltex_extra").setup(${lib.nixvim.toLuaObject cfg.settings})
'';
in
{
servers.ltex.onAttach.function = attachLua;
servers.ltex_plus = {
# Enable ltex_plus if ltex is not already enabled
enable = mkIf (!lspCfg.servers.ltex.enable) (mkDefault true);
onAttach.function = attachLua;
};
};
};
};
settingsExample = {