@@ -1,27 +1,19 @@
// Static tasks configuration.
//
// Example:
-// {
-// "version": "1",
-// "tasks": [
-// {
-// "label": "human-readable label for UI",
-// "command": "bash",
-// // rest of the parameters are optional
-// "args": ["-c", "for i in {1..10}; do echo \"Second $i\"; sleep 1; done"],
-// // Env overrides for the command, will be appended to the terminal's environment from the settings.
-// "env": { "foo": "bar" },
-// // Current working directory to spawn the command into, defaults to current project root.
-// "cwd": "/path/to/working/directory",
-// // Whether to use a new terminal tab or reuse the existing one to spawn the process, defaults to `false`.
-// "use_new_terminal": false,
-// // Whether to allow multiple instances of the same task to be run, or rather wait for the existing ones to finish, defaults to `false`.
-// "allow_concurrent_runs": false
-// }
-// ]
-// }
-//
-{
- "version": "1",
- "tasks": []
-}
+[
+ {
+ "label": "Example task",
+ "command": "bash",
+ // rest of the parameters are optional
+ "args": ["-c", "for i in {1..5}; do echo \"Hello $i/5\"; sleep 1; done"],
+ // Env overrides for the command, will be appended to the terminal's environment from the settings.
+ "env": { "foo": "bar" },
+ // Current working directory to spawn the command into, defaults to current project root.
+ //"cwd": "/path/to/working/directory",
+ // Whether to use a new terminal tab or reuse the existing one to spawn the process, defaults to `false`.
+ "use_new_terminal": false,
+ // Whether to allow multiple instances of the same task to be run, or rather wait for the existing ones to finish, defaults to `false`.
+ "allow_concurrent_runs": false
+ }
+]
@@ -48,10 +48,7 @@ pub(crate) struct Definition {
/// A group of Tasks defined in a JSON file.
#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
-pub struct DefinitionProvider {
- version: String,
- tasks: Vec<Definition>,
-}
+pub struct DefinitionProvider(Vec<Definition>);
impl DefinitionProvider {
/// Generates JSON schema of Tasks JSON definition format.
@@ -121,7 +118,7 @@ impl StaticSource {
static_source.tasks = new_definitions
.read(cx)
.get()
- .tasks
+ .0
.clone()
.into_iter()
.enumerate()
@@ -316,7 +316,7 @@ impl TerminalPanel {
let command = std::mem::take(&mut spawn_task.command);
let args = std::mem::take(&mut spawn_task.args);
spawn_task.command = shell;
- user_args.extend(["-c".to_owned(), command]);
+ user_args.extend(["-i".to_owned(), "-c".to_owned(), command]);
user_args.extend(args);
spawn_task.args = user_args;
}