Esbonio

Latest version: v0.16.4

Safety actively analyzes 623739 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

1.0.0b3

Features

- Add support for role completions in MyST documents ([775](https://github.com/swyddfa/esbonio/issues/775))

Enhancements

- If the client supports it, the server will now send `window/showDocument` requests when previewing a file.

The server will automatically react to changes to ``esbonio.preview.*`` configuration options. ([793](https://github.com/swyddfa/esbonio/issues/793))

Fixes

- The server should once again, correctly guess a reasonable basic `sphinx-build` build command for projects located in a sub-folder of the workspace ([779](https://github.com/swyddfa/esbonio/issues/779))
- The server should once again automatically trigger a build when previewing a file, when necessary ([783](https://github.com/swyddfa/esbonio/issues/783))

esbonio-vscode-extension-v0.93.2

1.0.0b2

Breaking Changes

- - Removed the `esbonio.server.logLevel` option, use `esbonio.logging.level` instead.
- Removed the `esbonio.server.logFilter` option, it has been made obselete by the other `esbonio.logging.*` options

([748](https://github.com/swyddfa/esbonio/issues/748))

Enhancements

- Added the following configuration options

- `esbonio.logging.level`, set the default logging level of the server
- `esbonio.logging.format`, set the default format of server log messages
- `esbonio.logging.filepath`, enable logging to a file
- `esbonio.logging.stderr`, print log messages to stderr
- `esbonio.logging.window`, send log messages as `window/logMessage` notifications
- `esbonio.logging.config`, override logging configuration for individual loggers, see the [documentation](https://docs.esbon.io/en/latest/lsp/reference/configuration.html#lsp-configuration-logging) for details

([748](https://github.com/swyddfa/esbonio/issues/748))
- The server will now automatically restart the underlying Sphinx process when it detects a change in its configuration ([750](https://github.com/swyddfa/esbonio/issues/750))
- The server now emits `sphinx/clientCreated`, `sphinx/clientErrored` and `sphinx/clientDestroyed` notifications that correspond to the lifecycle of the underlying Sphinx process ([756](https://github.com/swyddfa/esbonio/issues/756))

Fixes

- The server should no longer sometimes spawn duplicated Sphinx processes ([660](https://github.com/swyddfa/esbonio/issues/660))
- The server now respects Sphinx configuration values like `suppress_warnings` ([695](https://github.com/swyddfa/esbonio/issues/695))
- The server will no longer raise a `ValueError` when used in a situation where there is an empty workspace ([718](https://github.com/swyddfa/esbonio/issues/718))

esbonio-vscode-extension-v0.92.1

1.0.0b1

Breaking Changes

- Removed `esbonio.lsp.spelling` module, though it will be available as `esbonio.ext.spelling` via the `esbonio-extensions` package. ([583](https://github.com/swyddfa/esbonio/issues/583))
- Drop Python 3.7 support ([584](https://github.com/swyddfa/esbonio/issues/584))
- Drop Sphinx 4.x support ([585](https://github.com/swyddfa/esbonio/issues/585))

Features

- The language server now supports reading configuration values from `workspace/configuration` requests and `pyproject.toml` files.
When supported by the client, the server can detect and respond to changes in (most) configuration automatically - no more manually restarting the server! ([527](https://github.com/swyddfa/esbonio/issues/527))
- The language server now supports `workspace/symbol` requests ([611](https://github.com/swyddfa/esbonio/issues/611))
- Sphinx build progress is now reported using the `window/workDoneProgress/create` API ([659](https://github.com/swyddfa/esbonio/issues/659))
- For the clients that support the pull diagnostics model, the server now supports the `textDocument/diagnostic` and `workspace/diagnostic` methods. ([689](https://github.com/swyddfa/esbonio/issues/689))
- The language server can now provide completion suggestions for MyST directives. ([706](https://github.com/swyddfa/esbonio/issues/706))

Enhancements

- When providing completion suggestions for directives, `esbonio` now takes the `.. default-domain::` directive into account ([105](https://github.com/swyddfa/esbonio/issues/105))

Fixes

- Fix path separator character on Windows by ExaneServerTeam ([719](https://github.com/swyddfa/esbonio/issues/719))

esbonio-language-server-v0.16.4
<h1 class="title">v0.16.4 - 2024-01-11</h1>
<h2 class="subtitle" id="fixes">Fixes</h2>

<ul class="simple">
<li>Fix <tt class="docutils literal">ValueError</tt> thrown when the server is given invalid <tt class="docutils literal">Position</tt> data.
Invalid values will be clamped to the range permitted by the language server protocol (<tt class="docutils literal">[0, 2147483647]</tt>) (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/714">#714</a>)</li>
</ul>


esbonio-language-server-v0.16.3
<h1 class="title">v0.16.3 - 2023-11-27</h1>
<h2 class="subtitle" id="fixes">Fixes</h2>

<ul class="simple">
<li>Fix <tt class="docutils literal">ValueError</tt> thrown when building the document symbol for a title node that only contains a role. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/685">#685</a>)</li>
</ul>


esbonio-language-server-v0.16.2
<h1 class="title">v0.16.2 - 2023-10-07</h1>

<p>
This somewhat quiet release marks the end of the <tt>0.x</tt> series as development has now shifted to focus on what will ultimately become the <tt>1.0</tt> release.
</p>
<p>
In fact this release includes a sneaky preview of the <tt>1.0</tt> version of the server - which includes support for multi-root projects!
If you are feeling adventurous and want to try it out - change the command you use to launch <tt>esbonio</tt> to <tt>python -m esbonio.server</tt>
</p>
<p>
However, to set expectations there are <em>many</em> missing features from the preview server. The only features currently available are sphinx builds, diagnostics, document symbols and live preview/sync scrolling - but they should all work across multiple roots/projects!
</p>
<p>
See <a href="https://github.com/swyddfa/esbonio/issues/609">this issue</a> for more information and if you want to submit any feedback and keep an eye out for some beta releases in the not-to-distant-future!
</p>

<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul class="simple">
<li>When creating a Sphinx application instance, the language server will now look in all workspace folders choosing the first valid configuration it finds.
Failing that it will revert to its original behavior of looking in the <tt class="docutils literal">workspaceRoot</tt> given by the client. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/467">#467</a>)</li>
</ul>
</div>
<div class="section" id="fixes">
<h1>Fixes</h1>
<ul class="simple">
<li>The server will no longer fail to handle the <tt class="docutils literal">initialize</tt> request when clients set <tt class="docutils literal">initializationOptions</tt> to <tt class="docutils literal">null</tt> (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/586">#586</a>)</li>
</ul>
</div>
<div class="section" id="misc">
<h1>Misc</h1>
<ul class="simple">
<li>Replace <tt class="docutils literal">appdirs</tt> with <tt class="docutils literal">platformdirs</tt> by &64;coloursofnoise (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/621">#621</a>)</li>
</ul>
</div>


esbonio-vscode-extension-v0.11.0
<h1 class="title">v0.11.0 - 2023-03-06</h1>
<h2 class="subtitle" id="features">Features</h2>

<ul>
<li><p class="first">It should now be possible to run the Sphinx based language server in <a class="reference external" href="https://vscode.dev">https://vscode.dev</a>!</p>
<p>Note, that this functionality, is still <strong>experimental</strong>.
To try it out, you will need to explicity set the <tt class="docutils literal">esbonio.sphinx.confDir</tt> option to <tt class="docutils literal"><span class="pre">/&lt;github-user&gt;/&lt;github-repo&gt;/&lt;path&gt;/</span></tt>.
For example, this project would need it to be set to <cite>/swyddfa/esbonio/docs/</cite>. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/548">#548</a>)</p>
</li>
</ul>


esbonio-language-server-v0.16.1
<h1 class="title">v0.16.1 - 2023-02-18</h1>
<h2 class="subtitle" id="fixes">Fixes</h2>

<ul class="simple">
<li>With live previews enabled, <tt class="docutils literal">esbonio</tt> should no longer conflict with Sphinx extensions that register their own <tt class="docutils literal"><span class="pre">source-read</span></tt> handlers. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/539">#539</a>)</li>
</ul>


esbonio-vscode-extension-v0.10.6
<h1 class="title">v0.10.6 - 2023-02-04</h1>

<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul>
<li><p class="first">Add <tt class="docutils literal">esbonio.server.completion.preferredInsertBehavior</tt> option.
Controls how completions behave when accepted, the following values are supported.</p>
<ul>
<li><p class="first"><tt class="docutils literal">replace</tt> (default)</p>
<blockquote>
<p>Accepted completions will replace existing text, allowing the server to rewrite the current line in place.
This allows the server to return all possible completions within the current context.
In this mode the server will set the <tt class="docutils literal">textEdit</tt> field of a <tt class="docutils literal">CompletionItem</tt>.</p>
</blockquote>
</li>
<li><p class="first"><tt class="docutils literal">insert</tt></p>
<blockquote>
<p>Accepted completions will append to existing text rather than replacing it.
Since rewriting is not possible, only the completions that are compatible with any existing text will be returned.
In this mode the server will set the <tt class="docutils literal">insertText</tt> field of a <tt class="docutils literal">CompletionItem</tt> which should work better with editors that do no support <tt class="docutils literal">textEdits</tt>. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/471">#471</a>)</p>
</blockquote>
</li>
</ul>
</li>
<li><p class="first">Add <tt class="docutils literal">esbonio.server.enableDevTools</tt> option.</p>
<p>This new flag indended for developers, when enabled, will wrap the language server in the <a class="reference external" href="https://github.com/swyddfa/lsp-devtools">lsp-devtools</a> agent, enabling the use of some extra tooling.</p>
<p>It is on the developer to ensure the required dependencies are installed. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/532">#532</a>)</p>
</li>
</ul>
</div>
<div class="section" id="misc">
<h1>Misc</h1>
<ul class="simple">
<li>Bump <tt class="docutils literal"><span class="pre">vscode-languageclient</span></tt> to 8.x (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/485">#485</a>)</li>
</ul>
</div>


esbonio-language-server-v0.16.0
<h1 class="title">v0.16.0 - 2023-02-04</h1>

<div class="section" id="features">
<h1>Features</h1>
<ul>
<li><p class="first">Add new <tt class="docutils literal">server.completion.preferredInsertBehavior</tt> option.
This allows the user to indicate to the server how they would prefer completions to behave when accepted.</p>
<p>The default value is <tt class="docutils literal">replace</tt> and corresponds to the server's current behavior where completions replace existing text.
In this mode the server will set the <tt class="docutils literal">textEdit</tt> field of a <tt class="docutils literal">CompletionItem</tt>.</p>
<p>This release also introduces a new mode <tt class="docutils literal">insert</tt>, where completions will append to existing text rather than replacing it.
This also means that only the completions that are compatible with any existing text will be returned.
In this mode the server will set the <tt class="docutils literal">insertText</tt> field of a <tt class="docutils literal">CompletionItem</tt> which should work better with editors that do no support <tt class="docutils literal">textEdits</tt>.</p>
<p><strong>Note:</strong> This option is only a hint and the server will not ensure that it is followed, though it is planned for all first party completion suggestions to (eventually) respect this setting.
As of this release, all completion suggestions support <tt class="docutils literal">replace</tt> and role, directive and directive option completions support <tt class="docutils literal">insert</tt>. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/471">#471</a>)</p>
</li>
</ul>
</div>
<div class="section" id="documentation">
<h1>Documentation</h1>
<ul class="simple">
<li>Add getting started guide for Sublime Text by &64;vkhitrin (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/522">#522</a>)</li>
</ul>
</div>
<div class="section" id="api-changes">
<h1>API Changes</h1>
<ul class="simple">
<li><tt class="docutils literal">CompletionContext</tt> objects now expose a <tt class="docutils literal">config</tt> field that contains any user supplied configuration values affecting completions. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/531">#531</a>)</li>
</ul>
</div>
<div class="section" id="misc">
<h1>Misc</h1>
<ul>
<li><p class="first">Drop Python 3.6 support (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/400">#400</a>)</p>
</li>
<li><p class="first">Migrate to pygls <tt class="docutils literal">v1.0</tt></p>
<p>There are some breaking changes, but only if you use Esbonio's extension APIs, if you simply use the language server in your favourite editor you <em>shouldn't</em> notice a difference.</p>
<p>The most notable change is the replacement of <tt class="docutils literal">pydantic</tt> type definitions with <tt class="docutils literal">attrs</tt> and <tt class="docutils literal">cattrs</tt> via the new <a class="reference external" href="https://github.com/microsoft/lsprotocol">lsprotocol</a> package.
For more details see pygls' <a class="reference external" href="https://pygls.readthedocs.io/en/latest/pages/migrating-to-v1.html">migration guide</a>. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/484">#484</a>)</p>
</li>
<li><p class="first">Drop support for Sphinx 3.x</p>
<p>Add support for Sphinx 6.x (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/523">#523</a>)</p>
</li>
</ul>
</div>


esbonio-language-server-v0.15.0
<h1 class="title">v0.15.0 - 2022-12-03</h1>

> **Note**
>
> Unless any major bugfixes are required, this will be last version of the language server that supports Python 3.6.
> `v0.16.0` will include the migration to `pygls v1.0` and require Python 3.7+
>
> It will potentially also be the last version of the language server to support Sphinx v3.x, assuming that Sphinx v6.x is released on schedule

<div class="section" id="features">
<h1>Features</h1>
<ul>
<li><p class="first">Add initial support for synced scrolling and live previews of HTML builds.
<strong>Note</strong> Both of these features rely on additional integrations outside of the LSP protocol therefore requiring dedicated support from clients.</p>
<p>Synced scrolling support can be enabled by setting the <tt class="docutils literal">server.enableScrollSync</tt> initialization option to <tt class="docutils literal">True</tt> and works by injecting line numbers into the generated HTML which a client can use to align the preview window to the source window.</p>
<p>Live preview support can be enabled by setting the <tt class="docutils literal">server.enableLivePreview</tt> initialization option to <tt class="docutils literal">True</tt>, the language server will then pass the contents of unsaved files for Sphinx to build.
Currently clients are responsible for triggering intermediate builds with the new <tt class="docutils literal">esbonio.server.build</tt> command, though this requirement may be removed in future. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/490">#490</a> aniketsalve22 Ch3ri0ur )</p>
</li>
</ul>
</div>
<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul class="simple">
<li>Completion suggestions will now also be generated for the long form (<tt class="docutils literal">:py:func:</tt>) of roles and directives in the primary and standard Sphinx domains. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/416">#416</a>)</li>
<li>The language server should now populate the <tt class="docutils literal">serverInfo</tt> fields of its response to a client's <tt class="docutils literal">initialize</tt> request. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/497">#497</a>)</li>
<li>The default <tt class="docutils literal">suggest_options</tt> implementation for <tt class="docutils literal">DirectiveLanguageFeatures</tt> should now be more useful in that it will return the keys from a directive's <tt class="docutils literal">option_spec</tt> (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/498">#498</a>)</li>
<li>The language server now recognises and returns <tt class="docutils literal">DocumentLinks</tt> for <tt class="docutils literal">image::</tt> and <tt class="docutils literal">figure::</tt> directives that use <tt class="docutils literal"><span class="pre">http://</span></tt> or <tt class="docutils literal"><span class="pre">https://</span></tt> references for images. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/506">#506</a>)</li>
</ul>
</div>
<div class="section" id="fixes">
<h1>Fixes</h1>
<ul>
<li><p class="first">Fix handling of deprecation warnings in Python 3.11 (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/494">#494</a>)</p>
</li>
<li><p class="first">The language server should now correctly handle errors that occur while generating completion suggestions for a directive's options</p>
<p>The language server should now show hovers for directives in the primary domain. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/498">#498</a>)</p>
</li>
<li><p class="first">Errors thrown by <tt class="docutils literal">DirectiveLanguageFeatures</tt> during <tt class="docutils literal">textDocument/documentLink</tt> or <tt class="docutils literal">textDocument/definition</tt> requests are now caught and no longer result in frustrating error banners in clients.</p>
<p>The <tt class="docutils literal">textDocument/documentLink</tt> handler for <tt class="docutils literal">image::</tt> and <tt class="docutils literal">figure::</tt> should no longer throw exceptions for invalid paths on Windows. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/506">#506</a>)</p>
</li>
</ul>
</div>
<div class="section" id="api-changes">
<h1>API Changes</h1>
<ul>
<li><p class="first"><tt class="docutils literal">RoleLanguageFeatures</tt> have been introduced as the preferred method of extending role support going forward.
Subclasses can be implement any of the following methods</p>
<ul class="simple">
<li><tt class="docutils literal">complete_targets</tt> called when generating role target completion items</li>
<li><tt class="docutils literal">find_target_definitions</tt> used to implement goto definition for role targets</li>
<li><tt class="docutils literal">get_implementation</tt> used to get the implementation of a role given its name</li>
<li><tt class="docutils literal">index_roles</tt> used to tell the language server which roles exist</li>
<li><tt class="docutils literal">resolve_target_link</tt> used to implement document links for role targets</li>
<li><tt class="docutils literal">suggest_roles</tt> called when generating role completion suggestions</li>
</ul>
<p>and are registered using the new <tt class="docutils literal">Roles.add_feature()</tt> method. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/495">#495</a>)</p>
</li>
</ul>
</div>
<div class="section" id="deprecated">
<h1>Deprecated</h1>
<ul>
<li><p class="first">The following protocols have been deprecated and will be removed in <tt class="docutils literal">v1.0</tt></p>
<ul class="simple">
<li><tt class="docutils literal">TargetDefinition</tt></li>
<li><tt class="docutils literal">TargetCompletion</tt></li>
<li><tt class="docutils literal">TargetLink</tt></li>
</ul>
<p>The following methods have been deprecated and will be removed in <tt class="docutils literal">v1.0</tt></p>
<ul class="simple">
<li><tt class="docutils literal">Roles.add_target_definition_provider</tt></li>
<li><tt class="docutils literal">Roles.add_target_link_provider</tt></li>
<li><tt class="docutils literal">Roles.add_target_completion_provider</tt></li>
<li><tt class="docutils literal">RstLanguageServer.get_roles()</tt></li>
<li><tt class="docutils literal">SphinxLanguageServer.get_domain()</tt></li>
<li><tt class="docutils literal">SphinxLanguageServer.get_domains()</tt></li>
<li><tt class="docutils literal">SphinxLanguageServer.get_roles()</tt></li>
<li><tt class="docutils literal">SphinxLanguageServer.get_role_target_types()</tt></li>
<li><tt class="docutils literal">SphinxLanguageServer.get_role_targets()</tt></li>
<li><tt class="docutils literal">SphinxLanguageServer.get_intersphinx_targets()</tt></li>
<li><tt class="docutils literal">SphinxLanguageServer.has_intersphinx_targets()</tt></li>
<li><tt class="docutils literal">SphinxLanguageServer.get_intersphinx_projects()</tt> (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/495">#495</a>)</li>
</ul>
</li>
</ul>
</div>


esbonio-vscode-extension-v0.10.5
<h1 class="title">v0.10.5 - 2022-11-05</h1>

Fixes

- The extension no longer shows an annoying second error notification when you dismiss install/update requests. ([286](https://github.com/swyddfa/esbonio/issues/286>))
- An error while checking for the latest release of the language server no longer prevents the existing server from starting. ([454](https://github.com/swyddfa/esbonio/issues/454))
- Language status items should no longer disappear on Windows when configured using explicit filepaths. ([458](https://github.com/swyddfa/esbonio/issues/458))
- The preview panel should now open on Windows when configured with explicit file paths ([466](https://github.com/swyddfa/esbonio/issues/466))


Enhancements

- Add `esbonio.server.showDeprecationWarnings` option.

This is flag is primarily aimed at developers working either directly on esbonio, or one of its extensions.
When enabled, any warnings (such as `DeprecationWarnings`) will be logged and published to the client as diagnostics. ([443](https://github.com/swyddfa/esbonio/issues/443))
- The extension now gives the option for you to disable the language server when it requests you install/update it. ([468](https://github.com/swyddfa/esbonio/issues/468))


Misc

- The default value for the `esbonio.server.updateFrequency` setting has been changed to `never`. ([454](https://github.com/swyddfa/esbonio/issues/454))
- Ensure npm deps are installed in release pipeline (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/482">#482</a>)
- Fix broken release pipeline ([480](https://github.com/swyddfa/esbonio/issues/480))
- Fix VSCode packaging step in release pipeline ([481](https://github.com/swyddfa/esbonio/issues/481))



esbonio-sphinx-extensions-v0.2.2
<h1 class="title">v0.2.2 - 2022-11-05</h1>
<h2 class="subtitle" id="misc">Misc</h2>

<ul class="simple">
<li>Fix broken release pipeline (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/480">#480</a>)</li>
</ul>

- Add Python 3.11 support ([470](https://github.com/swyddfa/esbonio/issues/470))


esbonio-language-server-v0.14.3
<h1 class="title">v0.14.3 - 2022-11-05</h1>

Enhancements


- Add `esbonio.server.showDeprecationWarnings` option.

This is flag is primarily aimed at developers working either directly on esbonio, or one of its extensions.
When enabled, any warnings (such as `DeprecationWarnings`) will be logged and published to the client as diagnostics. ([443](https://github.com/swyddfa/esbonio/issues/443))


Fixes

- Spinx log messages are no longer duplicated after refreshing the application instance ([460](https://github.com/swyddfa/esbonio/issues/460))


API Changes

- Added `add_diagnostics` method to the `RstLanguageServer` to enable adding diagnostics to a document incrementally. ([443 ](https://github.com/swyddfa/esbonio/issues/443))
- The `Directives` language feature can now be extended by registering `DirectiveLanguageFeatures` using the new `add_feature` method.
This is now the preferred extension mechanism and should be used by all extensions going forward. ([444](https://github.com/swyddfa/esbonio/issues/444))
- `DirectiveLanguageFeatures` can now implement the following methods.

- `index_directives`: used to discover available directive implementations
- `suggest_directives`: used to determine which directive names can be suggested in the current completion context (`function` vs `py:function` vs `c:function` etc.)
- `get_implementation`: used to go from a directive name (`function` vs `py:function`) to its implementation
- `suggest_options`: used to determine which directive options can be suggested in the current completion context ([453](https://github.com/swyddfa/esbonio/issues/453))


Deprecated

- `ArgumentCompletion`, `ArgumentDefinition` and `ArgumentLink` directive providers have been deprecated in favour of `DirectiveLanguageFeatures` and will be removed in `v1.0` ([444](https://github.com/swyddfa/esbonio/issues/444))
- Calling the `get_directives()` method on the `RstLanguageServer` and `SphinxLanguageServer` objects is deprecated in favour of calling the `get_directives()` method on the `Directives` language feature.
It will be removed in `v1.0`
- Calling the `get_directive_options()` method on the `RstLanguageServer` and `SphinxLanguageServer` objects deprecated and will be removed in `v1.0`. ([453](https://github.com/swyddfa/esbonio/issues/453))

<h2 class="subtitle" id="misc">Misc</h2>

- Fix broken release pipeline (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/480">#480</a>)
- Add Python 3.11 support ([470](https://github.com/swyddfa/esbonio/issues/470))


esbonio-language-server-v0.14.1
<h1 class="title">v0.14.1 - 2022-09-11</h1>
<h2 class="subtitle" id="fixes">Fixes</h2>

<ul class="simple">
<li><tt class="docutils literal">textDocument/documentSymbol</tt> requests should no longer fail on substitution definitions. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/448">#448</a>)</li>
</ul>


esbonio-vscode-extension-v0.10.1
<h1 class="title">v0.10.1 - 2022-09-07</h1>
<h2 class="subtitle" id="removed">Removed</h2>

<ul class="simple">
<li>The reStructuredText Syntax Highlighting extension is no longer included via VSCode's &quot;Extension Pack&quot; feature as these rules are now distributed with VSCode itself. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/447">#447</a>)</li>
</ul>


esbonio-vscode-extension-v0.10.0
<h1 class="title">v0.10.0 - 2022-08-02</h1>

<div class="section" id="features">
<h1>Features</h1>
<ul>
<li><p class="first">Initial <strong>very experimental</strong> web extension support!
Currently this is limited to the vanilla docutils language server available in the <tt class="docutils literal">esbonio</tt> Python package - so no Sphinx support yet.</p>
<p>The outline view, basic completions and hovers for vanilla docutils roles and directives are the only known working features at this point. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/438">#438</a>)</p>
</li>
</ul>
</div>
<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul class="simple">
<li>Log output in the <tt class="docutils literal">Esbonio</tt> output channel is now syntax highlighted. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/436">#436</a>)</li>
</ul>
</div>


esbonio-language-server-v0.14.0
<h1 class="title">v0.14.0 - 2022-07-31</h1>

<div class="section" id="features">
<h1>Features</h1>
<ul class="simple">
<li>The language server now supports <tt class="docutils literal">textDocument/implementation</tt> requests for roles and directives. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/431">#431</a>)</li>
</ul>
</div>
<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul class="simple">
<li>Line numbers for diagnostics for issues found within Python docstrings should now be more accurate. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/433">#433</a>)</li>
<li>Document symbol requests made for unsaved files now use the language client's version rather than the version on disk. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/434">#434</a>)</li>
</ul>
</div>
<div class="section" id="fixes">
<h1>Fixes</h1>
<ul class="simple">
<li>Diagnostics for issues found in <tt class="docutils literal">.. included::</tt> files should now have the correct filepath. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/425">#425</a>)</li>
<li>Extensions defined within Sphinx extensions or <tt class="docutils literal">conf.py</tt> files can now take advantage of dependency injection (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/428">#428</a>)</li>
<li>The server should now handle document symbol requests for files that are treated as reStructuredText files by a language client but don't have an <tt class="docutils literal">*.rst</tt> extension. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/434">#434</a>)</li>
</ul>
</div>
<div class="section" id="api-changes">
<h1>API Changes</h1>
<ul class="simple">
<li>It is now possible to manually load an extension by calling the <tt class="docutils literal">load_extension</tt> method on a language server object. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/429">#429</a>)</li>
<li><tt class="docutils literal">LanguageFeatures</tt> can now respond to <tt class="docutils literal">textDocument/implementation</tt> requests by providing an <tt class="docutils literal">implementation</tt> method and a collection of <tt class="docutils literal">implementation_triggers</tt>. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/431">#431</a>)</li>
</ul>
</div>


esbonio-sphinx-extensions-v0.2.0
<h1 class="title">v0.2.0 - 2022-06-29</h1>
<h2 class="subtitle" id="features">Features</h2>

<ul class="simple">
<li>Add <tt class="docutils literal">esbonio.relevant_to</tt> extension. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/402">#402</a>)</li>
</ul>

esbonio-language-server-v0.13.1
<h1 class="title">v0.13.1 - 2022-06-29</h1>

<div class="section" id="fixes">
<h1>Fixes</h1>
<ul class="simple">
<li>Log messages from Sphinx's startup are now captured and forwarded onto the language client. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/408">#408</a>)</li>
<li>Log messages from the server's startup are now captured and forwarded onto the language client. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/417">#417</a>)</li>
<li>Fixed handling of default roles when getting a document's initial doctree. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/418">#418</a>)</li>
</ul>
</div>
<div class="section" id="api-changes">
<h1>API Changes</h1>
<ul>
<li><p class="first">Improved type annotations allow <tt class="docutils literal">rst.get_feature</tt> to be called with a language feature's type and have the return type match accordingly. This should allow editors to provide better autocomplete suggestions etc. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/409">#409</a>)</p>
</li>
<li><p class="first"><tt class="docutils literal">esbonio_setup</tt> functions can now request specific language features and servers, just by providing type annotations e.g:</p>
<pre class="literal-block">
from esbonio.lsp.roles import Roles
from esbonio.lsp.sphinx import SphinxLanguageServer

def esbonio_setup(rst: SphinxLanguageServer, roles: Roles):
...
</pre>
<p>This function will then only be called when the language server is actually an instance of <tt class="docutils literal">SphinxLanguageServer</tt> and only when that lanuage server instance contains an intance of the <tt class="docutils literal">Roles</tt> feature. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/410">#410</a>)</p>
</li>
</ul>
</div>
<div class="section" id="deprecated">
<h1>Deprecated</h1>
<ul class="simple">
<li>Calling <tt class="docutils literal">rst.get_feature</tt> with a string will become an error in <tt class="docutils literal">v.1.0</tt>, a language feature's class should be given instead. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/409">#409</a>)</li>
</ul>
</div>


esbonio-vscode-extension-v0.9.2
<h1 class="title">v0.9.2 - 2022-06-07</h1>
<h2 class="subtitle" id="fixes">Fixes</h2>

<ul>
<li><p class="first">The <tt class="docutils literal">esbonio.server.pythonPath</tt> setting now accepts paths relative to <tt class="docutils literal">${workspaceFolder}</tt>.</p>
<p><strong>Note</strong> This is simply an alias for the existing <tt class="docutils literal">${workspaceRoot}</tt> functionality. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/404">#404</a>)</p>
</li>
</ul>


esbonio-language-server-v0.13.0
<h1 class="title">v0.13.0 - 2022-05-27</h1>

<div class="section" id="features">
<h1>Features</h1>
<ul>
<li><p class="first">Add initial <tt class="docutils literal">textDocument/hover</tt> support, with documentation for roles and directives being shown.</p>
<p>Add <tt class="docutils literal">&gt;</tt> to completion triggers. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/311">#311</a>)</p>
</li>
</ul>
</div>
<div class="section" id="fixes">
<h1>Fixes</h1>
<ul class="simple">
<li>The language server now correctly handles diagnosics originating from <tt class="docutils literal">.. c:function::</tt> directives. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/393">#393</a>)</li>
</ul>
</div>


esbonio-vscode-extension-v0.9.1
<h1 class="title">v0.9.1 - 2022-05-25</h1>

<div class="section" id="fixes">
<h1>Fixes</h1>
<ul class="simple">
<li>The correct value of the <tt class="docutils literal">esbonio.sphinx.doctreeDir</tt> setting is used when constructing the initializationOptions to send to the server. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/390">#390</a>)</li>
</ul>
</div>
<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul class="simple">
<li>Language status items are now shown in a project's <tt class="docutils literal">conf.py</tt>, while also correctly being omitted for rst files not under the project's <tt class="docutils literal">srcDir</tt> (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/391">#391</a>)</li>
</ul>
</div>


esbonio-vscode-extension-v0.9.0
<h1 class="title">v0.9.0 - 2022-05-22</h1>

<div class="section" id="features">
<h1>Features</h1>
<ul class="simple">
<li>Add new <tt class="docutils literal">esbonio.sphinx.copyBuildCommand</tt> and <tt class="docutils literal">esbonio.sphinx.setBuildCommand</tt> commands.
As the name suggests, the first command will copy the equivalent <tt class="docutils literal"><span class="pre">sphinx-build</span></tt> command to the clipboard while the set build command prompts for a set of <tt class="docutils literal"><span class="pre">sphinx-build</span></tt> arguments and updates the server's configuration accordingly. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/360">#360</a>)</li>
</ul>
</div>
<div class="section" id="deprecated">
<h1>Deprecated</h1>
<ul class="simple">
<li>The <tt class="docutils literal">esbonio.server.hideSphinxOutput</tt> option has been deprecated in favour of the new <tt class="docutils literal">esbonio.sphinx.quiet</tt> and <tt class="docutils literal">esbonio.sphinx.silent</tt> options.
It will be removed when the server reaches <tt class="docutils literal">v1.0</tt> (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/360">#360</a>)</li>
</ul>
</div>
<div class="section" id="misc">
<h1>Misc</h1>
<ul class="simple">
<li>The <tt class="docutils literal">esbonio.sphinx.numJobs</tt> configuration now defaults to <tt class="docutils literal">1</tt> in line with <tt class="docutils literal"><span class="pre">sphinx-build</span></tt> defaults. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/374">#374</a>)</li>
</ul>
</div>


esbonio-language-server-v0.12.0
<h1 class="title">v0.12.0 - 2022-05-22</h1>

<div class="section" id="features">
<h1>Features</h1>
<ul>
<li><p class="first">The language server now supports many (but not all) <tt class="docutils literal"><span class="pre">sphinx-build</span></tt> command line options.
The <tt class="docutils literal">sphinx.*</tt> section of the server's initialization options has been extened to include the following options.</p>
<ul class="simple">
<li><tt class="docutils literal">configOverrides</tt></li>
<li><tt class="docutils literal">doctreeDir</tt></li>
<li><tt class="docutils literal">keepGoing</tt></li>
<li><tt class="docutils literal">makeMode</tt></li>
<li><tt class="docutils literal">quiet</tt></li>
<li><tt class="docutils literal">silent</tt></li>
<li><tt class="docutils literal">tags</tt></li>
<li><tt class="docutils literal">verbosity</tt></li>
<li><tt class="docutils literal">warningIsError</tt></li>
</ul>
<p>See the <a class="reference external" href="https://swyddfa.github.io/esbonio/docs/latest/en/lsp/getting-started.html#configuration">documentation</a> for details.</p>
<p>Additionally, a new cli application <tt class="docutils literal"><span class="pre">esbonio-sphinx</span></tt> is now available which language clients (or users) can use to convert <tt class="docutils literal"><span class="pre">sphinx-build</span></tt> cli options to/from the server's initialization options. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/360">#360</a>)</p>
</li>
</ul>
</div>
<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul class="simple">
<li><tt class="docutils literal">textDocument/documentSymbol</tt> responses now include symbol information on directives. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/374">#374</a>)</li>
</ul>
</div>
<div class="section" id="fixes">
<h1>Fixes</h1>
<ul class="simple">
<li><tt class="docutils literal">.. include::</tt> directives no longer break goto definition for <tt class="docutils literal">:ref:</tt> role targets (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/361">#361</a>)</li>
</ul>
</div>
<div class="section" id="api-changes">
<h1>API Changes</h1>
<ul class="simple">
<li>Add method <tt class="docutils literal">get_initial_doctree</tt> to <tt class="docutils literal">RstLanguageServer</tt> which can be used to obtain a doctree of the given file before any role and directives have been applied. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/374">#374</a>)</li>
</ul>
</div>
<div class="section" id="misc">
<h1>Misc</h1>
<ul class="simple">
<li>The <tt class="docutils literal">esbonio.sphinx.numJobs</tt> configuration now defaults to <tt class="docutils literal">1</tt> in line with <tt class="docutils literal"><span class="pre">sphinx-build</span></tt> defaults. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/374">#374</a>)</li>
</ul>
</div>


esbonio-language-server-v0.11.2
<h1 class="title">v0.11.2 - 2022-05-09</h1>

<div class="section" id="enhancements">
<h1>Enhancements</h1>
<ul class="simple">
<li>Add <tt class="docutils literal">esbonio.lsp.rst._record</tt> and <tt class="docutils literal">esbonio.lsp.sphinx._record</tt> startup modules.
These can be used to record all LSP client-sever communication to a text file. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/380">#380</a>)</li>
</ul>
</div>
<div class="section" id="fixes">
<h1>Fixes</h1>
<ul class="simple">
<li>The language server now detects functionality bundled with standard Sphinx extensions (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/381">#381</a>)</li>
</ul>
</div>


esbonio-language-server-v0.11.1
<h1 class="title">v0.11.1 - 2022-04-26</h1>
<h2 class="subtitle" id="fixes">Fixes</h2>

<ul class="simple">
<li><tt class="docutils literal">textDocument/documentLink</tt> requests no longer fail when encountering <cite>::</cite> characters in C++ references. (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/377">#377</a>)</li>
</ul>


esbonio-vscode-extension-v0.8.3
<h1 class="title">v0.8.3 - 2022-04-20</h1>
<h2 class="subtitle" id="misc">Misc</h2>

<ul class="simple">
<li>Switch from <tt class="docutils literal"><span class="pre">vscode-test</span></tt> to <tt class="docutils literal"><span class="pre">&64;vscode/test-electron</span></tt> (<a class="reference external" href="https://github.com/swyddfa/esbonio/issues/372">#372</a>)</li>
</ul>
<hr />

0.94.0

Breaking Changes

- The `Open Preview to the Side` and `Open Preview` commands have been renamed to `Preview Documentation in Split Window` and `Preview Documentation` respectively. ([780](https://github.com/swyddfa/esbonio/issues/780))

Enhancements

- Esbonio now adds an icon to the editor toolbar that opens the preview in markdown files. ([780](https://github.com/swyddfa/esbonio/issues/780))
- The preview pane will now show a "No Content Found" message if the file could not be previewed.
The message contains troubleshooting steps on how the preview might be fixed. ([793](https://github.com/swyddfa/esbonio/issues/793))

Misc

- Esbonio now depends on the [MyST Syntax Highlighting](https://marketplace.visualstudio.com/items?itemName=chrisjsewell.myst-tml-syntax) extension. ([#794](https://github.com/swyddfa/esbonio/issues/794))

esbonio-language-server-v1.0.0b3

0.93.2

Fixes

- Fix pipeline to publish to Open VSX ([777](https://github.com/swyddfa/esbonio/issues/777))

esbonio-vscode-extension-v0.93.1

0.93.1

Fixes

- Rebuild extension to pull in the latest esbonio release ([775](https://github.com/swyddfa/esbonio/issues/775))

esbonio-vscode-extension-v0.93.0

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.