-
Notifications
You must be signed in to change notification settings - Fork 28.2k
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
User/gabrield/extension callback as task #66819
User/gabrield/extension callback as task #66819
Conversation
@GabeDeBacker I don't have time atm to read through everything, but why are there are so many changes needed for this in the terminal? |
src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts
Outdated
Show resolved
Hide resolved
src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts
Outdated
Show resolved
Hide resolved
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
Outdated
Show resolved
Hide resolved
…ensionCallbackAsTask
…ensionCallbackAsTask
The main piece of feedback is I still think the API should only allow |
…ensionCallbackAsTask
Will merge after CI passes |
CI failed with unrelated strict null check problems, I'll assume it's all good. |
This PR addresses issue #66818.
Currently tasks can only execute external processes. For certain build environments that are sufficiently complex, launching an external process to perform the build is not sufficient to provide a robust user experience with VSCode.
This change allows an extension to provide a callback function as a task through ITaskProvider::ProvideTasks. When the task is executed, the extension is provided a terminal renderer for which it can provide output and accept input.
All scenarios such as task launch, terminate task, restart task and terminal re-use have been tested.
All unit-tests also pass.