This commit is contained in:
Erik Nygren 2025-06-19 12:34:15 +01:00 committed by GitHub
commit 98cad2c6e8
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";
@ -12,6 +16,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 = {
@ -44,24 +52,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 = {

View file

@ -249,7 +249,7 @@ in
'';
};
fields = defaultNullOpts.mkAttrsOf' {
bibtex.fields = defaultNullOpts.mkAttrsOf' {
type = types.bool;
pluginDefault = { };
example = {

View file

@ -82,7 +82,6 @@
"laravel_ls"
"lean3ls"
"lelwel_ls"
"ltex_plus"
"lwc_ls"
"m68k"
"marko-js"
@ -281,6 +280,7 @@
lemminx = "lemminx";
lsp_ai = "lsp-ai";
ltex = "ltex-ls";
ltex_plus = "ltex-ls-plus";
lua_ls = "lua-language-server";
luau_lsp = "luau-lsp";
markdown_oxide = "markdown-oxide";