From 2a28a9d164410569e0c410b77ec5195315b9e9dc Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Sun, 26 Apr 2020 16:05:41 +0800 Subject: [PATCH] Change curly brace surround --- keymap/vim.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/keymap/vim.js b/keymap/vim.js index dd219ff4c6..91b6dc9c90 100644 --- a/keymap/vim.js +++ b/keymap/vim.js @@ -2842,11 +2842,13 @@ if (typeof mirroredPairs[character] === 'boolean') { openC = closeC = character } else { + let pairs = mirroredPairs[character] ? mirroredPairs : multilinePairs + if (openCs.includes(character)) { openC = character - closeC = mirroredPairs[character] + closeC = pairs[character] } else { - openC = mirroredPairs[character] + openC = pairs[character] closeC = character } } @@ -2882,8 +2884,20 @@ cm.replaceRange(text, openPos, closePos) } - function replaceMultilineSurround () { - + function replaceCharacterAt (cm, character, position) { + var pos = { + ch: position.ch + 1, + line: position.line + } + cm.replaceRange(character, position, pos) + } + + function replaceMultilineSurround (cm, searchCharacter, replaceCharacter) { + var tmp = selectCompanionObject(cm, cursor, searchCharacter, true) + const replacePair = transformCharacterPair(replaceCharacter) + + replaceCharacterAt(cm, replacePair[0], tmp.start) + replaceCharacterAt(cm, replacePair[1], { ch: tmp.end.ch - 1, line: tmp.end.line }) } if (mirroredPairs[actionArgs.search]) {