Skip to content

edonet/vscode-command-runner

Repository files navigation

VSCode Command Runner

Run custom shell command defined in vs code configuration and node module package.json

Features

  • Run custom shell command
  • Run selected content as shell command
  • Run custom shell command with selected files by explorer context menu

Extension Settings

You can defined shell command in vs code configuration

{
    "command-runner.terminal.name": "runCommand",
    "command-runner.terminal.autoClear": true,
    "command-runner.terminal.autoFocus": true,
    "command-runner.commands": {
        "echo workspaceFolder": "echo ${workspaceFolder}",
        "echo file": "echo ${file}"
    }
}

or in node module package.json

{
    "commands": {
        "echo workspaceFolder": "echo ${workspaceFolder}",
        "echo file": "echo ${file}"
    }
}

Key Binding

You can bind custom keys for the command which defined in configuration

{
    "key": "ctrl+alt+1",
    "command": "command-runner.run",
    "args": { "command": "echo file" }
}

Terminal Options

You can customize the terminal for the command

{
    "key": "ctrl+alt+1",
    "command": "command-runner.run",
    "args": {
        "command": "echo file",
        "terminal": "runCommand"
    }
}

or

{
    "key": "ctrl+alt+1",
    "command": "command-runner.run",
    "args": {
        "terminal": {
            "name": "runCommand",
            "cwd": "path/to/runCommand",
            "shellArgs": [],
            "autoClear": true,
            "autoFocus": true
        }
    }
}

Predefined Variable

  • ${file}: activated file path;
  • ${fileBasename}: activated file basename;
  • ${fileBasenameNoExtension}: activated file basename with no extension;
  • ${fileDirname}: activated file dirname;
  • ${fileExtname}: activated file extension;
  • ${lineNumber}: the first selected line number;
  • ${lineNumbers}: the all selected line number, eg. 41,46,80;
  • ${columnNumber}: the first selected column number;
  • ${columnNumbers}: the all selected column number, eg. 41,46,80;
  • ${selectedFile}: the first selected file/folder from the context menu`;
  • ${selectedFiles}: the selected file/folder list from the context menu or use config, eg. "path/to/file1" "path/to/file2";
  • ${selectedText}: the first selected text;
  • ${selectedTextList}: the all selected text list, eg. sl1 sl2;
  • ${selectedTextSection}: the all selected text section, eg. sl1\nsl2;
  • ${selectedPosition}: the selected position list, eg. 21,6;
  • ${selectedPositionList}: the all selected position list, eg. 45,6 80,18 82,5;
  • ${selectedLocation}: the first selected location, eg. 21,6,21,10;
  • ${selectedLocationList}: the all selected location list, eg. 21,6,21,10 22,6,22,10 23,6,23,10;
  • ${relativeFile}: activated file relative path;
  • ${workspaceFolder}: activated workspace folder path;
  • ${workspaceFolderBasename}: activated workspace folder basename;
  • ${homedir}: the home directory of the current user;
  • ${tmpdir}: default directory for temporary files;
  • ${platform}: os platform;
  • ${env:PATH}: shell environment variable "PATH";
  • ${config:editor.fontSize}: vscode config variable;
  • ${command:workbench.action.terminal.clear}: run vscode command;
  • ${input}: input a value as parameter;
  • ${input:defaultValue}: input a value as parameter, and specify the default value;

Usages

  • use shortcut Ctrl+Shift+R to select custom command
  • use shortcut Ctrl+Alt+R to run selected content as shell command
  • or press F1 and then select/type Run Command or Run In Terminal,
  • or right click the Text Editor and then click Run Command to select custom command in editor context menu
  • or right click the Text Editor and then click Run In Terminal to run selected content as shell command in editor context menu