dance/package.json

5086 lines
152 KiB
JSON
Generated
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"name": "dancehelix",
"description": "Fork of Dance with helix keybindings (Unfinished)",
"version": "0.5.13",
"license": "ISC",
"author": {
"name": "Leo",
"email": "le.lueker@gmail.com"
},
"repository": {
"type": "git",
"url": "https://github.com/Silverquark/dance.git"
},
"main": "./out/src/extension.js",
"browser": "./out/web/extension.js",
"engines": {
"vscode": "^1.63.0"
},
"scripts": {
"check": "eslint . && depcruise -v .dependency-cruiser.js src",
"format": "eslint . --fix",
"generate": "ts-node ./meta.ts",
"generate:watch": "ts-node ./meta.ts --watch",
"vscode:prepublish": "yarn run generate && yarn run compile && yarn run compile-web",
"compile": "tsc -p ./",
"compile:watch": "tsc -watch -p ./",
"compile-web": "webpack --mode production --devtool hidden-source-map --config ./webpack.web.config.js",
"compile-web:watch": "webpack --watch --config ./webpack.web.config.js",
"test": "yarn run compile && node ./out/test/run.js",
"package": "vsce package --allow-star-activation",
"publish": "vsce publish --allow-star-activation",
"publish:pre": "vsce publish --allow-star-activation --pre-release --no-git-tag-version --no-update-package-json 0.5.13001"
},
"devDependencies": {
"@types/glob": "^7.2.0",
"@types/mocha": "^9.1.1",
"@types/node": "^17.0.33",
"@types/vscode": "^1.63.0",
"@typescript-eslint/eslint-plugin": "^5.23.0",
"@typescript-eslint/parser": "^5.23.0",
"@vscode/test-electron": "^2.1.3",
"chokidar": "^3.5.3",
"dependency-cruiser": "^11.7.0",
"eslint": "^8.15.0",
"glob": "^8.0.3",
"mocha": "^10.0.0",
"source-map-support": "^0.5.21",
"ts-loader": "^9.3.1",
"ts-node": "^10.8.1",
"typescript": "^4.8.4",
"unexpected": "^13.0.0",
"vsce": "^2.7.0",
"webpack": "^5.72.1",
"webpack-cli": "^4.9.2",
"yaml": "^2.1.1"
},
"displayName": "Dance - Helix Alpha",
"publisher": "silverquark",
"categories": [
"Keymaps",
"Other"
],
"readme": "README.md",
"icon": "assets/dance.png",
"activationEvents": [
"*"
],
"extensionKind": [
"ui",
"workspace"
],
"dance.disableArbitraryCodeExecution": false,
"dance.disableArbitraryCommandExecution": false,
"capabilities": {
"untrustedWorkspaces": {
"supported": "limited",
"description": "Existing menu items and mode commands can only be updated if the current workspace is trusted in order to ensure untrusted workspaces do not execute malicious commands."
},
"virtualWorkspaces": true
},
"contributes": {
"configuration": {
"type": "object",
"title": "Dance",
"properties": {
"dance.defaultMode": {
"type": "string",
"scope": "language-overridable",
"default": "normal",
"description": "Controls which mode is set by default when an editor is opened.",
"pattern": "^[a-zA-Z]\\w*$",
"patternErrorMessage": ""
},
"dance.modes": {
"type": "object",
"scope": "language-overridable",
"additionalProperties": {
"type": "object",
"propertyNames": {
"pattern": "^[a-zA-Z]\\w*$",
"patternErrorMessage": ""
},
"properties": {
"inheritFrom": {
"type": [
"string",
"null"
],
"description": "Controls how default configuration options are obtained for this mode. Specify a string to inherit from the mode with the given name, and null to inherit from the VS Code configuration.",
"pattern": "^[a-zA-Z]\\w*$",
"patternErrorMessage": ""
},
"cursorStyle": {
"enum": [
"line",
"block",
"underline",
"line-thin",
"block-outline",
"underline-thin",
"inherit",
null
],
"description": "Controls the cursor style."
},
"lineHighlight": {
"type": [
"string",
"null"
],
"markdownDescription": "Controls the line highlighting applied to active lines. Can be an hex color, a [theme color](https://code.visualstudio.com/api/references/theme-color) or null.",
"deprecationMessage": "`lineHighlight` is deprecated. Use `dance.modes.*.backgroundColor` instead.",
"markdownDeprecationMessage": "`lineHighlight` is deprecated. Use `#dance.modes#.*.backgroundColor` instead.",
"pattern": "^(#[a-fA-F0-9]{3}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8}|\\$([a-zA-Z]+(\\.[a-zA-Z]+)+))$",
"patternErrorMessage": "Color should be an hex color or a '$' sign followed by a color identifier."
},
"lineNumbers": {
"enum": [
"off",
"on",
"relative",
"inherit",
null
],
"description": "Controls the display of line numbers.",
"enumDescriptions": [
"No line numbers.",
"Absolute line numbers.",
"Relative line numbers.",
"Inherit from `editor.lineNumbers`."
]
},
"onEnterMode": {
"type": "array",
"items": {
"type": [
"array",
"object",
"string"
],
"properties": {
"command": {
"type": "string"
},
"args": {}
},
"required": [
"command"
]
},
"description": "Controls what commands should be executed upon entering this mode."
},
"onLeaveMode": {
"type": "array",
"items": {
"type": [
"array",
"object",
"string"
],
"properties": {
"command": {
"type": "string"
},
"args": {}
},
"required": [
"command"
]
},
"description": "Controls what commands should be executed upon leaving this mode."
},
"selectionBehavior": {
"enum": [
"caret",
"character",
null
],
"default": "caret",
"description": "Controls how selections behave within VS Code.",
"markdownEnumDescriptions": [
"Selections are anchored to carets, which is the native VS Code behavior; that is, they are positioned *between* characters and can therefore be empty.",
"Selections are anchored to characters, like Kakoune; that is, they are positioned *on* characters, and therefore cannot be empty. Additionally, one-character selections will behave as if they were non-directional, like Kakoune."
]
},
"decorations": {
"type": [
"array",
"object",
"null"
],
"properties": {
"applyTo": {
"enum": [
"all",
"main",
"secondary"
],
"default": "all",
"description": "The selections to apply this style to.",
"enumDescriptions": [
"Apply to all selections.",
"Apply to main selection only.",
"Apply to all selections except main selection."
]
},
"backgroundColor": {
"type": "string",
"pattern": "^(#[a-fA-F0-9]{3}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8}|\\$([a-zA-Z]+(\\.[a-zA-Z]+)+))$",
"patternErrorMessage": "Color should be an hex color or a '$' sign followed by a color identifier."
},
"borderColor": {
"type": "string",
"pattern": "^(#[a-fA-F0-9]{3}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8}|\\$([a-zA-Z]+(\\.[a-zA-Z]+)+))$",
"patternErrorMessage": "Color should be an hex color or a '$' sign followed by a color identifier."
},
"borderStyle": {
"type": "string"
},
"borderWidth": {
"type": "string"
},
"borderRadius": {
"type": "string"
},
"isWholeLine": {
"type": "boolean",
"default": false
},
"after": {
"type": "object"
},
"before": {
"type": "object"
}
},
"description": "The decorations to apply to selections.",
"items": {
"type": "object",
"properties": {
"applyTo": {
"enum": [
"all",
"main",
"secondary"
],
"default": "all",
"description": "The selections to apply this style to.",
"enumDescriptions": [
"Apply to all selections.",
"Apply to main selection only.",
"Apply to all selections except main selection."
]
},
"backgroundColor": {
"type": "string",
"pattern": "^(#[a-fA-F0-9]{3}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8}|\\$([a-zA-Z]+(\\.[a-zA-Z]+)+))$",
"patternErrorMessage": "Color should be an hex color or a '$' sign followed by a color identifier."
},
"borderColor": {
"type": "string",
"pattern": "^(#[a-fA-F0-9]{3}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8}|\\$([a-zA-Z]+(\\.[a-zA-Z]+)+))$",
"patternErrorMessage": "Color should be an hex color or a '$' sign followed by a color identifier."
},
"borderStyle": {
"type": "string"
},
"borderWidth": {
"type": "string"
},
"borderRadius": {
"type": "string"
},
"isWholeLine": {
"type": "boolean",
"default": false
},
"after": {
"type": "object"
},
"before": {
"type": "object"
}
}
}
},
"hiddenSelectionsIndicatorsDecoration": {
"type": [
"object",
"null"
],
"properties": {
"applyTo": {
"enum": [
"all",
"main",
"secondary"
],
"default": "all",
"description": "The selections to apply this style to.",
"enumDescriptions": [
"Apply to all selections.",
"Apply to main selection only.",
"Apply to all selections except main selection."
]
},
"backgroundColor": {
"type": "string",
"pattern": "^(#[a-fA-F0-9]{3}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8}|\\$([a-zA-Z]+(\\.[a-zA-Z]+)+))$",
"patternErrorMessage": "Color should be an hex color or a '$' sign followed by a color identifier."
},
"borderColor": {
"type": "string",
"pattern": "^(#[a-fA-F0-9]{3}|#[a-fA-F0-9]{6}|#[a-fA-F0-9]{8}|\\$([a-zA-Z]+(\\.[a-zA-Z]+)+))$",
"patternErrorMessage": "Color should be an hex color or a '$' sign followed by a color identifier."
},
"borderStyle": {
"type": "string"
},
"borderWidth": {
"type": "string"
},
"borderRadius": {
"type": "string"
},
"isWholeLine": {
"type": "boolean",
"default": false
},
"after": {
"type": "object"
},
"before": {
"type": "object"
}
},
"description": "The decorations to apply to the hidden selections indicator, shown when some selections are below or above the lines currently shown in the editor. Specify an empty object {} to disable this indicator."
}
},
"additionalProperties": false
},
"default": {
"": {
"hiddenSelectionsIndicatorsDecoration": {
"after": {
"color": "$list.warningForeground"
},
"backgroundColor": "$inputValidation.warningBackground",
"borderColor": "$inputValidation.warningBorder",
"borderStyle": "solid",
"borderWidth": "1px",
"isWholeLine": true
}
},
"input": {
"cursorStyle": "underline-thin"
},
"insert": {
"onLeaveMode": [
[
".selections.save",
{
"register": " insert"
}
]
]
},
"visual": {
"lineNumbers": "relative",
"cursorStyle": "underline",
"selectionBehavior": "character",
"onEnterMode": [
[
".selections.restore",
{
"register": " ^",
"try": true
}
]
],
"onLeaveMode": [
[
".selections.save",
{
"register": " ^",
"style": {
"borderColor": "$editor.selectionBackground",
"borderStyle": "solid",
"borderWidth": "2px",
"borderRadius": "1px"
},
"until": [
[
"mode-did-change",
{
"include": "normal"
}
],
[
"mode-did-change",
{
"include": "visual"
}
],
[
"selections-did-change"
]
]
}
]
]
},
"normal": {
"lineNumbers": "relative",
"cursorStyle": "block",
"selectionBehavior": "character",
"onEnterMode": [
[
".selections.restore",
{
"register": " ^",
"try": true
}
]
],
"onLeaveMode": [
[
".selections.save",
{
"register": " ^",
"style": {
"borderColor": "$editor.selectionBackground",
"borderStyle": "solid",
"borderWidth": "2px",
"borderRadius": "1px"
},
"until": [
[
"mode-did-change",
{
"include": "normal"
}
],
[
"mode-did-change",
{
"include": "visual"
}
],
[
"selections-did-change"
]
]
}
]
]
}
},
"description": "Controls the different modes available in Dance."
},
"dance.menus": {
"type": "object",
"scope": "language-overridable",
"description": "Controls the different menus available in Dance.",
"additionalProperties": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"items": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text shown in the menu."
},
"command": {
"type": "string",
"description": "Command to execute on item selection."
},
"args": {
"type": "array",
"description": "Arguments to the command to execute."
}
},
"required": [
"command"
]
}
}
},
"additionalProperties": false
},
"default": {
"object": {
"title": "Select object...",
"items": {
"w": {
"command": "dance.seek.object",
"args": [
{
"input": "[\\p{L}_\\d]+(?<after>[^\\S\\n]+)"
}
],
"text": "word"
},
"W": {
"command": "dance.seek.object",
"args": [
{
"input": "[\\S]+(?<after>[^\\S\\n]+)"
}
],
"text": "WORD"
},
"s": {
"command": "dance.seek.object",
"args": [
{
"input": "(?#predefined=sentence)"
}
],
"text": "sentence"
},
"p": {
"command": "dance.seek.object",
"args": [
{
"input": "(?#predefined=paragraph)"
}
],
"text": "paragraph"
},
" ": {
"command": "dance.seek.object",
"args": [
{
"input": "(?<before>[\\s]+)[^\\S\\n]+(?<after>[\\s]+)"
}
],
"text": "whitespaces"
},
"i": {
"command": "dance.seek.object",
"args": [
{
"input": "(?#predefined=indent)"
}
],
"text": "indent"
},
"()": {
"command": "dance.seek.object",
"args": [
{
"input": "\\((?#inner)\\)"
}
],
"text": "parenthesis block"
},
"{}": {
"command": "dance.seek.object",
"args": [
{
"input": "\\{(?#inner)\\}"
}
],
"text": "braces block"
},
"[]": {
"command": "dance.seek.object",
"args": [
{
"input": "\\[(?#inner)\\]"
}
],
"text": "brackets block"
},
"<>": {
"command": "dance.seek.object",
"args": [
{
"input": "<(?#inner)>"
}
],
"text": "angle block"
},
"\"": {
"command": "dance.seek.object",
"args": [
{
"input": "(?#noescape)\"(?#inner)(?#noescape)\""
}
],
"text": "double quote string"
},
"'": {
"command": "dance.seek.object",
"args": [
{
"input": "(?#noescape)'(?#inner)(?#noescape)'"
}
],
"text": "single quote string"
},
"`": {
"command": "dance.seek.object",
"args": [
{
"input": "(?#noescape)`(?#inner)(?#noescape)`"
}
],
"text": "grave quote string"
},
"c": {
"command": "dance.seek.object",
"text": "custom object desc"
}
}
},
"match": {
"title": "Match...",
"items": {
"m": {
"text": "Goto matching bracket",
"command": "dance.seek.enclosing"
},
"s": {
"text": "Surround add",
"command": "dance.match.surround"
},
"r": {
"text": "Surround replace",
"command": "dance.match.surroundreplace"
},
"d": {
"text": "Surround delete",
"command": "dance.match.surrounddelete"
},
"a": {
"text": "Select around object",
"command": "dance.seek.askObject"
},
"i": {
"text": "Select inside object",
"command": "dance.seek.askObject.inner"
}
}
},
"space": {
"title": "Space",
"items": {
"f": {
"text": "Open file picker",
"command": "workbench.action.quickOpen"
},
"b": {
"text": "Open buffer picker",
"command": "workbench.action.showAllEditors"
},
"s": {
"text": "Open symbol picker",
"command": "workbench.action.gotoSymbol"
},
"a": {
"text": "Perform code action",
"command": "editor.action.quickFix"
},
"d": {
"text": "Start debug",
"command": "workbench.action.debug.start"
},
"w": {
"text": "Window",
"command": "dance.window.windowMenu"
},
"y": {
"text": "Join and yank selections to clipboard",
"command": "dance.selections.saveText",
"args": [
{
"register": ""
}
]
},
"p": {
"text": "Paste clipboard after selections",
"command": "dance.edit.insert",
"args": [
{
"handleNewLine": true,
"where": "end"
}
]
},
"P": {
"text": "Paste clipboard before selections",
"command": "dance.edit.insert",
"args": [
{
"handleNewLine": true,
"where": "start"
}
]
},
"/": {
"text": "Global Search in workspace folder",
"command": "workbench.action.findInFiles"
},
"k": {
"text": "Show docs for item under cursor (hover)",
"command": "editor.action.showHover"
},
"r": {
"text": "Rename symbol",
"command": "editor.action.rename"
},
"?": {
"text": "Open command palette",
"command": "workbench.action.showCommands"
}
}
},
"goto": {
"title": "Go...",
"items": {
"g": {
"text": "to first line",
"command": "dance.select.lineStart",
"args": [
{
"count": 1
}
]
},
"e": {
"text": "to last char of last line",
"command": "dance.select.lineEnd",
"args": [
{
"count": 2147483647
}
]
},
"f": {
"text": "to file whose name is selected",
"command": "dance.selections.open"
},
"h": {
"text": "to line start",
"command": "dance.select.lineStart"
},
"l": {
"text": "to line end",
"command": "dance.select.lineEnd"
},
"s": {
"text": "to non-blank line start",
"command": "dance.select.lineStart",
"args": [
{
"skipBlank": true
}
]
},
"t": {
"text": "to first displayed line",
"command": "dance.select.firstVisibleLine"
},
"c": {
"text": "to middle displayed line",
"command": "dance.select.middleVisibleLine"
},
"b": {
"text": "to last displayed line",
"command": "dance.select.lastVisibleLine"
},
"d": {
"text": "to definition",
"command": "editor.action.revealDefinition"
},
"y": {
"text": "to type definition",
"command": "editor.action.goToTypeDefinition"
},
"r": {
"text": "to references",
"command": "editor.action.goToReferences"
},
"i": {
"text": "to implementation",
"command": "editor.action.goToImplementation"
},
"a": {
"text": "to last accessed buffer",
"command": "workbench.action.openPreviousRecentlyUsedEditorInGroup"
},
"n": {
"text": "to next buffer",
"command": "workbench.action.nextEditor"
},
"p": {
"text": "to previous buffer",
"command": "workbench.action.previousEditor"
},
".": {
"text": "to last buffer modification position",
"command": "dance.selections.restore",
"args": [
{
"register": " insert"
}
]
}
}
},
"window": {
"title": "Window",
"items": {
"w": {
"text": "Goto next window",
"command": "workbench.action.nextEditor"
},
"s": {
"text": "Horizontal bottom split",
"command": "workbench.action.splitEditorDown"
},
"v": {
"text": "Vertical right split",
"command": "workbench.action.splitEditor"
},
"t": {
"text": "Transpose splits",
"command": "workbench.action.toggleEditorGroupLayout"
},
"q": {
"text": "Close window",
"command": "workbench.action.closeActiveEditor"
},
"o": {
"text": "Close all other windows (Current window only)",
"command": "workbench.action.closeOtherEditors"
},
"h": {
"text": "Jump to the split on the left",
"command": "workbench.action.focusLeftGroup"
},
"j": {
"text": "Jump to the split below",
"command": "workbench.action.focusBelowGroup"
},
"k": {
"text": "Jump to the split above",
"command": "workbench.action.focusAboveGroup"
},
"l": {
"text": "Jump to the split to the right",
"command": "workbench.action.focusRightGroup"
},
"H": {
"text": "Swap with the split to the left",
"command": "workbench.action.moveActiveEditorGroupLeft"
},
"J": {
"text": "Swap with the split below",
"command": "workbench.action.moveActiveEditorGroupDown"
},
"K": {
"text": "Swap with the split above",
"command": "workbench.action.moveActiveEditorGroupUp"
},
"L": {
"text": "Swap with the split to the right",
"command": "workbench.action.moveActiveEditorGroupRight"
}
}
},
"view": {
"title": "View",
"items": {
"zc": {
"text": "center cursor vertically",
"command": "dance.view.line",
"args": [
{
"at": "center"
}
]
},
"t": {
"text": "cursor on top",
"command": "dance.view.line",
"args": [
{
"at": "top"
}
]
},
"b": {
"text": "cursor on bottom",
"command": "dance.view.line",
"args": [
{
"at": "bottom"
}
]
},
"j": {
"text": "scroll down",
"command": "editorScroll",
"args": [
{
"to": "down",
"by": "line",
"revealCursor": true
}
]
},
"k": {
"text": "scroll up",
"command": "editorScroll",
"args": [
{
"to": "up",
"by": "line",
"revealCursor": true
}
]
}
}
}
}
},
"dance.enabled": {
"type": "boolean",
"default": true,
"description": "Controls whether the Dance keybindings are enabled.",
"deprecationMessage": "dance.enabled is deprecated; disable the Dance extension instead."
},
"dance.normalMode.lineHighlight": {
"type": [
"string",
"null"
],
"default": "editor.hoverHighlightBackground",
"markdownDescription": "Controls the line highlighting applied to active lines in normal mode. Can be an hex color, a [theme color](https://code.visualstudio.com/api/references/theme-color) or null.",
"markdownDeprecationMessage": "Built-in modes are deprecated. Use `#dance.modes#` instead."
},
"dance.insertMode.lineHighlight": {
"type": [
"string",
"null"
],
"default": null,
"markdownDescription": "Controls the line highlighting applied to active lines in insert mode. Can be an hex color, a [theme color](https://code.visualstudio.com/api/references/theme-color) or null.",
"markdownDeprecationMessage": "Built-in modes are deprecated. Use `#dance.modes#` instead."
},
"dance.normalMode.lineNumbers": {
"enum": [
"off",
"on",
"relative",
"inherit"
],
"default": "relative",
"description": "Controls the display of line numbers in normal mode.",
"enumDescriptions": [
"No line numbers.",
"Absolute line numbers.",
"Relative line numbers.",
"Inherit from `editor.lineNumbers`."
],
"markdownDeprecationMessage": "Built-in modes are deprecated. Use `#dance.modes#` instead."
},
"dance.insertMode.lineNumbers": {
"enum": [
"off",
"on",
"relative",
"inherit"
],
"default": "inherit",
"description": "Controls the display of line numbers in insert mode.",
"enumDescriptions": [
"No line numbers.",
"Absolute line numbers.",
"Relative line numbers.",
"Inherit from `editor.lineNumbers`."
],
"markdownDeprecationMessage": "Built-in modes are deprecated. Use `#dance.modes#` instead."
},
"dance.normalMode.cursorStyle": {
"enum": [
"line",
"block",
"underline",
"line-thin",
"block-outline",
"underline-thin",
"inherit"
],
"default": "inherit",
"description": "Controls the cursor style in normal mode.",
"markdownDeprecationMessage": "Built-in modes are deprecated. Use `#dance.modes#` instead."
},
"dance.insertMode.cursorStyle": {
"enum": [
"line",
"block",
"underline",
"line-thin",
"block-outline",
"underline-thin",
"inherit"
],
"default": "inherit",
"description": "Controls the cursor style in insert mode.",
"markdownDeprecationMessage": "Built-in modes are deprecated. Use `#dance.modes#` instead."
},
"dance.insertMode.selectionStyle": {
"type": "object",
"default": {
"borderColor": "$editor.selectionBackground",
"borderStyle": "solid",
"borderWidth": "2px",
"borderRadius": "1px"
},
"description": "The style to apply to selections in insert mode.",
"properties": {
"backgroundColor": {
"type": "string"
},
"borderColor": {
"type": "string"
},
"borderStyle": {
"type": "string"
},
"borderWidth": {
"type": "string"
},
"borderRadius": {
"type": "string"
}
},
"markdownDeprecationMessage": "Built-in modes are deprecated. Use `#dance.modes#` instead."
},
"dance.selectionBehavior": {
"enum": [
"caret",
"character"
],
"default": "caret",
"description": "Controls how selections behave within VS Code.",
"markdownEnumDescriptions": [
"Selections are anchored to carets, which is the native VS Code behavior; that is, they are positioned *between* characters and can therefore be empty.",
"Selections are anchored to characters, like Kakoune; that is, they are positioned *on* characters, and therefore cannot be empty. Additionally, one-character selections will behave as if they were non-directional, like Kakoune."
],
"markdownDeprecationMessage": "Built-in modes are deprecated. Use `#dance.modes#` instead."
}
}
},
"viewsContainers": {
"activitybar": [
{
"id": "dance",
"title": "Dance",
"icon": "assets/dance-white.svg"
}
]
},
"views": {
"dance": [
{
"id": "registers",
"name": "Registers"
}
]
},
"commands": [
{
"command": "dance.dev.copyLastErrorMessage",
"title": "Copies the last encountered error message",
"category": "Dance"
},
{
"command": "dance.dev.setSelectionBehavior",
"title": "Set the selection behavior of the specified mode",
"category": "Dance"
},
{
"command": "dance.edit.align",
"title": "Align selections",
"category": "Dance"
},
{
"command": "dance.edit.case.swap",
"title": "Swap case",
"category": "Dance"
},
{
"command": "dance.edit.case.toLower",
"title": "Transform to lower case",
"category": "Dance"
},
{
"command": "dance.edit.case.toUpper",
"title": "Transform to upper case",
"category": "Dance"
},
{
"command": "dance.edit.copyIndentation",
"title": "Copy indentation",
"category": "Dance"
},
{
"command": "dance.edit.deindent",
"title": "Deindent selected lines",
"category": "Dance"
},
{
"command": "dance.edit.deindent.withIncomplete",
"title": "Deindent selected lines (including incomplete indent)",
"category": "Dance"
},
{
"command": "dance.edit.delete",
"title": "Delete",
"category": "Dance"
},
{
"command": "dance.edit.delete-insert",
"title": "Delete and switch to Insert",
"category": "Dance"
},
{
"command": "dance.edit.indent",
"title": "Indent selected lines",
"category": "Dance"
},
{
"command": "dance.edit.indent.withEmpty",
"title": "Indent selected lines (including empty lines)",
"category": "Dance"
},
{
"command": "dance.edit.insert",
"title": "Insert contents of register",
"category": "Dance"
},
{
"command": "dance.edit.join",
"title": "Join lines",
"category": "Dance"
},
{
"command": "dance.edit.join.select",
"title": "Join lines and select inserted separators",
"category": "Dance"
},
{
"command": "dance.edit.newLine.above",
"title": "Insert new line above each selection",
"category": "Dance"
},
{
"command": "dance.edit.newLine.above.insert",
"title": "Insert new line above and switch to insert",
"category": "Dance"
},
{
"command": "dance.edit.newLine.below",
"title": "Insert new line below each selection",
"category": "Dance"
},
{
"command": "dance.edit.newLine.below.insert",
"title": "Insert new line below and switch to insert",
"category": "Dance"
},
{
"command": "dance.edit.paste.after",
"title": "Paste after",
"category": "Dance"
},
{
"command": "dance.edit.paste.after.select",
"title": "Paste after and select",
"category": "Dance"
},
{
"command": "dance.edit.paste.before",
"title": "Paste before",
"category": "Dance"
},
{
"command": "dance.edit.paste.before.select",
"title": "Paste before and select",
"category": "Dance"
},
{
"command": "dance.edit.pasteAll.after",
"title": "Paste all after",
"category": "Dance"
},
{
"command": "dance.edit.pasteAll.after.select",
"title": "Paste all after and select",
"category": "Dance"
},
{
"command": "dance.edit.pasteAll.before",
"title": "Paste all before",
"category": "Dance"
},
{
"command": "dance.edit.pasteAll.before.select",
"title": "Paste all before and select",
"category": "Dance"
},
{
"command": "dance.edit.replaceCharacters",
"title": "Replace characters",
"category": "Dance"
},
{
"command": "dance.edit.selectRegister-insert",
"title": "Pick register and replace",
"category": "Dance"
},
{
"command": "dance.edit.yank-delete",
"title": "Copy and delete",
"category": "Dance"
},
{
"command": "dance.edit.yank-delete-insert",
"title": "Copy, delete and switch to Insert",
"category": "Dance"
},
{
"command": "dance.edit.yank-replace",
"title": "Copy and replace",
"category": "Dance"
},
{
"command": "dance.history.recording.play",
"title": "Replay recording",
"category": "Dance"
},
{
"command": "dance.history.recording.start",
"title": "Start recording",
"category": "Dance"
},
{
"command": "dance.history.recording.stop",
"title": "Stop recording",
"category": "Dance"
},
{
"command": "dance.history.redo",
"title": "Redo",
"category": "Dance"
},
{
"command": "dance.history.redo.selections",
"title": "Redo a change of selections",
"category": "Dance"
},
{
"command": "dance.history.repeat",
"title": "Repeat last change",
"category": "Dance"
},
{
"command": "dance.history.repeat.edit",
"title": "Repeat last edit without a command",
"category": "Dance"
},
{
"command": "dance.history.repeat.seek",
"title": "Repeat last seek",
"category": "Dance"
},
{
"command": "dance.history.repeat.selection",
"title": "Repeat last selection change",
"category": "Dance"
},
{
"command": "dance.history.undo",
"title": "Undo",
"category": "Dance"
},
{
"command": "dance.history.undo.selections",
"title": "Undo a change of selections",
"category": "Dance"
},
{
"command": "dance.keybindings.setup",
"title": "Set up Dance keybindings",
"category": "Dance"
},
{
"command": "dance.match.surround",
"title": "Add stuff surround",
"category": "Dance"
},
{
"command": "dance.match.surrounddelete",
"title": "Delete stuff surround",
"category": "Dance"
},
{
"command": "dance.match.surroundreplace",
"title": "Replace stuff surround",
"category": "Dance"
},
{
"command": "dance.cancel",
"title": "Cancel Dance operation",
"category": "Dance"
},
{
"command": "dance.changeInput",
"title": "Change current input",
"category": "Dance"
},
{
"command": "dance.ifEmpty",
"title": "Executes one of the specified commands depending on whether the current\nselections are empty",
"category": "Dance"
},
{
"command": "dance.ignore",
"title": "Ignore key",
"category": "Dance"
},
{
"command": "dance.openMenu",
"title": "Open menu",
"category": "Dance"
},
{
"command": "dance.run",
"title": "Run code",
"category": "Dance"
},
{
"command": "dance.selectRegister",
"title": "Select register for next command",
"category": "Dance"
},
{
"command": "dance.updateCount",
"title": "Update Dance count",
"category": "Dance"
},
{
"command": "dance.updateRegister",
"title": "Update the contents of a register",
"category": "Dance"
},
{
"command": "dance.modes.insert.after",
"title": "Insert after",
"category": "Dance"
},
{
"command": "dance.modes.insert.before",
"title": "Insert before",
"category": "Dance"
},
{
"command": "dance.modes.insert.lineEnd",
"title": "Insert at line end",
"category": "Dance"
},
{
"command": "dance.modes.insert.lineStart",
"title": "Insert at line start",
"category": "Dance"
},
{
"command": "dance.modes.set",
"title": "Set Dance mode",
"category": "Dance"
},
{
"command": "dance.modes.set.insert",
"title": "Set mode to Insert",
"category": "Dance"
},
{
"command": "dance.modes.set.normal",
"title": "Set mode to Normal",
"category": "Dance"
},
{
"command": "dance.modes.set.temporarily",
"title": "Set Dance mode temporarily",
"category": "Dance"
},
{
"command": "dance.modes.set.temporarily.insert",
"title": "Temporary Insert mode",
"category": "Dance"
},
{
"command": "dance.modes.set.temporarily.normal",
"title": "Temporary Normal mode",
"category": "Dance"
},
{
"command": "dance.modes.set.visual",
"title": "Set mode to Visual",
"category": "Dance"
},
{
"command": "dance.search",
"title": "Search",
"category": "Dance"
},
{
"command": "dance.search.backward",
"title": "Search backward",
"category": "Dance"
},
{
"command": "dance.search.backward.extend",
"title": "Search backward (extend)",
"category": "Dance"
},
{
"command": "dance.search.extend",
"title": "Search (extend)",
"category": "Dance"
},
{
"command": "dance.search.next",
"title": "Select next match",
"category": "Dance"
},
{
"command": "dance.search.next.add",
"title": "Add next match",
"category": "Dance"
},
{
"command": "dance.search.previous",
"title": "Select previous match",
"category": "Dance"
},
{
"command": "dance.search.previous.add",
"title": "Add previous match",
"category": "Dance"
},
{
"command": "dance.search.selection",
"title": "Search current selection",
"category": "Dance"
},
{
"command": "dance.search.selection.smart",
"title": "Search current selection (smart)",
"category": "Dance"
},
{
"command": "dance.seek",
"title": "Select to character (excluded)",
"category": "Dance"
},
{
"command": "dance.seek.askObject",
"title": "Select whole object",
"category": "Dance"
},
{
"command": "dance.seek.askObject.end",
"title": "Select to whole object end",
"category": "Dance"
},
{
"command": "dance.seek.askObject.end.extend",
"title": "Extend to whole object end",
"category": "Dance"
},
{
"command": "dance.seek.askObject.inner",
"title": "Select inner object",
"category": "Dance"
},
{
"command": "dance.seek.askObject.inner.end",
"title": "Select to inner object end",
"category": "Dance"
},
{
"command": "dance.seek.askObject.inner.end.extend",
"title": "Extend to inner object end",
"category": "Dance"
},
{
"command": "dance.seek.askObject.inner.start",
"title": "Select to inner object start",
"category": "Dance"
},
{
"command": "dance.seek.askObject.inner.start.extend",
"title": "Extend to inner object start",
"category": "Dance"
},
{
"command": "dance.seek.askObject.start",
"title": "Select to whole object start",
"category": "Dance"
},
{
"command": "dance.seek.askObject.start.extend",
"title": "Extend to whole object start",
"category": "Dance"
},
{
"command": "dance.seek.backward",
"title": "Select to character (excluded, backward)",
"category": "Dance"
},
{
"command": "dance.seek.enclosing",
"title": "Select to next enclosing character",
"category": "Dance"
},
{
"command": "dance.seek.enclosing.backward",
"title": "Select to previous enclosing character",
"category": "Dance"
},
{
"command": "dance.seek.enclosing.extend",
"title": "Extend to next enclosing character",
"category": "Dance"
},
{
"command": "dance.seek.enclosing.extend.backward",
"title": "Extend to previous enclosing character",
"category": "Dance"
},
{
"command": "dance.seek.extend",
"title": "Extend to character (excluded)",
"category": "Dance"
},
{
"command": "dance.seek.extend.backward",
"title": "Extend to character (excluded, backward)",
"category": "Dance"
},
{
"command": "dance.seek.included",
"title": "Select to character (included)",
"category": "Dance"
},
{
"command": "dance.seek.included.backward",
"title": "Select to character (included, backward)",
"category": "Dance"
},
{
"command": "dance.seek.included.extend",
"title": "Extend to character (included)",
"category": "Dance"
},
{
"command": "dance.seek.included.extend.backward",
"title": "Extend to character (included, backward)",
"category": "Dance"
},
{
"command": "dance.seek.leap",
"title": "Leap forward",
"category": "Dance"
},
{
"command": "dance.seek.leap.backward",
"title": "Leap backward",
"category": "Dance"
},
{
"command": "dance.seek.object",
"title": "Select object",
"category": "Dance"
},
{
"command": "dance.seek.word",
"title": "Select to next word start",
"category": "Dance"
},
{
"command": "dance.seek.word.backward",
"title": "Select to previous word start",
"category": "Dance"
},
{
"command": "dance.seek.word.backward.extend",
"title": "Extend to previous word start",
"category": "Dance"
},
{
"command": "dance.seek.word.extend",
"title": "Extend to next word start",
"category": "Dance"
},
{
"command": "dance.seek.word.ws",
"title": "Select to next WORD start",
"category": "Dance"
},
{
"command": "dance.seek.word.ws.backward",
"title": "Select to previous WORD start",
"category": "Dance"
},
{
"command": "dance.seek.word.ws.backward.extend",
"title": "Extend to previous WORD start",
"category": "Dance"
},
{
"command": "dance.seek.word.ws.extend",
"title": "Extend to next WORD start",
"category": "Dance"
},
{
"command": "dance.seek.wordEnd",
"title": "Select to next word end",
"category": "Dance"
},
{
"command": "dance.seek.wordEnd.extend",
"title": "Extend to next word end",
"category": "Dance"
},
{
"command": "dance.seek.wordEnd.ws",
"title": "Select to next WORD end",
"category": "Dance"
},
{
"command": "dance.seek.wordEnd.ws.extend",
"title": "Extend to next WORD end",
"category": "Dance"
},
{
"command": "dance.select.buffer",
"title": "Select whole buffer",
"category": "Dance"
},
{
"command": "dance.select.documentEnd.extend",
"title": "Extend to last character",
"category": "Dance"
},
{
"command": "dance.select.documentEnd.jump",
"title": "Jump to last character",
"category": "Dance"
},
{
"command": "dance.select.down.extend",
"title": "Extend down",
"category": "Dance"
},
{
"command": "dance.select.down.jump",
"title": "Jump down",
"category": "Dance"
},
{
"command": "dance.select.firstLine.extend",
"title": "Extend to first line",
"category": "Dance"
},
{
"command": "dance.select.firstLine.jump",
"title": "Jump to first line",
"category": "Dance"
},
{
"command": "dance.select.firstVisibleLine",
"title": "Select to first visible line",
"category": "Dance"
},
{
"command": "dance.select.firstVisibleLine.extend",
"title": "Extend to first visible line",
"category": "Dance"
},
{
"command": "dance.select.firstVisibleLine.jump",
"title": "Jump to first visible line",
"category": "Dance"
},
{
"command": "dance.select.horizontally",
"title": "Select horizontally",
"category": "Dance"
},
{
"command": "dance.select.lastLine",
"title": "Select to last line",
"category": "Dance"
},
{
"command": "dance.select.lastLine.extend",
"title": "Extend to last line",
"category": "Dance"
},
{
"command": "dance.select.lastLine.jump",
"title": "Jump to last line",
"category": "Dance"
},
{
"command": "dance.select.lastVisibleLine",
"title": "Select to last visible line",
"category": "Dance"
},
{
"command": "dance.select.lastVisibleLine.extend",
"title": "Extend to last visible line",
"category": "Dance"
},
{
"command": "dance.select.lastVisibleLine.jump",
"title": "Jump to last visible line",
"category": "Dance"
},
{
"command": "dance.select.left.extend",
"title": "Extend left",
"category": "Dance"
},
{
"command": "dance.select.left.jump",
"title": "Jump left",
"category": "Dance"
},
{
"command": "dance.select.line.above",
"title": "Select line above",
"category": "Dance"
},
{
"command": "dance.select.line.above.extend",
"title": "Extend to line above",
"category": "Dance"
},
{
"command": "dance.select.line.below",
"title": "Select line below",
"category": "Dance"
},
{
"command": "dance.select.line.below.extend",
"title": "Extend to line below",
"category": "Dance"
},
{
"command": "dance.select.lineEnd",
"title": "Select to line end. TODO: helix",
"category": "Dance"
},
{
"command": "dance.select.lineEnd.extend",
"title": "Extend to line end",
"category": "Dance"
},
{
"command": "dance.select.lineStart",
"title": "Select to line start",
"category": "Dance"
},
{
"command": "dance.select.lineStart.extend",
"title": "Extend to line start",
"category": "Dance"
},
{
"command": "dance.select.lineStart.jump",
"title": "Jump to line start",
"category": "Dance"
},
{
"command": "dance.select.lineStart.skipBlank.extend",
"title": "Extend to line start (skip blank)",
"category": "Dance"
},
{
"command": "dance.select.lineStart.skipBlank.jump",
"title": "Jump to line start (skip blank)",
"category": "Dance"
},
{
"command": "dance.select.middleVisibleLine",
"title": "Select to middle visible line",
"category": "Dance"
},
{
"command": "dance.select.middleVisibleLine.extend",
"title": "Extend to middle visible line",
"category": "Dance"
},
{
"command": "dance.select.middleVisibleLine.jump",
"title": "Jump to middle visible line",
"category": "Dance"
},
{
"command": "dance.select.right.extend",
"title": "Extend right",
"category": "Dance"
},
{
"command": "dance.select.right.jump",
"title": "Jump right",
"category": "Dance"
},
{
"command": "dance.select.to",
"title": "Select to",
"category": "Dance"
},
{
"command": "dance.select.to.extend",
"title": "Extend to",
"category": "Dance"
},
{
"command": "dance.select.to.jump",
"title": "Go to",
"category": "Dance"
},
{
"command": "dance.select.up.extend",
"title": "Extend up",
"category": "Dance"
},
{
"command": "dance.select.up.jump",
"title": "Jump up",
"category": "Dance"
},
{
"command": "dance.select.vertically",
"title": "Select vertically",
"category": "Dance"
},
{
"command": "dance.selections.changeDirection",
"title": "Change direction of selections",
"category": "Dance"
},
{
"command": "dance.selections.changeOrder",
"title": "Reverse selections",
"category": "Dance"
},
{
"command": "dance.selections.clear.main",
"title": "Clear main selections",
"category": "Dance"
},
{
"command": "dance.selections.clear.secondary",
"title": "Clear secondary selections",
"category": "Dance"
},
{
"command": "dance.selections.copy",
"title": "Copy selections below",
"category": "Dance"
},
{
"command": "dance.selections.copy.above",
"title": "Copy selections above",
"category": "Dance"
},
{
"command": "dance.selections.expandToLines",
"title": "Expand to lines",
"category": "Dance"
},
{
"command": "dance.selections.faceBackward",
"title": "Backward selections",
"category": "Dance"
},
{
"command": "dance.selections.faceForward",
"title": "Forward selections",
"category": "Dance"
},
{
"command": "dance.selections.filter",
"title": "Filter selections",
"category": "Dance"
},
{
"command": "dance.selections.filter.regexp",
"title": "Keep matching selections",
"category": "Dance"
},
{
"command": "dance.selections.filter.regexp.inverse",
"title": "Clear matching selections",
"category": "Dance"
},
{
"command": "dance.selections.hideIndices",
"title": "Hide selection indices",
"category": "Dance"
},
{
"command": "dance.selections.merge",
"title": "Merge contiguous selections",
"category": "Dance"
},
{
"command": "dance.selections.open",
"title": "Open selected file",
"category": "Dance"
},
{
"command": "dance.selections.orderAscending",
"title": "Order selections ascending",
"category": "Dance"
},
{
"command": "dance.selections.orderDescending",
"title": "Order selections descending",
"category": "Dance"
},
{
"command": "dance.selections.pipe",
"title": "Pipe selections",
"category": "Dance"
},
{
"command": "dance.selections.pipe.append",
"title": "Pipe and append",
"category": "Dance"
},
{
"command": "dance.selections.pipe.prepend",
"title": "Pipe and prepend",
"category": "Dance"
},
{
"command": "dance.selections.pipe.replace",
"title": "Pipe and replace",
"category": "Dance"
},
{
"command": "dance.selections.reduce",
"title": "Reduce selections to their cursor",
"category": "Dance"
},
{
"command": "dance.selections.reduce.edges",
"title": "Reduce selections to their ends",
"category": "Dance"
},
{
"command": "dance.selections.restore",
"title": "Restore selections. TODO: Needed?",
"category": "Dance"
},
{
"command": "dance.selections.restore.withCurrent",
"title": "Combine register selections with current ones",
"category": "Dance"
},
{
"command": "dance.selections.save",
"title": "Save selections",
"category": "Dance"
},
{
"command": "dance.selections.saveText",
"title": "Copy selections text",
"category": "Dance"
},
{
"command": "dance.selections.select",
"title": "Select within selections",
"category": "Dance"
},
{
"command": "dance.selections.select.orLeap",
"title": "Leap or select",
"category": "Dance"
},
{
"command": "dance.selections.showIndices",
"title": "Show selection indices",
"category": "Dance"
},
{
"command": "dance.selections.sort",
"title": "Sort selections",
"category": "Dance"
},
{
"command": "dance.selections.split",
"title": "Split selections",
"category": "Dance"
},
{
"command": "dance.selections.splitLines",
"title": "Split selections at line boundaries",
"category": "Dance"
},
{
"command": "dance.selections.splitLines.orLeap.backward",
"title": "Leap or select backward",
"category": "Dance"
},
{
"command": "dance.selections.toggleIndices",
"title": "Toggle selection indices",
"category": "Dance"
},
{
"command": "dance.selections.trimLines",
"title": "Trim lines",
"category": "Dance"
},
{
"command": "dance.selections.trimWhitespace",
"title": "Trim whitespace",
"category": "Dance"
},
{
"command": "dance.selections.rotate.both",
"title": "Rotate selections clockwise",
"category": "Dance"
},
{
"command": "dance.selections.rotate.both.reverse",
"title": "Rotate selections counter-clockwise",
"category": "Dance"
},
{
"command": "dance.selections.rotate.contents",
"title": "Rotate selections clockwise (contents only)",
"category": "Dance"
},
{
"command": "dance.selections.rotate.contents.reverse",
"title": "Rotate selections counter-clockwise (contents only)",
"category": "Dance"
},
{
"command": "dance.selections.rotate.selections",
"title": "Rotate selections clockwise (selections only)",
"category": "Dance"
},
{
"command": "dance.selections.rotate.selections.reverse",
"title": "Rotate selections counter-clockwise (selections only)",
"category": "Dance"
},
{
"command": "dance.view.line",
"title": "Reveals a position based on the main cursor",
"category": "Dance"
},
{
"command": "dance.window.windowMenu",
"title": "Show window menu",
"category": "Dance"
}
],
"menus": {
"commandPalette": [
{
"command": "dance.dev.copyLastErrorMessage",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.dev.setSelectionBehavior",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.align",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.case.swap",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.case.toLower",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.case.toUpper",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.copyIndentation",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.deindent",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.deindent.withIncomplete",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.delete",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.delete-insert",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.indent",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.indent.withEmpty",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.insert",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.join",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.join.select",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.newLine.above",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.newLine.above.insert",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.newLine.below",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.newLine.below.insert",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.paste.after",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.paste.after.select",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.paste.before",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.paste.before.select",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.pasteAll.after",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.pasteAll.after.select",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.pasteAll.before",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.pasteAll.before.select",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.replaceCharacters",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.selectRegister-insert",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.yank-delete",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.yank-delete-insert",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.edit.yank-replace",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.recording.play",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.recording.start",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.recording.stop",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.redo",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.redo.selections",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.repeat",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.repeat.edit",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.repeat.seek",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.repeat.selection",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.undo",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.history.undo.selections",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.keybindings.setup",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.match.surround",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.match.surrounddelete",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.match.surroundreplace",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.cancel",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.changeInput",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.ifEmpty",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.openMenu",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.run",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selectRegister",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.updateCount",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.updateRegister",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.insert.after",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.insert.before",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.insert.lineEnd",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.insert.lineStart",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.set",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.set.insert",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.set.normal",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.set.temporarily",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.set.temporarily.insert",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.set.temporarily.normal",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.modes.set.visual",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.backward.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.next",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.next.add",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.previous",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.previous.add",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.selection",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.search.selection.smart",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.end",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.end.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.inner",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.inner.end",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.inner.end.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.inner.start",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.inner.start.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.start",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.askObject.start.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.enclosing",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.enclosing.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.enclosing.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.enclosing.extend.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.extend.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.included",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.included.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.included.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.included.extend.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.leap",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.leap.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.object",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.word",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.word.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.word.backward.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.word.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.word.ws",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.word.ws.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.word.ws.backward.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.word.ws.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.wordEnd",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.wordEnd.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.wordEnd.ws",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.seek.wordEnd.ws.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.buffer",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.documentEnd.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.documentEnd.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.down.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.down.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.firstLine.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.firstLine.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.firstVisibleLine",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.firstVisibleLine.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.firstVisibleLine.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.horizontally",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lastLine",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lastLine.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lastLine.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lastVisibleLine",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lastVisibleLine.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lastVisibleLine.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.left.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.left.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.line.above",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.line.above.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.line.below",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.line.below.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lineEnd",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lineEnd.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lineStart",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lineStart.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lineStart.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lineStart.skipBlank.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.lineStart.skipBlank.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.middleVisibleLine",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.middleVisibleLine.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.middleVisibleLine.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.right.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.right.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.to",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.to.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.to.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.up.extend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.up.jump",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.select.vertically",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.changeDirection",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.changeOrder",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.clear.main",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.clear.secondary",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.copy",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.copy.above",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.expandToLines",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.faceBackward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.faceForward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.filter",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.filter.regexp",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.filter.regexp.inverse",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.hideIndices",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.merge",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.open",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.orderAscending",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.orderDescending",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.pipe",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.pipe.append",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.pipe.prepend",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.pipe.replace",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.reduce",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.reduce.edges",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.restore",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.restore.withCurrent",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.save",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.saveText",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.select",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.select.orLeap",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.showIndices",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.sort",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.split",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.splitLines",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.splitLines.orLeap.backward",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.toggleIndices",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.trimLines",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.trimWhitespace",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.rotate.both",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.rotate.both.reverse",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.rotate.contents",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.rotate.contents.reverse",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.rotate.selections",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.selections.rotate.selections.reverse",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.view.line",
"when": "dance.mode == 'normal'"
},
{
"command": "dance.window.windowMenu",
"when": "dance.mode == 'normal'"
}
]
},
"keybindings": [
{
"key": "Shift+7",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Align selections",
"command": "dance.edit.align"
},
{
"key": "Shift+7",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Align selections",
"command": "dance.edit.align"
},
{
"key": "Shift+`",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Swap case",
"command": "dance.edit.case.swap"
},
{
"key": "Shift+`",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Swap case",
"command": "dance.edit.case.swap"
},
{
"key": "`",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Transform to lower case",
"command": "dance.edit.case.toLower"
},
{
"key": "`",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Transform to lower case",
"command": "dance.edit.case.toLower"
},
{
"key": "Alt+`",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Transform to upper case",
"command": "dance.edit.case.toUpper"
},
{
"key": "Alt+`",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Transform to upper case",
"command": "dance.edit.case.toUpper"
},
{
"key": "Shift+Alt+7",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Copy indentation",
"command": "dance.edit.copyIndentation"
},
{
"key": "Shift+Alt+7",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Copy indentation",
"command": "dance.edit.copyIndentation"
},
{
"key": "Shift+Alt+,",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Deindent selected lines",
"command": "dance.edit.deindent"
},
{
"key": "Shift+Alt+,",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Deindent selected lines",
"command": "dance.edit.deindent"
},
{
"key": "Shift+,",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Deindent selected lines (including incomplete indent)",
"command": "dance.edit.deindent.withIncomplete"
},
{
"key": "Shift+,",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Deindent selected lines (including incomplete indent)",
"command": "dance.edit.deindent.withIncomplete"
},
{
"key": "Alt+D",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Delete",
"command": "dance.edit.delete"
},
{
"key": "Alt+D",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Delete",
"command": "dance.edit.delete"
},
{
"key": "Alt+C",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Delete and switch to Insert",
"command": "dance.edit.delete-insert"
},
{
"key": "Alt+C",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Delete and switch to Insert",
"command": "dance.edit.delete-insert"
},
{
"key": "Shift+.",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Indent selected lines",
"command": "dance.edit.indent"
},
{
"key": "Shift+.",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Indent selected lines",
"command": "dance.edit.indent"
},
{
"key": "Shift+Alt+.",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Indent selected lines (including empty lines)",
"command": "dance.edit.indent.withEmpty"
},
{
"key": "Shift+Alt+.",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Indent selected lines (including empty lines)",
"command": "dance.edit.indent.withEmpty"
},
{
"key": "Shift+Alt+R",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Insert contents of register",
"command": "dance.edit.insert"
},
{
"key": "Shift+J",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Join lines",
"command": "dance.edit.join"
},
{
"key": "Shift+J",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Join lines",
"command": "dance.edit.join"
},
{
"key": "Shift+Alt+J",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Join lines and select inserted separators",
"command": "dance.edit.join.select"
},
{
"key": "Shift+O",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Insert new line above and switch to insert",
"command": "dance.edit.newLine.above.insert"
},
{
"key": "Shift+O",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Insert new line above and switch to insert",
"command": "dance.edit.newLine.above.insert"
},
{
"key": "O",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Insert new line below and switch to insert",
"command": "dance.edit.newLine.below.insert"
},
{
"key": "O",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Insert new line below and switch to insert",
"command": "dance.edit.newLine.below.insert"
},
{
"key": "P",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Paste after and select",
"command": "dance.edit.paste.after.select"
},
{
"key": "P",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Paste after and select",
"command": "dance.edit.paste.after.select"
},
{
"key": "Shift+P",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Paste before and select",
"command": "dance.edit.paste.before.select"
},
{
"key": "Shift+P",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Paste before and select",
"command": "dance.edit.paste.before.select"
},
{
"key": "Alt+P",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Paste all after and select",
"command": "dance.edit.pasteAll.after.select"
},
{
"key": "Alt+P",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Paste all after and select",
"command": "dance.edit.pasteAll.after.select"
},
{
"key": "Shift+Alt+P",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Paste all before and select",
"command": "dance.edit.pasteAll.before.select"
},
{
"key": "Shift+Alt+P",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Paste all before and select",
"command": "dance.edit.pasteAll.before.select"
},
{
"key": "R",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Replace characters",
"command": "dance.edit.replaceCharacters"
},
{
"key": "R",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Replace characters",
"command": "dance.edit.replaceCharacters"
},
{
"key": "Ctrl+R",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Pick register and replace",
"command": "dance.edit.selectRegister-insert"
},
{
"key": "Ctrl+R",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Pick register and replace",
"command": "dance.edit.selectRegister-insert"
},
{
"key": "D",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Copy and delete",
"command": "dance.edit.yank-delete"
},
{
"key": "D",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Copy and delete",
"command": "dance.edit.yank-delete"
},
{
"key": "C",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Copy, delete and switch to Insert",
"command": "dance.edit.yank-delete-insert"
},
{
"key": "C",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Copy, delete and switch to Insert",
"command": "dance.edit.yank-delete-insert"
},
{
"key": "Shift+R",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Copy and replace",
"command": "dance.edit.yank-replace"
},
{
"key": "Shift+R",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Copy and replace",
"command": "dance.edit.yank-replace"
},
{
"key": "Q",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Replay recording",
"command": "dance.history.recording.play"
},
{
"key": "Q",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Replay recording",
"command": "dance.history.recording.play"
},
{
"key": "Shift+Q",
"when": "editorTextFocus && dance.mode == 'normal' && !dance.isRecording",
"title": "Start recording",
"command": "dance.history.recording.start"
},
{
"key": "Shift+Q",
"when": "editorTextFocus && dance.mode == 'visual' && !dance.isRecording",
"title": "Start recording",
"command": "dance.history.recording.start"
},
{
"key": "Escape",
"when": "editorTextFocus && dance.mode == 'normal' && dance.isRecording",
"title": "Stop recording",
"command": "dance.history.recording.stop"
},
{
"key": "Shift+Q",
"when": "editorTextFocus && dance.mode == 'normal' && dance.isRecording",
"title": "Stop recording",
"command": "dance.history.recording.stop"
},
{
"key": "Escape",
"when": "editorTextFocus && dance.mode == 'visual' && dance.isRecording",
"title": "Stop recording",
"command": "dance.history.recording.stop"
},
{
"key": "Shift+Q",
"when": "editorTextFocus && dance.mode == 'visual' && dance.isRecording",
"title": "Stop recording",
"command": "dance.history.recording.stop"
},
{
"key": "Shift+U",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Redo",
"command": "dance.history.redo"
},
{
"key": "Shift+U",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Redo",
"command": "dance.history.redo"
},
{
"key": "Shift+Alt+U",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Redo a change of selections",
"command": "dance.history.redo.selections"
},
{
"key": ".",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Repeat last edit without a command",
"command": "dance.history.repeat.edit"
},
{
"key": "NumPad_Decimal",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Repeat last edit without a command",
"command": "dance.history.repeat.edit"
},
{
"key": ".",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Repeat last edit without a command",
"command": "dance.history.repeat.edit"
},
{
"key": "NumPad_Decimal",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Repeat last edit without a command",
"command": "dance.history.repeat.edit"
},
{
"key": "Alt+.",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Repeat last seek",
"command": "dance.history.repeat.seek"
},
{
"key": "U",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Undo",
"command": "dance.history.undo"
},
{
"key": "U",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Undo",
"command": "dance.history.undo"
},
{
"key": "Alt+U",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Undo a change of selections",
"command": "dance.history.undo.selections"
},
{
"key": "M",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Show match menu",
"command": "dance.openMenu",
"args": {
"menu": "match"
}
},
{
"key": "M",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Show match menu",
"command": "dance.openMenu",
"args": {
"menu": "match"
}
},
{
"key": "Escape",
"when": "editorTextFocus && dance.mode == 'normal' && !dance.isRecording && !markersNavigationVisible",
"title": "Cancel Dance operation",
"command": "dance.cancel"
},
{
"key": "Escape",
"when": "editorTextFocus && dance.mode == 'input'",
"title": "Cancel Dance operation",
"command": "dance.cancel"
},
{
"key": "Up",
"when": "inputFocus && !textInputFocus",
"command": "dance.changeInput",
"args": {
"action": "previous"
}
},
{
"key": "Down",
"when": "inputFocus && !textInputFocus",
"command": "dance.changeInput",
"args": {
"action": "next"
}
},
{
"key": "Shift+'",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select register for next command",
"command": "dance.selectRegister"
},
{
"key": "Shift+'",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Select register for next command",
"command": "dance.selectRegister"
},
{
"key": "0",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 0 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 0
}
},
{
"key": "NumPad0",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 0 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 0
}
},
{
"key": "0",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 0 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 0
}
},
{
"key": "NumPad0",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 0 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 0
}
},
{
"key": "1",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 1 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 1
}
},
{
"key": "NumPad1",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 1 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 1
}
},
{
"key": "1",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 1 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 1
}
},
{
"key": "NumPad1",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 1 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 1
}
},
{
"key": "2",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 2 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 2
}
},
{
"key": "NumPad2",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 2 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 2
}
},
{
"key": "2",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 2 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 2
}
},
{
"key": "NumPad2",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 2 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 2
}
},
{
"key": "3",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 3 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 3
}
},
{
"key": "NumPad3",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 3 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 3
}
},
{
"key": "3",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 3 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 3
}
},
{
"key": "NumPad3",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 3 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 3
}
},
{
"key": "4",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 4 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 4
}
},
{
"key": "NumPad4",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 4 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 4
}
},
{
"key": "4",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 4 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 4
}
},
{
"key": "NumPad4",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 4 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 4
}
},
{
"key": "5",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 5 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 5
}
},
{
"key": "NumPad5",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 5 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 5
}
},
{
"key": "5",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 5 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 5
}
},
{
"key": "NumPad5",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 5 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 5
}
},
{
"key": "6",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 6 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 6
}
},
{
"key": "NumPad6",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 6 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 6
}
},
{
"key": "6",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 6 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 6
}
},
{
"key": "NumPad6",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 6 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 6
}
},
{
"key": "7",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 7 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 7
}
},
{
"key": "NumPad7",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 7 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 7
}
},
{
"key": "7",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 7 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 7
}
},
{
"key": "NumPad7",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 7 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 7
}
},
{
"key": "8",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 8 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 8
}
},
{
"key": "NumPad8",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 8 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 8
}
},
{
"key": "8",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 8 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 8
}
},
{
"key": "NumPad8",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 8 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 8
}
},
{
"key": "9",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 9 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 9
}
},
{
"key": "NumPad9",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add the digit 9 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 9
}
},
{
"key": "9",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 9 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 9
}
},
{
"key": "NumPad9",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add the digit 9 to the counter",
"command": "dance.updateCount",
"args": {
"addDigits": 9
}
},
{
"key": "Ctrl+C",
"when": "editorTextFocus && dance.mode == 'normal'",
"command": "editor.action.commentLine",
"args": {
"$exclude": []
}
},
{
"key": "Ctrl+C",
"when": "editorTextFocus && dance.mode == 'visual'",
"command": "editor.action.commentLine",
"args": {
"$exclude": []
}
},
{
"key": "Shift+;",
"when": "editorTextFocus && dance.mode == 'normal'",
"command": "workbench.action.showCommands",
"args": {
"$exclude": []
}
},
{
"key": "Shift+;",
"when": "editorTextFocus && dance.mode == 'visual'",
"command": "workbench.action.showCommands",
"args": {
"$exclude": []
}
},
{
"key": "A",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Insert after",
"command": "dance.modes.insert.after"
},
{
"key": "A",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Insert after",
"command": "dance.modes.insert.after"
},
{
"key": "I",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Insert before",
"command": "dance.modes.insert.before"
},
{
"key": "I",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Insert before",
"command": "dance.modes.insert.before"
},
{
"key": "Shift+A",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Insert at line end",
"command": "dance.modes.insert.lineEnd"
},
{
"key": "Shift+A",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Insert at line end",
"command": "dance.modes.insert.lineEnd"
},
{
"key": "Shift+I",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Insert at line start",
"command": "dance.modes.insert.lineStart"
},
{
"key": "Shift+I",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Insert at line start",
"command": "dance.modes.insert.lineStart"
},
{
"key": "Escape",
"when": "editorTextFocus && dance.mode == 'insert'",
"title": "Set mode to Normal",
"command": "dance.modes.set.normal"
},
{
"key": "Escape",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Set mode to Normal",
"command": "dance.modes.set.normal"
},
{
"key": "V",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Set mode to Normal",
"command": "dance.modes.set.normal"
},
{
"key": "Ctrl+V",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Temporary Insert mode",
"command": "dance.modes.set.temporarily.insert"
},
{
"key": "Ctrl+V",
"when": "editorTextFocus && dance.mode == 'insert'",
"title": "Temporary Normal mode",
"command": "dance.modes.set.temporarily.normal"
},
{
"key": "V",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Set mode to Visual",
"command": "dance.modes.set.visual"
},
{
"key": "/",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search",
"command": "dance.search"
},
{
"key": "NumPad_Divide",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search",
"command": "dance.search"
},
{
"key": "/",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Search",
"command": "dance.search"
},
{
"key": "NumPad_Divide",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Search",
"command": "dance.search"
},
{
"key": "Shift+/",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search backward",
"command": "dance.search.backward"
},
{
"key": "Shift+Alt+/",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search backward (extend)",
"command": "dance.search.backward.extend"
},
{
"key": "Alt+/",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search (extend)",
"command": "dance.search.extend"
},
{
"key": "N",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select next match",
"command": "dance.search.next"
},
{
"key": "Alt+N",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add next match",
"command": "dance.search.next.add"
},
{
"key": "N",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add next match",
"command": "dance.search.next.add"
},
{
"key": "Shift+N",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select previous match",
"command": "dance.search.previous"
},
{
"key": "Shift+Alt+N",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Add previous match",
"command": "dance.search.previous.add"
},
{
"key": "Shift+N",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Add previous match",
"command": "dance.search.previous.add"
},
{
"key": "Shift+Alt+8",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search current selection",
"command": "dance.search.selection"
},
{
"key": "Alt+NumPad_Multiply",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search current selection",
"command": "dance.search.selection"
},
{
"key": "Shift+8",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search current selection (smart)",
"command": "dance.search.selection.smart"
},
{
"key": "NumPad_Multiply",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Search current selection (smart)",
"command": "dance.search.selection.smart"
},
{
"key": "Shift+8",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Search current selection (smart)",
"command": "dance.search.selection.smart"
},
{
"key": "NumPad_Multiply",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Search current selection (smart)",
"command": "dance.search.selection.smart"
},
{
"key": "T",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to character (excluded)",
"command": "dance.seek"
},
{
"key": "Alt+A",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select whole object",
"command": "dance.seek.askObject"
},
{
"key": "Alt+A",
"when": "editorTextFocus && dance.mode == 'insert'",
"title": "Select whole object",
"command": "dance.seek.askObject"
},
{
"key": "]",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to whole object end",
"command": "dance.seek.askObject.end"
},
{
"key": "Shift+]",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to whole object end",
"command": "dance.seek.askObject.end.extend"
},
{
"key": "Alt+I",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select inner object",
"command": "dance.seek.askObject.inner"
},
{
"key": "Alt+I",
"when": "editorTextFocus && dance.mode == 'insert'",
"title": "Select inner object",
"command": "dance.seek.askObject.inner"
},
{
"key": "Alt+]",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to inner object end",
"command": "dance.seek.askObject.inner.end"
},
{
"key": "Shift+Alt+]",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to inner object end",
"command": "dance.seek.askObject.inner.end.extend"
},
{
"key": "Alt+[",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to inner object start",
"command": "dance.seek.askObject.inner.start"
},
{
"key": "Shift+Alt+[",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to inner object start",
"command": "dance.seek.askObject.inner.start.extend"
},
{
"key": "[",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to whole object start",
"command": "dance.seek.askObject.start"
},
{
"key": "Shift+[",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to whole object start",
"command": "dance.seek.askObject.start.extend"
},
{
"key": "Shift+T",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to character (excluded, backward)",
"command": "dance.seek.backward"
},
{
"key": "Shift+M",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to next enclosing character",
"command": "dance.seek.enclosing"
},
{
"key": "Alt+M",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to previous enclosing character",
"command": "dance.seek.enclosing.backward"
},
{
"key": "Shift+M",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to next enclosing character",
"command": "dance.seek.enclosing.extend"
},
{
"key": "Alt+M",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to previous enclosing character",
"command": "dance.seek.enclosing.extend.backward"
},
{
"key": "T",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to character (excluded)",
"command": "dance.seek.extend"
},
{
"key": "Shift+T",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to character (excluded, backward)",
"command": "dance.seek.extend.backward"
},
{
"key": "F",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to character (included)",
"command": "dance.seek.included"
},
{
"key": "Shift+F",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to character (included, backward)",
"command": "dance.seek.included.backward"
},
{
"key": "F",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to character (included)",
"command": "dance.seek.included.extend"
},
{
"key": "Shift+F",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to character (included, backward)",
"command": "dance.seek.included.extend.backward"
},
{
"key": "W",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to next word start",
"command": "dance.seek.word"
},
{
"key": "B",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to previous word start",
"command": "dance.seek.word.backward"
},
{
"key": "B",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to previous word start",
"command": "dance.seek.word.backward.extend"
},
{
"key": "W",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to next word start",
"command": "dance.seek.word.extend"
},
{
"key": "Shift+W",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to next WORD start",
"command": "dance.seek.word.ws"
},
{
"key": "Shift+B",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to previous WORD start",
"command": "dance.seek.word.ws.backward"
},
{
"key": "Shift+B",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to previous WORD start",
"command": "dance.seek.word.ws.backward.extend"
},
{
"key": "Shift+W",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to next WORD start",
"command": "dance.seek.word.ws.extend"
},
{
"key": "E",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to next word end",
"command": "dance.seek.wordEnd"
},
{
"key": "E",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to next word end",
"command": "dance.seek.wordEnd.extend"
},
{
"key": "Shift+E",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to next WORD end",
"command": "dance.seek.wordEnd.ws"
},
{
"key": "Shift+E",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to next WORD end",
"command": "dance.seek.wordEnd.ws.extend"
},
{
"key": "Shift+5",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select whole buffer",
"command": "dance.select.buffer"
},
{
"key": "Shift+5",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Select whole buffer",
"command": "dance.select.buffer"
},
{
"key": "Shift+J",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend down",
"command": "dance.select.down.extend"
},
{
"key": "Shift+Down",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend down",
"command": "dance.select.down.extend"
},
{
"key": "J",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend down",
"command": "dance.select.down.extend"
},
{
"key": "Down",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend down",
"command": "dance.select.down.extend"
},
{
"key": "J",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Jump down",
"command": "dance.select.down.jump"
},
{
"key": "Down",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Jump down",
"command": "dance.select.down.jump"
},
{
"key": "Shift+Left",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend left",
"command": "dance.select.left.extend"
},
{
"key": "H",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend left",
"command": "dance.select.left.extend"
},
{
"key": "Left",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend left",
"command": "dance.select.left.extend"
},
{
"key": "H",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Jump left",
"command": "dance.select.left.jump"
},
{
"key": "Left",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Jump left",
"command": "dance.select.left.jump"
},
{
"key": "X",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to line below",
"command": "dance.select.line.below.extend"
},
{
"key": "X",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to line below",
"command": "dance.select.line.below.extend"
},
{
"key": "Alt+L",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to line end. TODO: helix",
"command": "dance.select.lineEnd"
},
{
"key": "End",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to line end. TODO: helix",
"command": "dance.select.lineEnd"
},
{
"key": "Shift+Alt+L",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to line end",
"command": "dance.select.lineEnd.extend"
},
{
"key": "Shift+End",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to line end",
"command": "dance.select.lineEnd.extend"
},
{
"key": "Alt+H",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to line start",
"command": "dance.select.lineStart"
},
{
"key": "Home",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Select to line start",
"command": "dance.select.lineStart"
},
{
"key": "Shift+Alt+H",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to line start",
"command": "dance.select.lineStart.extend"
},
{
"key": "Shift+Home",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to line start",
"command": "dance.select.lineStart.extend"
},
{
"key": "Shift+Right",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend right",
"command": "dance.select.right.extend"
},
{
"key": "L",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend right",
"command": "dance.select.right.extend"
},
{
"key": "Right",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend right",
"command": "dance.select.right.extend"
},
{
"key": "L",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Jump right",
"command": "dance.select.right.jump"
},
{
"key": "Right",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Jump right",
"command": "dance.select.right.jump"
},
{
"key": "Shift+G",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend to",
"command": "dance.select.to.extend"
},
{
"key": "G",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend to",
"command": "dance.select.to.extend"
},
{
"key": "G",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Go to",
"command": "dance.select.to.jump"
},
{
"key": "Shift+K",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend up",
"command": "dance.select.up.extend"
},
{
"key": "Shift+Up",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Extend up",
"command": "dance.select.up.extend"
},
{
"key": "K",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend up",
"command": "dance.select.up.extend"
},
{
"key": "Up",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Extend up",
"command": "dance.select.up.extend"
},
{
"key": "K",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Jump up",
"command": "dance.select.up.jump"
},
{
"key": "Up",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Jump up",
"command": "dance.select.up.jump"
},
{
"key": "Ctrl+F",
"when": "editorTextFocus && dance.mode == 'normal'",
"command": "dance.select.vertically",
"args": {
"direction": 1,
"by": "page",
"shift": "jump"
}
},
{
"key": "Ctrl+F",
"when": "editorTextFocus && dance.mode == 'insert'",
"command": "dance.select.vertically",
"args": {
"direction": 1,
"by": "page",
"shift": "jump"
}
},
{
"key": "Ctrl+D",
"when": "editorTextFocus && dance.mode == 'normal'",
"command": "dance.select.vertically",
"args": {
"direction": 1,
"by": "halfPage",
"shift": "jump"
}
},
{
"key": "Ctrl+D",
"when": "editorTextFocus && dance.mode == 'insert'",
"command": "dance.select.vertically",
"args": {
"direction": 1,
"by": "halfPage",
"shift": "jump"
}
},
{
"key": "Ctrl+B",
"when": "editorTextFocus && dance.mode == 'normal'",
"command": "dance.select.vertically",
"args": {
"direction": -1,
"by": "page",
"shift": "jump"
}
},
{
"key": "Ctrl+B",
"when": "editorTextFocus && dance.mode == 'insert'",
"command": "dance.select.vertically",
"args": {
"direction": -1,
"by": "page",
"shift": "jump"
}
},
{
"key": "Ctrl+U",
"when": "editorTextFocus && dance.mode == 'normal'",
"command": "dance.select.vertically",
"args": {
"direction": -1,
"by": "halfPage",
"shift": "jump"
}
},
{
"key": "Ctrl+U",
"when": "editorTextFocus && dance.mode == 'insert'",
"command": "dance.select.vertically",
"args": {
"direction": -1,
"by": "halfPage",
"shift": "jump"
}
},
{
"key": "Ctrl+F",
"when": "editorTextFocus && dance.mode == 'visual'",
"command": "dance.select.vertically",
"args": {
"direction": 1,
"by": "page",
"shift": "extend"
}
},
{
"key": "Ctrl+D",
"when": "editorTextFocus && dance.mode == 'visual'",
"command": "dance.select.vertically",
"args": {
"direction": 1,
"by": "halfPage",
"shift": "extend"
}
},
{
"key": "Ctrl+B",
"when": "editorTextFocus && dance.mode == 'visual'",
"command": "dance.select.vertically",
"args": {
"direction": -1,
"by": "page",
"shift": "extend"
}
},
{
"key": "Ctrl+U",
"when": "editorTextFocus && dance.mode == 'visual'",
"command": "dance.select.vertically",
"args": {
"direction": -1,
"by": "halfPage",
"shift": "extend"
}
},
{
"key": "Alt+;",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Change direction of selections",
"command": "dance.selections.changeDirection"
},
{
"key": "Alt+,",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Clear main selections",
"command": "dance.selections.clear.main"
},
{
"key": "Alt+,",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Clear main selections",
"command": "dance.selections.clear.main"
},
{
"key": ",",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Clear secondary selections",
"command": "dance.selections.clear.secondary"
},
{
"key": ",",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Clear secondary selections",
"command": "dance.selections.clear.secondary"
},
{
"key": "Shift+C",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Copy selections below",
"command": "dance.selections.copy"
},
{
"key": "Shift+C",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Copy selections below",
"command": "dance.selections.copy"
},
{
"key": "Shift+Alt+C",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Copy selections above",
"command": "dance.selections.copy.above"
},
{
"key": "Shift+Alt+C",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Copy selections above",
"command": "dance.selections.copy.above"
},
{
"key": "Shift+X",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Expand to lines",
"command": "dance.selections.expandToLines"
},
{
"key": "Shift+X",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Expand to lines",
"command": "dance.selections.expandToLines"
},
{
"key": "Shift+Alt+;",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Forward selections",
"command": "dance.selections.faceForward"
},
{
"key": "Shift+4",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Filter selections",
"command": "dance.selections.filter"
},
{
"key": "Shift+4",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Filter selections",
"command": "dance.selections.filter"
},
{
"key": "Shift+K",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Keep matching selections",
"command": "dance.selections.filter.regexp"
},
{
"key": "Shift+K",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Keep matching selections",
"command": "dance.selections.filter.regexp"
},
{
"key": "Shift+Alt+K",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Clear matching selections",
"command": "dance.selections.filter.regexp.inverse"
},
{
"key": "Shift+Alt+K",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Clear matching selections",
"command": "dance.selections.filter.regexp.inverse"
},
{
"key": "Shift+Alt+-",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Merge contiguous selections",
"command": "dance.selections.merge"
},
{
"key": "Shift+Alt+\\",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Pipe selections",
"command": "dance.selections.pipe"
},
{
"key": "Shift+1",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Pipe and append",
"command": "dance.selections.pipe.append"
},
{
"key": "Shift+Alt+1",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Pipe and prepend",
"command": "dance.selections.pipe.prepend"
},
{
"key": "Shift+\\",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Pipe and replace",
"command": "dance.selections.pipe.replace"
},
{
"key": ";",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Reduce selections to their cursor",
"command": "dance.selections.reduce"
},
{
"key": ";",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Reduce selections to their cursor",
"command": "dance.selections.reduce"
},
{
"key": "Shift+Alt+S",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Reduce selections to their ends",
"command": "dance.selections.reduce.edges"
},
{
"key": "Alt+Z",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Restore selections. TODO: Needed?",
"command": "dance.selections.restore"
},
{
"key": "Alt+Z",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Combine register selections with current ones",
"command": "dance.selections.restore.withCurrent"
},
{
"key": "Shift+Alt+Z",
"when": "editorTextFocus && dance.mode == 'normal'",
"command": "dance.selections.restore.withCurrent",
"args": {
"reverse": true,
"$exclude": []
}
},
{
"key": "Shift+Alt+Z",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Save selections",
"command": "dance.selections.save"
},
{
"key": "Y",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Copy selections text",
"command": "dance.selections.saveText"
},
{
"key": "Y",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Copy selections text",
"command": "dance.selections.saveText"
},
{
"key": "S",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Leap or select",
"command": "dance.selections.select.orLeap"
},
{
"key": "S",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Leap or select",
"command": "dance.selections.select.orLeap"
},
{
"key": "Shift+S",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Split selections",
"command": "dance.selections.split"
},
{
"key": "Shift+S",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Split selections",
"command": "dance.selections.split"
},
{
"key": "Alt+S",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Leap or select backward",
"command": "dance.selections.splitLines.orLeap.backward"
},
{
"key": "Alt+S",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Leap or select backward",
"command": "dance.selections.splitLines.orLeap.backward"
},
{
"key": "Enter",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Toggle selection indices",
"command": "dance.selections.toggleIndices"
},
{
"key": "Enter",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Toggle selection indices",
"command": "dance.selections.toggleIndices"
},
{
"key": "Alt+X",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Trim lines",
"command": "dance.selections.trimLines"
},
{
"key": "Shift+-",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Trim whitespace",
"command": "dance.selections.trimWhitespace"
},
{
"key": "Shift+-",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Trim whitespace",
"command": "dance.selections.trimWhitespace"
},
{
"key": "Shift+Alt+9",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Rotate selections clockwise",
"command": "dance.selections.rotate.both"
},
{
"key": "Shift+Alt+0",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Rotate selections counter-clockwise",
"command": "dance.selections.rotate.both.reverse"
},
{
"key": "Shift+9",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Rotate selections clockwise (selections only)",
"command": "dance.selections.rotate.selections"
},
{
"key": "Shift+9",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Rotate selections clockwise (selections only)",
"command": "dance.selections.rotate.selections"
},
{
"key": "Shift+0",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Rotate selections counter-clockwise (selections only)",
"command": "dance.selections.rotate.selections.reverse"
},
{
"key": "Shift+0",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Rotate selections counter-clockwise (selections only)",
"command": "dance.selections.rotate.selections.reverse"
},
{
"key": "Space",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Show space menu",
"command": "dance.openMenu",
"args": {
"menu": "space",
"$exclude": []
}
},
{
"key": "Space",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Show space menu",
"command": "dance.openMenu",
"args": {
"menu": "space",
"$exclude": []
}
},
{
"key": "Z",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Show view menu",
"command": "dance.openMenu",
"args": {
"menu": "view",
"$exclude": []
}
},
{
"key": "Z",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Show view menu",
"command": "dance.openMenu",
"args": {
"menu": "view",
"$exclude": []
}
},
{
"key": "Shift+Z",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Show view menu (locked)",
"command": "dance.openMenu",
"args": {
"menu": "view",
"locked": true,
"$exclude": []
}
},
{
"key": "Shift+Z",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Show view menu (locked)",
"command": "dance.openMenu",
"args": {
"menu": "view",
"locked": true,
"$exclude": []
}
},
{
"key": "Ctrl+W",
"when": "editorTextFocus && dance.mode == 'normal'",
"title": "Show window menu",
"command": "dance.window.windowMenu"
},
{
"key": "Ctrl+W",
"when": "editorTextFocus && dance.mode == 'visual'",
"title": "Show window menu",
"command": "dance.window.windowMenu"
},
{
"command": "dance.ignore",
"key": "Shift+D",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+H",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+L",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+V",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+Y",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+2",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+3",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+6",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "'",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "-",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "=",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "NumPad_Add",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "NumPad_Subtract",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+=",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+Space",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+NumPad_Add",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+NumPad_Subtract",
"when": "editorTextFocus && dance.mode == 'normal'"
},
{
"command": "dance.ignore",
"key": "Shift+D",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+H",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+L",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+V",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+Y",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+2",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+3",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+6",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "'",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "-",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "=",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "NumPad_Add",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "NumPad_Subtract",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+=",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+Space",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+NumPad_Add",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "dance.ignore",
"key": "Shift+NumPad_Subtract",
"when": "editorTextFocus && dance.mode == 'visual'"
},
{
"command": "-lineBreakInsert",
"key": "Ctrl+O",
"when": ""
},
{
"command": "workbench.action.navigateBack",
"key": "Ctrl+O",
"when": "canNavigateBack"
},
{
"command": "workbench.action.navigateForward",
"key": "Ctrl+I",
"when": "canNavigateForward"
}
]
}
}