mirror of
https://github.com/NotAShelf/nvf.git
synced 2025-11-10 07:25:30 +00:00
77 lines
2.4 KiB
Nix
77 lines
2.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib.modules) mkIf mkMerge;
|
|
inherit (lib.nvim.config) mkBool;
|
|
inherit (lib.options) mkEnableOption mkOption;
|
|
inherit (lib.types) enum;
|
|
|
|
cfg = config.vim.languages.tex;
|
|
in {
|
|
imports = [
|
|
./build
|
|
./lsp
|
|
./pdfViewer
|
|
./treesitter.nix
|
|
];
|
|
|
|
options.vim.languages.tex = {
|
|
enable = mkEnableOption "Tex support";
|
|
|
|
extraOpts = {
|
|
texFlavor = {
|
|
enable = mkBool false ''
|
|
Whether to set the `vim.g.tex_flavor` (`g:tex_flavor`) option in
|
|
your Lua config.
|
|
|
|
When opening a `.tex` file vim will try to automatically try to
|
|
determine the file type from the three options: `plaintex` (for
|
|
plain TeX), `context` (for ConTeXt), or `tex` (for LaTeX).
|
|
This can either be done by a indicator line of the form `%&<format>`
|
|
on the first line or, if absent, vim will search the file for
|
|
keywords to try and determine the filetype. If no filetype can be
|
|
determined automatically then by default it will fallback to
|
|
plaintex.
|
|
|
|
This option will enable setting the tex flavor in your lua config
|
|
and you can set its value using the
|
|
`vim.languages.tex.lsp.extraOpts.texFlavor.flavor = <flavor>` in
|
|
your nvf config.
|
|
|
|
Setting this option to `false` will omit the
|
|
`vim.g.tex_flavor = <flavor>` line from your lua config entirely
|
|
(unless you manually set it elsewhere of course).
|
|
'';
|
|
flavor = mkOption {
|
|
type = enum [
|
|
"plaintex"
|
|
"context"
|
|
"tex"
|
|
];
|
|
default = "plaintex";
|
|
example = "tex";
|
|
description = ''
|
|
The flavor to set as a fallback for when vim cannot automatically
|
|
determine the tex flavor when opening a `.tex` document.
|
|
|
|
The options are: `plaintex` (for plain TeX), `context` (for
|
|
ConTeXt), or `tex` (for LaTeX).
|
|
|
|
This can be particularly useful for when using
|
|
`vim.utility.new-file-template` options for creating templates when
|
|
no context has yet been added to a new file.
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable (mkMerge [
|
|
# Extra Lua config options
|
|
(mkIf cfg.extraOpts.texFlavor.enable {
|
|
vim.globals.tex_flavor = "${cfg.extraOpts.texFlavor.flavor}";
|
|
})
|
|
]);
|
|
}
|