From bb87a70cb27e010c07f040fc040296fa455e41ee Mon Sep 17 00:00:00 2001 From: salomaestro Date: Sat, 22 Feb 2025 01:24:32 +0100 Subject: [PATCH] Add proper LaTeX support (finally) --- lua/configs/conform.lua | 1 + lua/configs/lspconfig.lua | 43 ++++++++++++++++++++++++++++++++------- lua/plugins/init.lua | 9 ++++++++ 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/lua/configs/conform.lua b/lua/configs/conform.lua index 79ce8c6..4238963 100644 --- a/lua/configs/conform.lua +++ b/lua/configs/conform.lua @@ -6,6 +6,7 @@ local options = { -- python = { "isort", "black" }, python = { "isort", "ruff_fix", "ruff_format" }, yaml = { "prettier" }, + latex = { "bibtex-tidy", "tex-fmt", lsp_format = "fallback" } }, -- format_on_save = { diff --git a/lua/configs/lspconfig.lua b/lua/configs/lspconfig.lua index 0c08797..afb39f8 100644 --- a/lua/configs/lspconfig.lua +++ b/lua/configs/lspconfig.lua @@ -5,7 +5,7 @@ local lspconfig = require "lspconfig" nvlsp.defaults() -- EXAMPLE -local servers = { "html", "cssls", "ruff", "jedi_language_server", "yls", "lua_ls" } +local servers = { "html", "cssls", "ruff", "jedi_language_server", "yls", "lua_ls", "texlab" } -- lsps with default config for _, lsp in ipairs(servers) do @@ -16,12 +16,41 @@ for _, lsp in ipairs(servers) do } end --- configuring single server, example: typescript --- lspconfig.ts_ls.setup { --- on_attach = nvlsp.on_attach, --- on_init = nvlsp.on_init, --- capabilities = nvlsp.capabilities, --- } +-- lspconfig.texlab.setup({ +-- settings = { +-- latex = { +-- build = { +-- executable = "latexmk", +-- args = { "-pdf", "-interaction=nonstopmode", "-synctex=1", "%f" }, +-- onSave = true, +-- }, +-- }, +-- }, +-- }) + +-- Set up LTeX separately +lspconfig.ltex.setup { + on_init = nvlsp.on_init, + capabilities = nvlsp.capabilities, + + on_attach = function(client, bufnr) + -- Run NvChad's on_attach for your usual LSP keymaps + nvlsp.on_attach(client, bufnr) + + require("ltex_extra").setup { + load_langs = { "en-GB", "nb" }, + init_check = true, + path = vim.fn.expand("~/.local/share/ltex"), -- where to store language dicts + } + end, + + settings = { + ltex = { + language = "en-GB", + additionalLanguages = { "nb" }, + }, + }, +} lspconfig.ruff.setup({ init_options = { diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 43f8788..478fb7f 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -103,6 +103,10 @@ return { "lua", "python", "markdown", + "latex", + }, + highlight = { + enable = true, }, }, }, @@ -258,4 +262,9 @@ return { lazy = false, }, + { + "barreiroleo/ltex-extra.nvim", + ft = { "markdown", "tex" }, + dependencies = { "neovim/nvim-lspconfig" }, + }, }