Created
June 26, 2020 10:49
-
-
Save tshort/7dc4457e01935e917536f32eb104a16d to your computer and use it in GitHub Desktop.
Implementing the mirror plugin for Kakoune in Dance
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [ | |
| { | |
| "key": "'", | |
| "command": "dance.openMenu", | |
| "args": { | |
| "menu": "mirror" | |
| }, | |
| "when": "editorTextFocus && dance.mode == 'normal'" | |
| }, | |
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| "multiCommand.commands": [ | |
| { | |
| "command": "multiCommand.mirror.c", | |
| "sequence": [ | |
| "dance.select.copy", | |
| "dance.selections.flip", | |
| "dance.select.copy.backwards", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.h", | |
| "sequence": [ | |
| "dance.left.extend", | |
| "dance.selections.flip", | |
| "dance.right.extend", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.l", | |
| "sequence": [ | |
| "dance.right.extend", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.j", | |
| "sequence": [ | |
| "dance.down.extend", | |
| "dance.selections.flip", | |
| "dance.up.extend", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.k", | |
| "sequence": [ | |
| "dance.up.extend", | |
| "dance.selections.flip", | |
| "dance.down.extend", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.J", | |
| "sequence": [ | |
| "dance.down.extend", | |
| "dance.selections.flip", | |
| "dance.up.extend", | |
| "dance.selections.flip", | |
| "dance.expandLines", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.K", | |
| "sequence": [ | |
| "dance.up.extend", | |
| "dance.selections.flip", | |
| "dance.down.extend", | |
| "dance.selections.flip", | |
| "dance.expandLines", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.b", | |
| "sequence": [ | |
| "dance.select.word.previous.extend", | |
| "dance.selections.flip", | |
| "dance.select.word.extend", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.w", | |
| "sequence": [ | |
| "dance.select.word.extend", | |
| "dance.selections.flip", | |
| "dance.select.word.previous.extend", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.e", | |
| "sequence": [ | |
| "dance.select.word.end.extend", | |
| "dance.selections.flip", | |
| "dance.select.word.previous.extend", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.p", | |
| "sequence": [ | |
| {"command": "dance.objects.performSelection", "args": {"object": "paragraph", "action": "selectToEnd", "extend": true, "inner": false}}, | |
| "dance.selections.flip", | |
| {"command": "dance.objects.performSelection", "args": {"object": "paragraph", "action": "selectToStart", "extend": true, "inner": false}}, | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.s", | |
| "sequence": [ | |
| {"command": "dance.objects.performSelection", "args": {"object": "sentence", "action": "selectToEnd", "extend": true, "inner": false}}, | |
| "dance.selections.flip", | |
| {"command": "dance.objects.performSelection", "args": {"object": "sentence", "action": "selectToStart", "extend": true, "inner": false}}, | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.m", | |
| "sequence": [ | |
| "dance.select.enclosing.extend", | |
| "dance.selections.flip", | |
| "dance.select.enclosing.extend.backwards", | |
| "dance.selections.flip", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.lparen", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": ")"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "("}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.lcurly", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": "}"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "{"}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.lbracket", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": "]"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "["}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.lt", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": ">"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "<"}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.rparen", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": " )"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "( "}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.rcurly", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": " }"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "{ "}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.rbracket", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": " ]"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "[ "}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.gt", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": " >"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "< "}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.doublequote", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": "\""}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "\""}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.singlequote", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": "'"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "'"}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.backtick", | |
| "sequence": [ | |
| "dance.insert.after", | |
| {"command": "type", "args": {"text": "`"}} | |
| "dance.set.normal", | |
| "dance.marks.saveSelections", // shouldn't need this | |
| "dance.insert.before", | |
| {"command": "type", "args": {"text": "`"}} | |
| "dance.set.normal", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.flip", | |
| "dance.left.extend", | |
| ] | |
| }, | |
| { | |
| "command": "multiCommand.mirror.d", | |
| "sequence": [ | |
| "dance.marks.saveSelections", | |
| "dance.select.firstLast", | |
| "dance.delete.noYank", | |
| "dance.marks.restoreSelections", | |
| "dance.selections.forward", | |
| ] | |
| }, | |
| ], | |
| "dance.menus": { | |
| "mirror": { | |
| "items": { | |
| "c": { | |
| "text": "column", | |
| "command": "multiCommand.mirror.c", | |
| }, | |
| "l": { | |
| "text": "character left", | |
| "command": "multiCommand.mirror.l", | |
| }, | |
| "h": { | |
| "text": "character right", | |
| "command": "multiCommand.mirror.h", | |
| }, | |
| "j": { | |
| "text": "line down", | |
| "command": "multiCommand.mirror.j", | |
| }, | |
| "k": { | |
| "text": "line up", | |
| "command": "multiCommand.mirror.k", | |
| }, | |
| "J": { | |
| "text": "full line down", | |
| "command": "multiCommand.mirror.J", | |
| }, | |
| "K": { | |
| "text": "full line up", | |
| "command": "multiCommand.mirror.K", | |
| }, | |
| "b": { | |
| "text": "word begin", | |
| "command": "multiCommand.mirror.b", | |
| }, | |
| "w": { | |
| "text": "word begin", | |
| "command": "multiCommand.mirror.w", | |
| }, | |
| "e": { | |
| "text": "word end", | |
| "command": "multiCommand.mirror.e", | |
| }, | |
| "p": { | |
| "text": "paragraph", | |
| "command": "multiCommand.mirror.p", | |
| }, | |
| "s": { | |
| "text": "sentence", | |
| "command": "multiCommand.mirror.s", | |
| }, | |
| "m": { | |
| "text": "matching", | |
| "command": "multiCommand.mirror.m", | |
| }, | |
| "(": { | |
| "text": "(surround)", | |
| "command": "multiCommand.mirror.lparen", | |
| }, | |
| "{": { | |
| "text": "{surround}", | |
| "command": "multiCommand.mirror.lcurly", | |
| }, | |
| "[": { | |
| "text": "[surround]", | |
| "command": "multiCommand.mirror.lbracket", | |
| }, | |
| "<": { | |
| "text": "<surround>", | |
| "command": "multiCommand.mirror.lt", | |
| }, | |
| ")": { | |
| "text": "( surround )", | |
| "command": "multiCommand.mirror.rparen", | |
| }, | |
| "}": { | |
| "text": "{ surround }", | |
| "command": "multiCommand.mirror.rcurly", | |
| }, | |
| "]": { | |
| "text": "[ surround ]", | |
| "command": "multiCommand.mirror.rbracket", | |
| }, | |
| ">": { | |
| "text": "< surround >", | |
| "command": "multiCommand.mirror.gt", | |
| }, | |
| "\"": { | |
| "text": "\"surround\"", | |
| "command": "multiCommand.mirror.doublequote", | |
| }, | |
| "'": { | |
| "text": "'surround'", | |
| "command": "multiCommand.mirror.singlequote", | |
| }, | |
| "`": { | |
| "text": "`surround`", | |
| "command": "multiCommand.mirror.backtick", | |
| }, | |
| "d": { | |
| "text": "delete surround", | |
| "command": "multiCommand.mirror.d", | |
| }, | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment