Finish separation of LSP interface from LSP implementation; move util::LanguageServer
to standard library in rascal project
#504
Labels
util::LanguageServer
to standard library in rascal project
#504
We have prepared for injecting the LSP implementation in rascal-lsp into a Rascal run-time:
IDEServices.registerLanguage
is part of theIDEServices
interface which is provided by therascal
project.IDEServices
implementations are injected through theJavaBridge
via either the evaluator's configuration or the compiled-code configuration.registerLanguage
method throws a "not implemented" exceptionutil::LanguageServer
now depends on the RascalInterface class for implementingregisterLanguage
, but that one is easily migrated to the IDEServices API as well:By moving
util::LanguageServer
finally to the standard library we cut the unnecessary links between interface and implementation of language services, with these benefits:rascal-lsp
anymore, only onrascal
util::LanguageServer
becomes a core part of the documentation and typical lore of the Rascal community, rather than an extension.Pitfalls:
LanguageServer
module becomes a contract between the standard library and rascal-lsp, as it is already a contract between the rascal-lsp library and the differerent DSLs.I believe something to do after the big upcoming release. It should have zero effect on user code, but people will want to clean up their dependencies after this change is released. Sounds good for a separate release notes etc.
The text was updated successfully, but these errors were encountered: