Files
LazyVim-mirror/lua/lazyvim/plugins/extras/lang/tex.lua
Frankie Robertson ae74622e66 fix(latex): ensure tex extra installs latex tree-sitter parser (#6357)
## Description

Currently we don't ensure the latex treesitter is installed for latex.
Although it is not used for highlighting, it is used by default plugins
like flash, so this adds it to the list

## Related Issue(s)

https://github.com/LazyVim/LazyVim/pull/1156

Co-authored-by: Frankie Robertson <frankie@robertson.name>
2025-10-19 12:22:33 +02:00

52 lines
1.4 KiB
Lua

return {
recommended = function()
return LazyVim.extras.wants({
ft = { "tex", "plaintex", "bib" },
root = { ".latexmkrc", ".texlabroot", "texlabroot", "Tectonic.toml" },
})
end,
-- Add BibTeX/LaTeX to treesitter
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
opts.highlight = opts.highlight or {}
if type(opts.ensure_installed) == "table" then
vim.list_extend(opts.ensure_installed, { "bibtex", "latex" })
end
if type(opts.highlight.disable) == "table" then
vim.list_extend(opts.highlight.disable, { "latex" })
else
opts.highlight.disable = { "latex" }
end
end,
},
{
"lervag/vimtex",
lazy = false, -- lazy-loading will disable inverse search
config = function()
vim.g.vimtex_mappings_disable = { ["n"] = { "K" } } -- disable `K` as it conflicts with LSP hover
vim.g.vimtex_quickfix_method = vim.fn.executable("pplatex") == 1 and "pplatex" or "latexlog"
end,
keys = {
{ "<localLeader>l", "", desc = "+vimtex", ft = "tex" },
},
},
-- Correctly setup lspconfig for LaTeX 🚀
{
"neovim/nvim-lspconfig",
optional = true,
opts = {
servers = {
texlab = {
keys = {
{ "<Leader>K", "<plug>(vimtex-doc-package)", desc = "Vimtex Docs", silent = true },
},
},
},
},
},
}