summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhluk <hluk@email.cz>2013-08-20 14:37:15 +0200
committerhjk <hjk121@nokiamail.com>2013-08-29 11:10:36 +0200
commit41785890d632b2c12fcbdafa4185ce7a26249fd5 (patch)
tree8855ecc9aa553b043d09f375612cdb721dc10b10 /src
parenta60cf5d0fa6e74198170a0577f6d5922418edab1 (diff)
downloadqt-creator-41785890d632b2c12fcbdafa4185ce7a26249fd5.tar.gz
FakeVim: Escape '>' character in mappings
On some keyboards, '>' character can be produced using Shift key. But recorded macro shouldn't contain '<S->>', which cannot be properly parsed, instead it will be '<S-<GT>>' (as '<LT>' for '<'). Change-Id: Iac3759029b6ff8c9e690c4728e35048c0b6046f9 Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/fakevim/fakevim_test.cpp4
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp
index 2e3125e948..4a78decf99 100644
--- a/src/plugins/fakevim/fakevim_test.cpp
+++ b/src/plugins/fakevim/fakevim_test.cpp
@@ -3174,6 +3174,10 @@ void FakeVimPlugin::test_macros()
KEYS("@x", "def" N X "abc");
KEYS("gg@x", "abc" N X "def");
data.doCommand("unmap <S-down>");
+
+ data.setText(" abc xyz>." N " def xyz>." N " ghi xyz>." N " jkl xyz>.");
+ KEYS("qq" "^wdf>j" "q", " abc ." N " def " X "xyz>." N " ghi xyz>." N " jkl xyz>.");
+ KEYS("2@q", " abc ." N " def ." N " ghi ." N " jkl " X "xyz>.");
}
void FakeVimPlugin::test_vim_qtcreator()
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 4e9c2d05d1..5857665d2e 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -725,6 +725,7 @@ static const QMap<QString, int> &vimKeyNames()
k.insert(_("RIGHT"), Key_Right);
k.insert(_("LT"), Key_Less);
+ k.insert(_("GT"), Key_Greater);
k.insert(_("F1"), Key_F1);
k.insert(_("F2"), Key_F2);
@@ -1007,6 +1008,8 @@ public:
if (!namedKey) {
if (m_xkey == '<')
key = _("<LT>");
+ else if (m_xkey == '>')
+ key = _("<GT>");
else
key = QChar(m_xkey);
}