Runnables: remove version field from the format (#8118)

Piotr Osiewicz created

This changes the format of runnables slightly (the top-level object is
now a sequence, not a map).
The 2nd commit pulls in aliases from .zshrc and co.
Release Notes:

- N/A

Change summary

assets/settings/initial_tasks.json         | 40 +++++++++--------------
crates/task/src/static_source.rs           |  7 +---
crates/terminal_view/src/terminal_panel.rs |  2 
3 files changed, 19 insertions(+), 30 deletions(-)

Detailed changes

assets/settings/initial_tasks.json 🔗

@@ -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
+  }
+]

crates/task/src/static_source.rs 🔗

@@ -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()

crates/terminal_view/src/terminal_panel.rs 🔗

@@ -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;
         }