From a1eaa91ee8045103309c5374abe7ea53defa57d5 Mon Sep 17 00:00:00 2001 From: Alex Carney Date: Sun, 14 Nov 2021 17:02:45 +0000 Subject: feat: add esbonio language server (#1292) Co-authored-by: Peter Lithammer --- lua/lspconfig/esbonio.lua | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 lua/lspconfig/esbonio.lua diff --git a/lua/lspconfig/esbonio.lua b/lua/lspconfig/esbonio.lua new file mode 100755 index 00000000..ac0e184e --- /dev/null +++ b/lua/lspconfig/esbonio.lua @@ -0,0 +1,56 @@ +local configs = require 'lspconfig/configs' +local utils = require 'lspconfig/util' + +configs.esbonio = { + default_config = { + cmd = { 'python3', '-m', 'esbonio' }, + filetypes = { 'rst' }, + root_dir = utils.find_git_ancestor, + }, + docs = { + description = [[ +https://github.com/swyddfa/esbonio + +Esbonio is a language server for [Sphinx](https://www.sphinx-doc.org/en/master/) documentation projects. +The language server can be installed via pip + +``` +pip install esbonio +``` + +Since Sphinx is highly extensible you will get best results if you install the language server in the same +Python environment as the one used to build your documentation. To ensure that the correct Python environment +is picked up, you can either launch `nvim` with the correct environment activated. + +``` +source env/bin/activate +nvim +``` + +Or you can modify the default `cmd` to include the full path to the Python interpreter. + +```lua +require'lspconfig'.esbonio.setup { + cmd = { '/path/to/virtualenv/bin/python', '-m', 'esbonio' } +} +``` + +Esbonio supports a number of config values passed as `init_options` on startup, for example. + +```lua +require'lspconfig'.esbonio.setup { + init_options = { + server = { + logLevel = "debug" + }, + sphinx = { + confDir = "/path/to/docs", + srcDir = "${confDir}/../docs-src" + } +} +``` + +A full list and explanation of the available options can be found [here](https://swyddfa.github.io/esbonio/docs/lsp/editors/index.html) +]], + }, +} -- cgit v1.2.3-70-g09d2