ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Run Task

by mgutski ST3

A Sublime Text package for running custom workspace tasks

Details

Installs

  • Total 51
  • Win 29
  • OS X 12
  • Linux 10
Aug 20 Aug 19 Aug 18 Aug 17 Aug 16 Aug 15 Aug 14 Aug 13 Aug 12 Aug 11 Aug 10 Aug 9 Aug 8 Aug 7 Aug 6 Aug 5 Aug 4 Aug 3 Aug 2 Aug 1 Jul 31 Jul 30 Jul 29 Jul 28 Jul 27 Jul 26 Jul 25 Jul 24 Jul 23 Jul 22 Jul 21 Jul 20 Jul 19 Jul 18 Jul 17 Jul 16 Jul 15 Jul 14 Jul 13 Jul 12 Jul 11 Jul 10 Jul 9 Jul 8 Jul 7
Windows 0 1 0 0 0 1 0 1 0 0 1 0 1 0 3 0 1 0 0 0 0 0 0 0 1 0 0 0 0 2 0 2 0 0 1 0 1 0 0 0 0 1 1 0 0
OS X 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 1

Readme

Source
raw.​githubusercontent.​com

Sublime Run Task

License Sublime Text

Run automated workspace tasks from Sublime Text 3 quick panel. With Run Task you can configure a list of commonly used workspace tasks, such as running unit tests and code generation, and be able to run them and analyze their results without having to leave your favorite text editor.

Screenshot

Installation

Package Control

The recommended way to install Run Task package is via Package Control. Just use the Package Control: Install Package command from the command palette and search for Run Task. By selecting this installation method any package updates will be installed automatically.

Manual

Run Task package can be installed manually by cloning this Git repository into your Sublime Text packages installation directory. Please note that by selecting this installation method any package updates will have to be installed manually.

  • Open a terminal in Sublime Text packages installation directory. A path to this directory can be found through PreferencesBrowse Packages....
  • Run

    git clone https://github.com/mgutski/sublime-run-task "Run Task"
    

Usage

Open or create the .sublime-project file, which is the file that contains your project definition.

Usage

Add Run Task.tasks top level section with JSON tasks definitions, as in the example below.

{
    "folders":
    [
        {
            "path": ".",
            "folder_exclude_patterns": [".idea", ".vscode"],
            "file_exclude_patterns": [".gitignore", ".gitattributes", ".gitmodules", ".firebaserc"]
        }
    ],
    "settings":
    {
        "tab_size": 4
    },
    "Run Task.tasks": 
    [
        {
            "name": "Run Unit Tests",
            "type": "shell",
            "command": "./Tests/run_unit_tests.sh",
            "windows": {
                "command": "wsl",
                "args": "./Tests/run_unit_tests.sh"
            }
        },
        {
            "name": "Start Local Web Server",
            "type": "shell",
            "command": "osascript",
            "args": "-e 'tell app \"Terminal\" to activate' -e 'tell app \"Terminal\" to do script \"cd ${cwd} && ./Debug/run-http-server.sh\"'",
            "windows": {
                "command": "cmd",
                "args": "/C start cmd /K .\\\\Debug\\\\run-http-server.cmd"
            },
            "show_output_panel": false
        },
        {
            "name": "Generate Docs",
            "type": "shell",
            "command": "./Source/scripts/generate_docs.sh",
            "windows": {
                "command": "wsl",
                "args": "./Source/scripts/generate_docs.sh"
            }
        }
    ]
}

Apart from shell commands, Run Task also supports running Sublime Text window commands. For example, for a task that launches a terminal, one may want to use a open_terminal_project_folder window command from Terminal package. This can be achieved with the following task definition:

{
    "name": "Start Local Web Server",
    "type": "sublime",
    "command": "open_terminal_project_folder",
    "args": {
        "parameters": ["/C", ".\\Debug\\run-http-server.cmd"]
    }
}

That's all there is to it. You can now conveniently access your custom tasks from anywhere in your project, either by running Run Task command from command palette, or using a key binding.

Task Properties

Run Task supports the following set of task properties and values:

Property Required Type Value
name YES string The task's name displayed in Sublime's quick panel.
type YES string The task's type. It can either be shell or sublime. If shell is specified, the command is interpreted as a shell command to execute. If sublime is specified, the command is interpreted as a Sublime Text window command to execute.
command YES string The command to execute. It must be a valid shell command or Sublime Text window command name, depending on the type specified. For the shell commmand to work, the specified executable must be in your PATH.
args NO string, array, or object The arguments to be passed to the command. For a task of type shell it can either be a string or array. For a task of type sublime it must be a JSON object.
windows NO object The Windows-specific command and args properties. If specified, the supplied properties will be used when the task is executed on Windows operating system.
show_output_panel NO boolean Defines whether the shell task output is to be printed to Sublime's output panel.

Variable Substitution

Run Task supports variable substitution for tasks of type shell. The substitutable variables can be used with command and args properties of task definition.

Supported variables:

Variable Substituted Value
cwd The workspace directory path.

Example:

{
    "name": "Variable Substitution Test",
    "type": "shell",
    "command": "./Debug/script.sh",
    "args": ["CWD:", "${cwd}"],
    "windows": {
        "command": "${cwd}\\Debug\\script.cmd",
        "args": ["CWD:", "${cwd}"]
    }
}

Key Bindings

The package comes with some pre-defined keyboard shortcuts. You can always configure your own shortcuts via PreferencesPackage SettingsRun TaskKey Bindings.

Command Linux & Windows macOS
Run Task Ctrl+Alt+R Ctrl+Option+R

Credits

Run Task features are highly inspired by Visual Studio Code Tasks.

License

This project is licensed under the MIT License. See the LICENSE file for details.