esbonio – (v.) to explain

Esbonio aims to make it easier to work with reStructuredText tools such as Sphinx by providing a Language Server to enhance your editing experience.

Language Server#

Here is a quick summary of the features implemented by the language server.

The language server implements textDocument/completion and can offer suggestions in a variety of contexts.


The language server implements textDocument/definition to provide the location of items referenced by certain roles. Currently only the :ref: and :doc: roles are supported.


The language server implements textDocument/publishDiagnostics to report errors/warnings enountered during a build.


The language server implements textDocument/documentLink to make references to other files “Ctrl + Clickable”


The language server implements textDocument/documentSymbol which powers features like the “Outline” view in VSCode.


The language server implements textDocument/hover to provide easy access to documentation for roles and directives.


The language server implements textDocument/implementation so you can easily find the implementation of a given role or directive.

  • See the Getting Started guide for details on how to get up and running.

  • For further details on more advanced use cases, see the Advanced Usage section.

  • Interested in adding support for your own Sphinx extensions? See the section on Extending for more information.

Sphinx Extensions#

In addition to the language server, the Esbonio project provides a number of Sphinx extensions.