Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Export tokens for other extensions to depend on them.
If tokens are not exported, one can retrieve them doing e.g.:
But this code will be compiled by webpack into
Meaning that the third-party extension now ships its own copy of
@krassowski/jupyterlab-lsp
, with its own definition of the Tokens.If we export the tokens, third-party extensions are able to do:
Which compiles to:
Meaning that all extensions which depend on those tokens will use the same tokens.
This is very important in JupyterLab 3 and the new federated modules, during the plugin activation, because JupyterLab relies on the
Token
instances themselves, not the name of the token.Third-party extensions will be able to define
jupyterlab-lsp
as a shared packages (a package that is shared with other extensions) so it's not duplicated and bundled in all third-party extensions.They can enable this by adding the following in their
package.json
:https://github.com/jupyterlab/jupyterlab/blob/b29bfeb81e707dcb963d7d8e39a5d2ca1a036546/builder/metadata_schema.json#L28-L62