swyddfa / esbonio

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

Introduce the `ProjectManager` #747

Closed alcarney closed 4 months ago

alcarney commented 4 months ago

Instead of exposing the database via the SphinxClient interface, this commit introduces the concept of a Project. Projects are simply the data exposed via the database created by the sphinx agent.

By separating the two, not only does the SphinxClient get to focus solely on managing the underlying Sphinx process but we open up interesting opportunities. For example, we can run the server without an active Sphinx connection - a kind of "offline" mode.

Something that might be interesting to try as an initial vscode.dev implementation of the server...