swyddfa / esbonio

A language server for working with Sphinx projects.
https://docs.esbon.io/
121 stars 21 forks source link

lsp: Split role support into multiple features #816

Closed alcarney closed 1 month ago

alcarney commented 1 month ago

As with directives, this commit splits the monolithic Roles feature into a backend feature and two frontend features.

The original Roles feature is responsible for providing the API used by the frontend features.

The RstRoles and MystRoles features use the backend to provide features for the reStructuredText and MyST syntaxes respectively. Note that this is already proving useful as the MystRoles feature does not need the "backtracking" code the RstRoles feature uses to determine if a completion is an actual role, or a directive's option.