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

[vscode] Support TerminalProfileProvider #11503

Closed
Tracked by #11520
planger opened this issue Aug 3, 2022 · 3 comments · Fixed by #12066 · May be fixed by eclipsesource/theia#60
Closed
Tracked by #11520

[vscode] Support TerminalProfileProvider #11503

planger opened this issue Aug 3, 2022 · 3 comments · Fixed by #12066 · May be fixed by eclipsesource/theia#60
Assignees
Labels
vscode issues related to VSCode compatibility

Comments

@planger
Copy link
Contributor

planger commented Aug 3, 2022

A TerminalProfileProvider can be registered via window.registerTerminalProfileProvider(id, provider) and eventually provides a TerminalProfile defining how a terminal will be launched. All those types and their support in Theia are currently missing.

The types of the options with which a terminal can be provided already exist:

Related VSCode API issues:

@tsmaeder
Copy link
Contributor

tsmaeder commented Dec 7, 2022

Theia seems to have no support for terminal profiles at all at the moment. Implementing the API correctly would also entail support for configuration in the preferences and a UI to select profiles.

@tsmaeder tsmaeder self-assigned this Dec 7, 2022
@tsmaeder
Copy link
Contributor

My plan of attack for this issue looks like this:

  1. Introcuce a ProfileManagerService in the front end
  2. Read the "legacy" preference values to add default profiles to the profile manager
  3. Make TerminalService use the default profiles
  4. Add schema info for terminal profiles in settings.json
  5. Add code to merge profiles from setttings.json into the profile manager
  6. Add UI to select profiles and default profiles when creating a terminal
  7. Add API support for contributing profiles
  8. Add support for contributes terminal profiles in package.json

Because we might want to declare VS Code 1.64.2 support (even if we lack full functionality), I'm starting with 1. and 8. and proceed from there.

@marcdumais-work
Copy link
Contributor

@tsmaeder You can probably test using extension ms-vscode.js-debug, installable from the extensions view.

2022-12-16T16:45:06.372Z root ERROR [hosted-plugin: 1993873] Activating extension 'JavaScript Debugger' failed: TypeError: a.window.registerTerminalProfileProvider is not a function
at t.registerDebugTerminalUI (/tmp/vscode-unpacked/ms-vscode.js-debug-1.65.0.vsix/extension/src/extension.js:2:1279548)
at t.activate (/tmp/vscode-unpacked/ms-vscode.js-debug-1.65.0.vsix/extension/src/extension.js:2:1073785)
at PluginManagerExtImpl.startPlugin (/home/lmcmcds/theia/packages/plugin-ext/lib/plugin/plugin-manager.js:308:81)
at /home/lmcmcds/theia/packages/plugin-ext/lib/plugin/plugin-manager.js:218:32
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async PluginManagerExtImpl.$activatePlugin (/home/lmcmcds/theia/packages/plugin-ext/lib/plugin/plugin-manager.js:270:13)
at async Promise.all (index 0)
at async PluginManagerExtImpl.activateBySingleEvent (/home/lmcmcds/theia/packages/plugin-ext/lib/plugin/plugin-manager.js:265:9)
at async PluginManagerExtImpl.$activateByEvent (/home/lmcmcds/theia/packages/plugin-ext/lib/plugin/plugin-manager.js:249:13)
at async PluginManagerExtImpl.$start (/home/lmcmcds/theia/packages/plugin-ext/lib/plugin/plugin-manager.js:149:13)

tsmaeder added a commit to tsmaeder/theia that referenced this issue Dec 27, 2022
- UI and service to manage terminal profiles
- Handle profiles in preferences according to VS Code schema
- API and contribution markup for contributing profiles and activation
event handling

contributed on behalf of ST Microelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>
tsmaeder added a commit to tsmaeder/theia that referenced this issue Jan 12, 2023
- UI and service to manage terminal profiles
- Handle profiles in preferences according to VS Code schema
- API and contribution markup for contributing profiles and activation
event handling

contributed on behalf of ST Microelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>
tsmaeder added a commit to tsmaeder/theia that referenced this issue Jan 13, 2023
- UI and service to manage terminal profiles
- Handle profiles in preferences according to VS Code schema
- API and contribution markup for contributing profiles and activation
event handling

contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>
tsmaeder added a commit to tsmaeder/theia that referenced this issue Jan 17, 2023
- UI and service to manage terminal profiles
- Handle profiles in preferences according to VS Code schema
- API and contribution markup for contributing profiles and activation
event handling

contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>
tsmaeder added a commit that referenced this issue Jan 19, 2023
Support for terminal profiles. Fixes #11503

- UI and service to manage terminal profiles
- Handle profiles in preferences according to VS Code schema
- API and contribution markup for contributing profiles and activation
event handling

contributed on behalf of STMicroelectronics

Signed-off-by: Thomas Mäder <t.s.maeder@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vscode issues related to VSCode compatibility
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants