You can move the integrated terminal to the side, but afaik not out of the main window. You can create tasks for vscode by creating .vscode/tasks.json
, but assigning hotkeys to them is super unintuitive because you need to assign the hotkey the label of the task to trigger. The command for it is “workbench.action.tasks.runTask”.
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Run build",
"type": "shell",
"command": "mix compile",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "dedicated",
"focus": true
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning"
]
},
{
"label": "Run tests",
"type": "shell",
"command": "mix test",
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "shared",
"focus": true
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning",
"$mixTestFailure"
]
},
{
"label": "Run stale tests",
"type": "shell",
"command": "mix test --stale",
"group": "test",
"presentation": {
"reveal": "always",
"panel": "shared",
"focus": true
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning",
"$mixTestFailure"
]
},
{
"label": "Run tests (current file)",
"type": "shell",
"command": "mix test ${relativeFile}",
"group": "test",
"presentation": {
"reveal": "always",
"panel": "shared",
"focus": true
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning",
"$mixTestFailure"
]
},
{
"label": "Run tests (current test)",
"type": "shell",
"command": "mix test ${relativeFile}:${lineNumber}",
"group": "test",
"presentation": {
"reveal": "always",
"panel": "shared",
"focus": true
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning",
"$mixTestFailure"
]
},
{
"label": "Run coverage",
"type": "shell",
"command": "mix coveralls.html",
"group": "test",
"presentation": {
"reveal": "always",
"panel": "shared",
"focus": true
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning",
"$mixTestFailure"
]
},
{
"label": "Run coverage (current file)",
"type": "shell",
"command": "mix coveralls.html ${relativeFile}",
"group": "test",
"presentation": {
"reveal": "always",
"panel": "shared",
"focus": true
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning",
"$mixTestFailure"
]
},
{
"label": "Generate documentation",
"type": "shell",
"command": "mix docs",
"group": "none",
"presentation": {
"reveal": "always",
"panel": "dedicated",
"focus": true
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning"
]
},
{
"label": "Format project",
"type": "shell",
"command": "mix format",
"group": "none",
"presentation": {
"reveal": "never",
"panel": "dedicated"
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning"
]
},
{
"label": "Format file",
"type": "shell",
"command": "mix format ${relativeFile}",
"group": "none",
"presentation": {
"reveal": "never",
"panel": "dedicated"
},
"problemMatcher": [
"$mixCompileError",
"$mixCompileWarning"
]
}
]
}