Skip to content
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

Typescript Language Plugin #3767

Closed
tsmaeder opened this issue Dec 6, 2018 · 14 comments
Closed

Typescript Language Plugin #3767

tsmaeder opened this issue Dec 6, 2018 · 14 comments
Assignees
Labels
plug-in system issues related to the plug-in system typescript issues related to the typescript language

Comments

@tsmaeder
Copy link
Contributor

tsmaeder commented Dec 6, 2018

Provide Typescript Language extension as a plugin

Depends on eclipse-che/che#11468

@svenefftinge I believe the thinking is to keep Typescript/Theia support in the main repo, but it would still make sense to convert to a plugin-based version (in packages/typescript and packages/tslint)

@svenefftinge
Copy link
Contributor

I think we should just reuse the typescript extension from VS Code?

@benoitf
Copy link
Contributor

benoitf commented Dec 6, 2018

@svenefftinge AFAIK TypeScript is integrated in the VS Code product, it's not a pure extension that can be grabbed from VS Code marketplace

(for tslint there is one https://marketplace.visualstudio.com/items?itemName=eg2.tslint )

@akosyakov
Copy link
Member

akosyakov commented Dec 7, 2018

There is an extension but it is not published. It could be packaged from the repo: https://github.com/Microsoft/vscode/tree/master/extensions/typescript-language-features

Before removing any extension, the plugin system should be complete and tested, and all clients (docker images, products) should move to use the plugin system.

@tsmaeder
Copy link
Contributor Author

tsmaeder commented Dec 7, 2018

Before removing any extension, the plugin system should be complete and tested, and all clients (docker images, products) should move to use the plugin system.

So we need to go through a deprecation process, same as for API. For stuff that we move out of the main repo anyway (for example Java support), this can happen naturally (start new repo as a plugin), for typescript, we would have to have parallel code in the repo, for the time being.

@svenefftinge
Copy link
Contributor

For stuff that we move out of the main repo anyway (for example Java support), this can happen naturally (start new repo as a plugin)

I think we should aim at directly reusing vscode-java without any Theia-specific modifications.
Maybe a good strategy would be try supporting that particular extension by doing so maturing the plug-in system. Once it is ready, we deprecate the @theia/java.

@svenefftinge
Copy link
Contributor

Also many extensions seems to expect the standard vscode extensions (e.g. the python one expects the python language and configuration to be present). So maybe we should extract those extensions from VS Code and have them installed always.

@tsmaeder
Copy link
Contributor Author

So maybe we should extract those extensions from VS Code and have them installed always.

Could you file an issue for that?

@tsmaeder
Copy link
Contributor Author

tsmaeder commented Dec 12, 2018

One of the problems I'm trying to clear up is how vscode plugins are going to work when they are run in separate containers in Che 7. In particular, where to launch debuggees and how to use persistent volumes for plugin state have questions that need answering. VSCode plugins are written with the assumption that everything runs on a shared machine, which can cause problems.

@svenefftinge
Copy link
Contributor

I filed #3815

@svenefftinge
Copy link
Contributor

VSCode plugins are written with the assumption that everything runs on a shared machine, which can cause problems.

It doesn't seem to cause many problems for the VS Code users.

@tsmaeder
Copy link
Contributor Author

It doesn't seem to cause many problems for the VS Code users.

Yes, but when running Theia in Che, things are different.

@svenefftinge
Copy link
Contributor

Would be helpful if you could elaborate on how it is different in that case.

@tsmaeder
Copy link
Contributor Author

For example, when a debug adapter tries to start a process to be debugged, it would typically be start it in the same container where the plugin is running, not the target (runtime) container.

@tolusha
Copy link
Contributor

tolusha commented Feb 11, 2019

Since PR is merged it is possible to use VS Code extension [2] as a plugin in Theia. Currently it is available by direct url [3]. To build archive I use a docker file here [4]

[1] #4170
[2] https://github.com/Microsoft/vscode/tree/master/extensions/typescript-language-features
[3] https://github.com/tolusha/ms-code.typescript/releases/download/1.0.0/che-typescript-language.vsix
[4] https://github.com/eclipse/che-theia/tree/ab/plugins/plugins/ms-vscode.typescript

@tolusha tolusha closed this as completed Feb 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plug-in system issues related to the plug-in system typescript issues related to the typescript language
Projects
None yet
Development

No branches or pull requests

5 participants