-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Proposal for Task API #1698
Comments
Below are some thoughts about implementation TaskType contribution pointDefines the possible properties for a Task. TaskResolver contribution pointKnows how to make a Task ready to run from a description in tasks.json:
For example, with TaskResolver it will be possible to omit the actual command line in Task configuration in tasks.json. TaskServerThe TaskServer is a singleton, that receives the requests for running/killing a Task (as it currently works). But instead of processing a Task directly, TaskServer delegates it to the appropriate TaskRunner depending on the type of the given Task. TaskRunner contribution pointThe TaskRunner knows how to run a Task of some type.
Handling a Task's OutputIf a Task is running as PTY process using a custom TaskRunner then the TerminalWidget should be able to interact with a custom Terminal Server outside of Theia server. TaskProvider contribution pointThe TaskProvider supplies the Tasks programmatically.
|
@azatsarynnyy sounds good to me. Looking forward to trying these improvements One background consideration is that we would eventually like to have compatibility with VS Code tasks. Based on your proposal, I think we could introduce a new task format and runner, that can interpret and run such tasks? |
Thank you, Marc.
In my opinion, one of the advantages of such design is it shouldn't be difficult to ensure compatibility with the VSCode tasks' format. |
Currently, the Task extension provides the means to execute scripts or executables on the Theia backend. A Task can be described using a proposed predefined format.
I'd like to enhance the Task extension with several APIs that would offer the following features:
Examples of using:
The text was updated successfully, but these errors were encountered: