SeeLog / commando

Commando: Simple and powerful command executor extension for VSCode.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Commando: Simple and powerful command executor extension for VSCode.

Commando is a powerful extension for VSCode that allows you to execute commands easily from the command palette or through keybindings.

demo

Features

  • Execute any command from the command palette.
    • You can configure commands through the settings.json file.
      • Also you can configure through workspace's settings.json file.
  • Execute any command from keybindings
    • You can set up keybindings in the keybindings.json file.
  • Execute commands on save
    • You can configure commands to execute on save through the settings.json file.

Execute commands from the command palette

For example if you want to execute the command echo "Hello World" from the command palette, you need to add the following configuration to settings.json file.

  "commando.commands": [
    {
      "name": "Hello World",
      "description": "Prints Hello World to the console",
      "cmd": "echo \"Hello World\""
    },
  ]

If you want to automatically clear the output channel or terminal before each command, you can add the following configuration to settings.json file.

  "commando.commands": [
    {
      "name": "Hello World",
      "description": "Prints Hello World to the console",
      "cmd": "echo \"Hello World\"",
      "autoClear": true
    },
  ]

For more information about the configuration, please see Commands Settings.

Execute commands from keybindings

If you want to execute a command by pressing Ctrl+Shift+T, you need to add the following configuration to the keybindings.json file. Additionally, you need to add the command to the settings.json file as shown in the previous example.

  {
    "key": "ctrl+shift+t",
    "command": "commando.execute",
    "args": {
      "name": "Hello World"
    }
  }

Note: Please make sure that the command name is the same as the one you added to settings.json file.

Execute commands on save

If you want to execute a command on save, you need to add the following configuration to the settings.json file.

  "commando.commands": [
    {
      "name": "Hello World",
      "description": "Prints Hello World to the console",
      "cmd": "echo \"Hello World\"",
      "executeOnSavePattern": ".*\\.txt"
    },
  ]

Note: You can use regex pattern for executeOnSavePattern setting.

Extension Settings

User Settings

This extension contributes the following settings:

  • commando.commands: List of commands to execute. See Commands Settings.
  • commando.autoClear: If true, automatically clear the output channel or terminal before each command.
  • commando.autoFocus: If true, automatically focus the output channel or terminal before each command.
  • commando.executeInTerminal: If true, execute commands in terminal. Otherwise, execute commands on background and show the result in output channel.
  • commando.windowName: The name of the output channel or terminal. You can use placeholders.
  • commando.shell: The shell to use for running commands. If empty, the default shell is used. This setting is only available when commando.executeInTerminal is false.
  • commando.showInStatusBar: If true, show the status bar item. Otherwise, hide the status bar item. Default is false.

Commands Settings

  • name: The name of the command. This is used to identify the command. This must be unique.
  • description: The description of the command. This is used to show the command in the command palette.
  • cmd: The command to execute. You can use placeholders.
  • autoClear: (Optional) If true, automatically clear the output channel or terminal before each command. If null, use the value of commando.autoClear.
  • autoFocus: (Optional) If true, automatically focus the output channel or terminal before each command. If null, use the value of commando.autoFocus.
  • executeInTerminal: (Optional) If true, execute commands in terminal. Otherwise, execute commands on background and show the result in output channel. If null, use the value of commando.executeInTerminal.
  • windowName: (Optional) The name of the output channel or terminal. You can use placeholders. If null, use the value of commando.windowName.
  • shell: (Optional) The shell to use for running commands. If empty, the default shell is used. This setting is only available when commando.executeInTerminal is false. If null, use the value of commando.shell.
  • executeOnSavePattern: (Optional) The regex pattern of the file to execute the command on save. If null or empty string, the command is not executed on save.
  • group: (Optional) The group name of the command. If null or empty string, the command is not grouped.

Placeholders

You can use placeholders incmd and windowsName settings. The following placeholders are available:

  • ${commandName}: The command name. e.g. "Super Command"
  • ${workspaceFolder}: The workspace folder full path. e.g. "/home/ubuntu/hoge/.vscode/settings.json"
  • ${workspaceFolderBasename}: The workspace folder basename. e.g. "workspace"
  • ${homeDir}: Your home directory. e.g. "/home/ubuntu"
  • ${tmpDir}: The temporary directory. e.g. "/tmp/hogehoge/"
  • ${platform}: Your OS platform. e.g. "linux"
  • ${file}: The file full path. e.g. "/home/ubuntu/hoge/.vscode/settings.json"
  • ${fileBasename}: The file basename. e.g. "settings.json"
  • ${fileExtname}: The file extension. e.g. ".json"
  • ${fileBasenameWithoutExt}: The file basename without extension. e.g. "settings"
  • ${fileDirName}: The parent directory of the file. e.g. "/home/ubuntu/hoge/.vscode"
  • ${relativeFile}: The relative file path from {workspaceFolder}. e.g. ".vscode/settings.json"
  • ${lineNumber}: A line number of your selection. e.g. "5"
  • ${lineNumbers}: Line numbers of your selections. e.g. "5 5"
  • ${columnNumber}: A column number of your selection. e.g. "26"
  • ${columnNumbers}: Column numbers of your selection. e.g. "26 32"
  • ${selectedText}: Your selection text. e.g. "Hello"
  • ${selectedTexts}: Your selection texts. e.g. "Hello World"

Known Issues

  • Not yet. Please report if you find any issues.

Release Notes

0.0.1

Initial release of Commando

About

Commando: Simple and powerful command executor extension for VSCode.

License:MIT License


Languages

Language:TypeScript 100.0%