From ab8f4009b42670aab15dffd1666b02b7d9127ca8 Mon Sep 17 00:00:00 2001 From: Stefano Volpe Date: Sat, 7 Dec 2024 14:09:31 +0100 Subject: [PATCH] feat: ltex-ls-plus #3442 --- lua/lspconfig/configs/ltex_plus.lua | 93 +++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 lua/lspconfig/configs/ltex_plus.lua diff --git a/lua/lspconfig/configs/ltex_plus.lua b/lua/lspconfig/configs/ltex_plus.lua new file mode 100644 index 0000000000..c6555b99da --- /dev/null +++ b/lua/lspconfig/configs/ltex_plus.lua @@ -0,0 +1,93 @@ +local util = require 'lspconfig.util' + +local language_id_mapping = { + bib = 'bibtex', + pandoc = 'markdown', + plaintex = 'tex', + rnoweb = 'rsweave', + rst = 'restructuredtext', + tex = 'latex', + text = 'plaintext', +} + +local function get_language_id(_, filetype) + return language_id_mapping[filetype] or filetype +end + +return { + default_config = { + cmd = { 'ltex-ls-plus' }, + filetypes = { + 'bib', + 'context', + 'gitcommit', + 'html', + 'markdown', + 'org', + 'pandoc', + 'plaintex', + 'quarto', + 'mail', + 'mdx', + 'rmd', + 'rnoweb', + 'rst', + 'tex', + 'text', + 'typst', + 'xhtml', + }, + root_dir = util.find_git_ancestor, + single_file_support = true, + get_language_id = get_language_id, + settings = { + ltex = { + enabled = { + 'bib', + 'context', + 'gitcommit', + 'html', + 'markdown', + 'org', + 'pandoc', + 'plaintex', + 'quarto', + 'mail', + 'mdx', + 'rmd', + 'rnoweb', + 'rst', + 'tex', + 'text', + 'typst', + 'xhtml', + }, + }, + }, + }, + docs = { + description = [=[ +https://github.com/ltex-plus/ltex-ls-plus + +LTeX Language Server: LSP language server for LanguageTool 🔍✔️ with support for LaTeX 🎓, Markdown 📝, and others + +To install, download the latest [release](https://github.com/ltex-plus/ltex-ls-plus) and ensure `ltex-ls-plus` is on your path. + +This server accepts configuration via the `settings` key. + +```lua + settings = { + ltex = { + language = "en-GB", + }, + }, +``` + +To support org files or R sweave, users can define a custom filetype autocommand (or use a plugin which defines these filetypes): + +```lua +vim.cmd [[ autocmd BufRead,BufNewFile *.org set filetype=org ]] +``` +]=], + }, +}