mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-11-10 07:25:30 +00:00
Cleanup: Sorted sections alphabetically, utilized inherrits where appropriate
This commit is contained in:
parent
08283679ff
commit
650775ec52
1 changed files with 254 additions and 254 deletions
|
|
@ -23,51 +23,44 @@ in {
|
|||
description = "texlab package";
|
||||
};
|
||||
|
||||
forwardSearch = {
|
||||
enable = mkBool false ''
|
||||
Whether to enable forward search.
|
||||
|
||||
Enable this option if you want to have the compiled document appear in your chosen PDF viewer.
|
||||
|
||||
For some options see [here](https://github.com/latex-lsp/texlab/wiki/Previewing).
|
||||
Note this is not all the options, but can act as a guide to help you allong with custom configs.
|
||||
'';
|
||||
chktex = {
|
||||
enable = mkBool false "Whether to enable linting via chktex";
|
||||
|
||||
package = mkOption {
|
||||
type = package;
|
||||
default = pkgs.okular;
|
||||
default = pkgs.texlive.withPackages (ps: [ps.chktex]);
|
||||
description = ''
|
||||
The package to use as your PDF viewer.
|
||||
This viewer needs to support Synctex.
|
||||
The chktex package to use.
|
||||
Must have the `chktex` executable.
|
||||
'';
|
||||
};
|
||||
|
||||
executable = mkOption {
|
||||
type = str;
|
||||
default = "okular";
|
||||
description = ''
|
||||
Defines the executable of the PDF previewer. The previewer needs to support SyncTeX.
|
||||
'';
|
||||
};
|
||||
onOpenAndSave = mkBool false "Lint using chktex after opening and saving a file.";
|
||||
|
||||
args = mkOption {
|
||||
onEdit = mkBool false "Lint using chktex after editing a file.";
|
||||
|
||||
additionalArgs = mkOption {
|
||||
type = listOf str;
|
||||
default = [
|
||||
"--unique"
|
||||
"file:%p#src:%l%f"
|
||||
];
|
||||
default = [];
|
||||
description = ''
|
||||
Defines additional arguments that are passed to the configured previewer to perform the forward search.
|
||||
The placeholders %f, %p, %l will be replaced by the server.
|
||||
|
||||
Placeholders:
|
||||
- %f: The path of the current TeX file.
|
||||
- %p: The path of the current PDF file.
|
||||
- %l: The current line number.
|
||||
Additional command line arguments that are passed to chktex after editing a file.
|
||||
Don't redefine the `-I` and `-f` flags as they are set by the server.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
completion.matcher = mkOption {
|
||||
type = enum ["fuzzy" "fuzzy-ignore-case" "prefix" "prefix-ignore-case"];
|
||||
default = "fuzzy-ignore-case";
|
||||
description = ''
|
||||
Modifies the algorithm used to filter the completion items returned to the client. Possibles values are:
|
||||
- fuzzy: Fuzzy string matching (case sensitive)
|
||||
- fuzzy-ignore-case: Fuzzy string matching (case insensitive)
|
||||
- prefix: Filter out items that do not start with the search text (case sensitive)
|
||||
- prefix-ignore-case: Filter out items that do not start with the search text (case insensitive)
|
||||
'';
|
||||
};
|
||||
|
||||
diagnostics = {
|
||||
delay = mkOption {
|
||||
type = ints.positive;
|
||||
|
|
@ -101,166 +94,6 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
chktex = {
|
||||
enable = mkBool false "Whether to enable linting via chktex";
|
||||
|
||||
package = mkOption {
|
||||
type = package;
|
||||
default = pkgs.texlive.withPackages (ps: [ps.chktex]);
|
||||
description = ''
|
||||
The chktex package to use.
|
||||
Must have the `chktex` executable.
|
||||
'';
|
||||
};
|
||||
|
||||
onOpenAndSave = mkBool false "Lint using chktex after opening and saving a file.";
|
||||
|
||||
onEdit = mkBool false "Lint using chktex after editing a file.";
|
||||
|
||||
additionalArgs = mkOption {
|
||||
type = listOf str;
|
||||
default = [];
|
||||
description = ''
|
||||
Additional command line arguments that are passed to chktex after editing a file.
|
||||
Don't redefine the `-I` and `-f` flags as they are set by the server.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
symbols = {
|
||||
enable = mkBool false "Whether to enable setting symbols config.";
|
||||
|
||||
allowedPatterns = mkOption {
|
||||
type = listOf str;
|
||||
default = [];
|
||||
description = ''
|
||||
A list of regular expressions used to filter the list of reported document symbols.
|
||||
If specified, only symbols that match at least one of the specified patterns are sent to the client.
|
||||
Symbols are filtered recursively so nested symbols can still be sent to the client even though the
|
||||
parent node is removed from the results.
|
||||
|
||||
See also `texlab.symbols.ignoredPatterns`.
|
||||
|
||||
Hint: If both allowedPatterns and ignoredPatterns are set, then allowed patterns are applied first.
|
||||
Afterwards, the results are filtered with the ignored patterns.
|
||||
'';
|
||||
};
|
||||
|
||||
ignoredPatterns = mkOption {
|
||||
type = listOf str;
|
||||
default = [];
|
||||
description = ''
|
||||
A list of regular expressions used to filter the list of reported document symbols.
|
||||
If specified, only symbols that match none of the specified patterns are sent to the client.
|
||||
|
||||
See also `texlab.symbols.allowedPatterns`.
|
||||
'';
|
||||
};
|
||||
|
||||
customEnvironments = mkOption {
|
||||
type = listOf (submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = str;
|
||||
description = "The name of the environment.";
|
||||
};
|
||||
displayName = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "The name shown in the document symbols. Defaults to the value of `name`.";
|
||||
};
|
||||
label = mkBool false ''
|
||||
If set, the server will try to match a label to environment and append its number.
|
||||
'';
|
||||
};
|
||||
});
|
||||
default = [];
|
||||
example = [
|
||||
{
|
||||
name = "foo";
|
||||
displayName = "bar";
|
||||
label = false;
|
||||
}
|
||||
];
|
||||
description = ''
|
||||
A list of objects that allows extending the list of environments that are part of the document symbols.
|
||||
|
||||
See also texlab.symbols.allowedPatterns.
|
||||
|
||||
Type: listOf submodule:
|
||||
- name:
|
||||
- type: str
|
||||
- description: The name of the environment.
|
||||
- required
|
||||
- displayName:
|
||||
- type: nullOr str
|
||||
- description: The name shown in the document symbols.
|
||||
- default: <name>
|
||||
- label:
|
||||
- type: boolean
|
||||
- description: If set, the server will try to match a label to environment and append its number.
|
||||
- default: false
|
||||
|
||||
Note: This functionallity may not be working, please follow https://github.com/latex-lsp/texlab/pull/1311
|
||||
for status updates.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
latexindent = {
|
||||
local = mkOption {
|
||||
type = nullOr (either str path);
|
||||
default = null;
|
||||
description = ''
|
||||
Defines the path of a file containing the latexindent configuration.
|
||||
This corresponds to the --local=file.yaml flag of latexindent.
|
||||
By default the configuration inside the project root directory is used.
|
||||
'';
|
||||
};
|
||||
|
||||
modifyLineBreaks = mkBool false ''
|
||||
Modifies linebreaks before, during, and at the end of code blocks when formatting with latexindent.
|
||||
This corresponds to the --modifylinebreaks flag of latexindent.
|
||||
'';
|
||||
|
||||
replacement = mkOption {
|
||||
type = nullOr (enum ["-r" "-rv" "-rr"]);
|
||||
default = null;
|
||||
description = ''
|
||||
Defines an additional replacement flag that is added when calling latexindent. This can be one of the following:
|
||||
- "-r"
|
||||
- "-rv"
|
||||
- "-rr"
|
||||
- null
|
||||
By default no replacement flag is passed.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
completion.matcher = mkOption {
|
||||
type = enum ["fuzzy" "fuzzy-ignore-case" "prefix" "prefix-ignore-case"];
|
||||
default = "fuzzy-ignore-case";
|
||||
description = ''
|
||||
Modifies the algorithm used to filter the completion items returned to the client. Possibles values are:
|
||||
- fuzzy: Fuzzy string matching (case sensitive)
|
||||
- fuzzy-ignore-case: Fuzzy string matching (case insensitive)
|
||||
- prefix: Filter out items that do not start with the search text (case sensitive)
|
||||
- prefix-ignore-case: Filter out items that do not start with the search text (case insensitive)
|
||||
'';
|
||||
};
|
||||
|
||||
inlayHints = {
|
||||
labelDefinitions = mkBool true "When enabled, the server will return inlay hints for `\\label-like` commands.";
|
||||
|
||||
labelReferences = mkBool true "When enabled, the server will return inlay hints for `\\ref``-like commands.";
|
||||
|
||||
maxLength = mkOption {
|
||||
type = nullOr ints.positive;
|
||||
default = null;
|
||||
description = "When set, the server will truncate the text of the inlay hints to the specified length.";
|
||||
};
|
||||
};
|
||||
|
||||
experimental = {
|
||||
followPackageLinks = mkBool false "If set to true, dependencies of custom packages are resolved and included in the dependency graph.";
|
||||
|
||||
|
|
@ -348,31 +181,6 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
formatterLineLength = mkOption {
|
||||
type = ints.positive;
|
||||
default = 80;
|
||||
description = "Defines the maximum amount of characters per line (0 = disable) when formatting BibTeX files.";
|
||||
};
|
||||
|
||||
bibtexFormatter = mkOption {
|
||||
type = enum ["texlab" "latexindent"];
|
||||
default = "texlab";
|
||||
description = ''
|
||||
Defines the formatter to use for BibTeX formatting.
|
||||
Possible values are either texlab or latexindent.
|
||||
'';
|
||||
};
|
||||
|
||||
latexFormatter = mkOption {
|
||||
type = enum ["texlab" "latexindent"];
|
||||
default = "latexindent";
|
||||
description = ''
|
||||
Defines the formatter to use for LaTeX formatting.
|
||||
Possible values are either texlab or latexindent.
|
||||
Note that texlab is not implemented yet.
|
||||
'';
|
||||
};
|
||||
|
||||
extraLuaSettings = mkOption {
|
||||
type = attrs;
|
||||
default = {};
|
||||
|
|
@ -399,6 +207,200 @@ in {
|
|||
```
|
||||
'';
|
||||
};
|
||||
|
||||
forwardSearch = {
|
||||
enable = mkBool false ''
|
||||
Whether to enable forward search.
|
||||
|
||||
Enable this option if you want to have the compiled document appear in your chosen PDF viewer.
|
||||
|
||||
For some options see [here](https://github.com/latex-lsp/texlab/wiki/Previewing).
|
||||
Note this is not all the options, but can act as a guide to help you allong with custom configs.
|
||||
'';
|
||||
|
||||
package = mkOption {
|
||||
type = package;
|
||||
default = pkgs.okular;
|
||||
description = ''
|
||||
The package to use as your PDF viewer.
|
||||
This viewer needs to support Synctex.
|
||||
'';
|
||||
};
|
||||
|
||||
executable = mkOption {
|
||||
type = str;
|
||||
default = "okular";
|
||||
description = ''
|
||||
Defines the executable of the PDF previewer. The previewer needs to support SyncTeX.
|
||||
'';
|
||||
};
|
||||
|
||||
args = mkOption {
|
||||
type = listOf str;
|
||||
default = [
|
||||
"--unique"
|
||||
"file:%p#src:%l%f"
|
||||
];
|
||||
description = ''
|
||||
Defines additional arguments that are passed to the configured previewer to perform the forward search.
|
||||
The placeholders %f, %p, %l will be replaced by the server.
|
||||
|
||||
Placeholders:
|
||||
- %f: The path of the current TeX file.
|
||||
- %p: The path of the current PDF file.
|
||||
- %l: The current line number.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
formatter = {
|
||||
formatterLineLength = mkOption {
|
||||
type = ints.positive;
|
||||
default = 80;
|
||||
description = "Defines the maximum amount of characters per line (0 = disable) when formatting BibTeX files.";
|
||||
};
|
||||
|
||||
bibtexFormatter = mkOption {
|
||||
type = enum ["texlab" "latexindent"];
|
||||
default = "texlab";
|
||||
description = ''
|
||||
Defines the formatter to use for BibTeX formatting.
|
||||
Possible values are either texlab or latexindent.
|
||||
'';
|
||||
};
|
||||
|
||||
latexFormatter = mkOption {
|
||||
type = enum ["texlab" "latexindent"];
|
||||
default = "latexindent";
|
||||
description = ''
|
||||
Defines the formatter to use for LaTeX formatting.
|
||||
Possible values are either texlab or latexindent.
|
||||
Note that texlab is not implemented yet.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
inlayHints = {
|
||||
labelDefinitions = mkBool true "When enabled, the server will return inlay hints for `\\label-like` commands.";
|
||||
|
||||
labelReferences = mkBool true "When enabled, the server will return inlay hints for `\\ref``-like commands.";
|
||||
|
||||
maxLength = mkOption {
|
||||
type = nullOr ints.positive;
|
||||
default = null;
|
||||
description = "When set, the server will truncate the text of the inlay hints to the specified length.";
|
||||
};
|
||||
};
|
||||
|
||||
latexindent = {
|
||||
local = mkOption {
|
||||
type = nullOr (either str path);
|
||||
default = null;
|
||||
description = ''
|
||||
Defines the path of a file containing the latexindent configuration.
|
||||
This corresponds to the --local=file.yaml flag of latexindent.
|
||||
By default the configuration inside the project root directory is used.
|
||||
'';
|
||||
};
|
||||
|
||||
modifyLineBreaks = mkBool false ''
|
||||
Modifies linebreaks before, during, and at the end of code blocks when formatting with latexindent.
|
||||
This corresponds to the --modifylinebreaks flag of latexindent.
|
||||
'';
|
||||
|
||||
replacement = mkOption {
|
||||
type = nullOr (enum ["-r" "-rv" "-rr"]);
|
||||
default = null;
|
||||
description = ''
|
||||
Defines an additional replacement flag that is added when calling latexindent. This can be one of the following:
|
||||
- "-r"
|
||||
- "-rv"
|
||||
- "-rr"
|
||||
- null
|
||||
By default no replacement flag is passed.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
symbols = {
|
||||
enable = mkBool false "Whether to enable setting symbols config.";
|
||||
|
||||
allowedPatterns = mkOption {
|
||||
type = listOf str;
|
||||
default = [];
|
||||
description = ''
|
||||
A list of regular expressions used to filter the list of reported document symbols.
|
||||
If specified, only symbols that match at least one of the specified patterns are sent to the client.
|
||||
Symbols are filtered recursively so nested symbols can still be sent to the client even though the
|
||||
parent node is removed from the results.
|
||||
|
||||
See also `texlab.symbols.ignoredPatterns`.
|
||||
|
||||
Hint: If both allowedPatterns and ignoredPatterns are set, then allowed patterns are applied first.
|
||||
Afterwards, the results are filtered with the ignored patterns.
|
||||
'';
|
||||
};
|
||||
|
||||
ignoredPatterns = mkOption {
|
||||
type = listOf str;
|
||||
default = [];
|
||||
description = ''
|
||||
A list of regular expressions used to filter the list of reported document symbols.
|
||||
If specified, only symbols that match none of the specified patterns are sent to the client.
|
||||
|
||||
See also `texlab.symbols.allowedPatterns`.
|
||||
'';
|
||||
};
|
||||
|
||||
customEnvironments = mkOption {
|
||||
type = listOf (submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = str;
|
||||
description = "The name of the environment.";
|
||||
};
|
||||
displayName = mkOption {
|
||||
type = nullOr str;
|
||||
default = null;
|
||||
description = "The name shown in the document symbols. Defaults to the value of `name`.";
|
||||
};
|
||||
label = mkBool false ''
|
||||
If set, the server will try to match a label to environment and append its number.
|
||||
'';
|
||||
};
|
||||
});
|
||||
default = [];
|
||||
example = [
|
||||
{
|
||||
name = "foo";
|
||||
displayName = "bar";
|
||||
label = false;
|
||||
}
|
||||
];
|
||||
description = ''
|
||||
A list of objects that allows extending the list of environments that are part of the document symbols.
|
||||
|
||||
See also texlab.symbols.allowedPatterns.
|
||||
|
||||
Type: listOf submodule:
|
||||
- name:
|
||||
- type: str
|
||||
- description: The name of the environment.
|
||||
- required
|
||||
- displayName:
|
||||
- type: nullOr str
|
||||
- description: The name shown in the document symbols.
|
||||
- default: <name>
|
||||
- label:
|
||||
- type: boolean
|
||||
- description: If set, the server will try to match a label to environment and append its number.
|
||||
- default: false
|
||||
|
||||
Note: This functionallity may not be working, please follow https://github.com/latex-lsp/texlab/pull/1311
|
||||
for status updates.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (
|
||||
|
|
@ -410,40 +412,45 @@ in {
|
|||
# Create texlab settings section
|
||||
setupConfig.settings.texlab = (
|
||||
{
|
||||
# -- General Settings --
|
||||
formatterLineLength = texlabCfg.formatterLineLength;
|
||||
|
||||
# -- Formatters --
|
||||
bibtexFormatter = texlabCfg.bibtexFormatter;
|
||||
latexFormatter = texlabCfg.latexFormatter;
|
||||
# -- Completion --
|
||||
completion.matcher = texlabCfg.completion.matcher;
|
||||
|
||||
# -- Diagnostics --
|
||||
diagnosticsDelay = texlabCfg.diagnostics.delay;
|
||||
diagnostics = {
|
||||
allowedPatterns = texlabCfg.diagnostics.allowedPatterns;
|
||||
ignoredPatterns = texlabCfg.diagnostics.ignoredPatterns;
|
||||
inherit (texlabCfg.diagnostics) allowedPatterns ignoredPatterns;
|
||||
};
|
||||
|
||||
# -- Latex Indent --
|
||||
latexindent = texlabCfg.latexindent;
|
||||
# -- Experimental --
|
||||
experimental = texlabCfg.experimental;
|
||||
|
||||
# -- Completion --
|
||||
completion.matcher = texlabCfg.completion.matcher;
|
||||
# -- Formatters --
|
||||
inherit (texlabCfg.formatter) formatterLineLength bibtexFormatter latexFormatter;
|
||||
|
||||
# -- Inlay Hints --
|
||||
inlayHints = texlabCfg.inlayHints;
|
||||
|
||||
# -- Experimental --
|
||||
experimental = texlabCfg.experimental;
|
||||
# -- Latex Indent --
|
||||
latexindent = texlabCfg.latexindent;
|
||||
}
|
||||
#
|
||||
# -- Forward Search --
|
||||
# -- Build --
|
||||
// (
|
||||
if texlabCfg.forwardSearch.enable
|
||||
if cfg.build.enable
|
||||
then {
|
||||
forwardSearch = {
|
||||
executable = "${texlabCfg.forwardSearch.package}/bin/${texlabCfg.forwardSearch.executable}";
|
||||
args = texlabCfg.forwardSearch.args;
|
||||
build = {
|
||||
inherit
|
||||
(cfg.build)
|
||||
onSave
|
||||
useFileList
|
||||
auxDirectory
|
||||
logDirectory
|
||||
pdfDirectory
|
||||
filename
|
||||
forwardSearchAfter
|
||||
;
|
||||
inherit (builderCfg) args;
|
||||
executable = "${builderCfg.package}/bin/${builderCfg.executable}";
|
||||
};
|
||||
}
|
||||
else {}
|
||||
|
|
@ -460,6 +467,18 @@ in {
|
|||
else {}
|
||||
)
|
||||
#
|
||||
# -- Forward Search --
|
||||
// (
|
||||
if texlabCfg.forwardSearch.enable
|
||||
then {
|
||||
forwardSearch = {
|
||||
executable = "${texlabCfg.forwardSearch.package}/bin/${texlabCfg.forwardSearch.executable}";
|
||||
args = texlabCfg.forwardSearch.args;
|
||||
};
|
||||
}
|
||||
else {}
|
||||
)
|
||||
#
|
||||
# -- Symbols --
|
||||
// (
|
||||
if texlabCfg.symbols.enable
|
||||
|
|
@ -481,25 +500,6 @@ in {
|
|||
else {}
|
||||
)
|
||||
#
|
||||
# -- Build --
|
||||
// (
|
||||
if cfg.build.enable
|
||||
then {
|
||||
build = {
|
||||
executable = "${builderCfg.package}/bin/${builderCfg.executable}";
|
||||
args = builderCfg.args;
|
||||
forwardSearchAfter = cfg.build.forwardSearchAfter;
|
||||
onSave = cfg.build.onSave;
|
||||
useFileList = cfg.build.useFileList;
|
||||
auxDirectory = cfg.build.auxDirectory;
|
||||
logDirectory = cfg.build.logDirectory;
|
||||
pdfDirectory = cfg.build.pdfDirectory;
|
||||
filename = cfg.build.filename;
|
||||
};
|
||||
}
|
||||
else {}
|
||||
)
|
||||
#
|
||||
# -- Extra Settings --
|
||||
// texlabCfg.extraLuaSettings
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue