Esbonio#

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.

_images/completion-demo.gif

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.

_images/definition-demo.gif

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

_images/diagnostic-sphinx-errors-demo.png

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

_images/document-links-demo.png

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

_images/document-symbols-demo.png

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

_images/hover-demo.png

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

_images/implementation-demo.gif
  • 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.