2024-03-07 19:48:29 +01:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
helpers,
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib;
|
2024-05-05 19:39:35 +02:00
|
|
|
helpers.neovim-plugin.mkNeovimPlugin config {
|
|
|
|
name = "ltex-extra";
|
|
|
|
originalName = "ltex_extra.nvim";
|
|
|
|
defaultPackage = pkgs.vimPlugins.ltex_extra-nvim;
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
maintainers = [ maintainers.loicreynier ];
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
callSetup = false;
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
settingsOptions = {
|
|
|
|
path = helpers.defaultNullOpts.mkStr "" ''
|
|
|
|
Path (relative to project root) to load external files from.
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
Commonly used values are:
|
|
|
|
- `.ltex`
|
|
|
|
- `.vscode` for compatibility with projects using the associated VS Code extension.
|
|
|
|
'';
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
init_check = helpers.defaultNullOpts.mkBool true ''
|
|
|
|
Whether to load dictionaries on startup.
|
|
|
|
'';
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
load_langs = helpers.defaultNullOpts.mkNullable (types.listOf types.str) ''["en-US"]'' ''
|
|
|
|
Languages for witch dicionnaries will be loaded.
|
|
|
|
See `plugins.lsp.servers.ltex.languages` for possible values.
|
|
|
|
'';
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
log_level = helpers.defaultNullOpts.mkStr "none" ''
|
|
|
|
Log level. Possible values:
|
|
|
|
- "none"
|
|
|
|
- "trace"
|
|
|
|
- "debug"
|
|
|
|
- "info"
|
|
|
|
- "warn"
|
|
|
|
- "error"
|
|
|
|
- "fatal"
|
|
|
|
'';
|
|
|
|
};
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
extraConfig = cfg: {
|
|
|
|
warnings = optional (!config.plugins.lsp.enable) ''
|
|
|
|
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.
|
|
|
|
'';
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
extraPlugins = [ cfg.package ];
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
plugins.lsp = {
|
|
|
|
servers.ltex = {
|
|
|
|
# Enable the ltex language server
|
|
|
|
enable = true;
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
onAttach.function = ''
|
|
|
|
require("ltex_extra").setup(${helpers.toLuaObject cfg.settings})
|
|
|
|
'';
|
2024-03-07 19:48:29 +01:00
|
|
|
};
|
|
|
|
};
|
2024-05-05 19:39:35 +02:00
|
|
|
};
|
2024-03-07 19:48:29 +01:00
|
|
|
|
2024-05-05 19:39:35 +02:00
|
|
|
settingsExample = {
|
|
|
|
path = ".ltex";
|
|
|
|
initCheck = true;
|
|
|
|
loadLangs = [
|
|
|
|
"en-US"
|
|
|
|
"fr-FR"
|
|
|
|
];
|
|
|
|
logLevel = "non";
|
|
|
|
};
|
|
|
|
}
|