return { recommended = function() return LazyVim.extras.wants({ ft = { "tex", "plaintex", "bib" }, root = { ".latexmkrc", ".texlabroot", "texlabroot", "Tectonic.toml" }, }) end, { "folke/which-key.nvim", optional = true, opts = { defaults = { ["l"] = { name = "+vimtex" }, }, }, }, -- Add BibTeX/LaTeX to treesitter { "nvim-treesitter/nvim-treesitter", opts = function(_, opts) 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, }, -- Correctly setup lspconfig for LaTeX 🚀 { "neovim/nvim-lspconfig", optional = true, opts = { servers = { texlab = { keys = { { "K", "(vimtex-doc-package)", desc = "Vimtex Docs", silent = true }, }, }, }, }, }, }