-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reorganize client source with lerna and typescript projects #76
Comments
…step-0-composite
upgrade typescript, use composite, remove require usage (76 0️⃣ )
remember when i said i would be better about doing more manageable chunks of work? well... I started taking a look at what it would take to add a hierarchical symbol viewer, and it got a little more... involved than I thought... basically a good chunk of [2] and [3]: krassowski/jupyterlab-lsp@master...bollwyvl:add-hierarchial-symbol-viewer here's the yak shave, each one of which should probably be a pr:
So anyhooo... I'll keep going on it, but it would already be unreasonably large to review, breaks tests, etc. so i'll probably have to actually make all those prs above. however, in trying to get a new end-to-end feature actually working, i'm starting to see the pattern of some relatively radical things we could do to make it fit in the lab architecture:
|
The features refactor brought as closer to step 3. Useful notes are in the comment https://github.com/krassowski/jupyterlab-lsp/issues/316#issuecomment-673527034. |
The plan in top level comment is slightly outdated, but I will work to make it happen; the next steps after #738 are:
Probably not this year though... Update thoughts:
Edit: The split-up is also useful since starting with Notebook v7 it will possibly serve not only JupyterLab but also Notebook as demonstrated on RetroLab example. For now we could have
|
To easing proposing the client-facing parts of this codebase to @jupyterlab/jupyterlab, the repository could be re-organized as a monorepo with smaller, independently testable, extensible, and replaceable components with well-defined inter-package interfaces.
This would not block any feature development, but should help keep PRs more focused and less likely to create conflicts.
step 0️⃣#77src
compiling withcomposite: true
require
sstep 1️⃣ #79src
intopackages/jupyterlap-lsp
tsconfigbase.json
to be used by sub-packagetsconfig.json
spackage.json
lint
andbuild
tsc
will be invokedbuild
to use the metapackagestep 2️⃣
jupyterlab-lsp
intolanguage-server
andlanguage-server-extension
name
s at this pointlanguage-server
tokens.ts
and anILanguageServerManager
CommandIds
vendor-main
withawait import
extension
will end up being inmain
, and just about everything from themanager
will likely be lazy-loadable, e.g. the first time a notebook/document is loaded. on subsequent loads, it will already be cached.step 3️⃣
Manager
registration APIslanguage-server-ipython
,language-server-notebook
jump-to-definition
and the parts oflsp-codemirror
The text was updated successfully, but these errors were encountered: