https://github.com/swyddfa/esbonio
A language server for working with Sphinx projects.
https://github.com/swyddfa/esbonio
esbonio language-server sphinx sphinx-extension
Last synced: 7 months ago
JSON representation
A language server for working with Sphinx projects.
- Host: GitHub
- URL: https://github.com/swyddfa/esbonio
- Owner: swyddfa
- Created: 2020-08-12T22:24:42.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2025-09-26T20:31:09.000Z (8 months ago)
- Last Synced: 2025-09-26T21:27:43.266Z (8 months ago)
- Topics: esbonio, language-server, sphinx, sphinx-extension
- Language: Python
- Homepage: https://docs.esbon.io/
- Size: 35.9 MB
- Stars: 157
- Watchers: 7
- Forks: 23
- Open Issues: 47
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing/howto.rst
Awesome Lists containing this project
README
Esbonio
[](https://results.pre-commit.ci/latest/github/swyddfa/esbonio/develop)
**esbonio - (v.) to explain**
[reStructuredText]: https://docutils.sourceforge.io/rst.html
[Sphinx]: https://www.sphinx-doc.org/en/master/
[Language Server]: https://langserver.org/
Esbonio aims to make it easier to work with [Sphinx] by providing a [Language Server] to enhance your editing experience.
The Esbonio project is made up from a number of sub-projects
## `lib/esbonio/` - A Language Server for Sphinx projects.
[](https://pypistats.org/packages/esbonio)[](https://github.com/swyddfa/esbonio/blob/develop/lib/esbonio/LICENSE)
The language server aids the writing process by resolving references, providing completion suggestions and highlighting errors.
It ensures your local build is always up to date, allowing you to preview your changes in (almost!) real-time.
The server itself can even be extended to better suit the needs of your project.
The language server provides the following features.
**Completion**
Diagnostics
Goto Definition
Goto Implementation
Document Links
Document & Workspace Symbols
Hover
## `code/` - A VSCode extension for editing Sphinx projects
[](https://marketplace.visualstudio.com/items?itemName=swyddfa.esbonio)[](https://github.com/swyddfa/esbonio/blob/develop/code/LICENSE)
This extension integrates the `esbonio` language server into VSCode, it's primary goal is to expose all of the features provided by the language server and serve as a reference for integrating `esbonio` into other editors.
Features that cannot be implemented primarily within the language server itself are out of scope for this extension.
For that reason, the Esbonio extension tries to integrate into the wider VSCode ecosystem where possible.
### Dependent Extensions
Esbonio depends on the following extensions
- By default, Esbonio relies on the offical [Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) to configure the environment in which it builds your documentation.
- The [MyST Syntax Highlighting](https://marketplace.visualstudio.com/items?itemName=chrisjsewell.myst-tml-syntax) extension provides syntax highlighting rules for MyST flavoured markdown.
### Supplementry Extensions
The the following extensions are not required in order to use Esbonio, but you might find them useful
- The [reStructuredText](https://marketplace.visualstudio.com/items?itemName=lextudio.restructuredtext) integrates many other useful tools such as the traditional linters like [`doc8`](https://pypi.org/project/doc8/) and [`rstcheck`](https://pypi.org/project/rstcheck/).
It also provides additional editor functionality for working with reStructuredText in general.
- While VSCode has included a vendored copy of the [reStructuredText Syntax highlighting](https://marketplace.visualstudio.com/items?itemName=trond-snekvik.simple-rst) extension since `v1.66`, installing the extension from the marketplace will provide you with the latest version of the syntax definition.
## `lib/esbonio-extensions/` - A collection of Sphinx extensions
[](https://pypistats.org/packages/esbonio-extensions)[](https://github.com/swyddfa/esbonio/blob/develop/lib/esbonio-extensions/LICENSE)