Commit f2f0bf53 authored by hluk's avatar hluk Committed by hjk
Browse files

FakeVim: Emulate Vim option "tildeop" ("top")



Change-Id: I61a07f5edc0e2a062ca10cb17f489ac3ce113d9f
Reviewed-by: default avatarhjk <hjk121@nokiamail.com>
parent 0a86efb8
......@@ -1604,6 +1604,9 @@ void FakeVimPlugin::test_vim_letter_case()
TestData data;
setup(&data);
// set command ~ not to behave as g~
data.doCommand("set notildeop");
// upper- and lower-case
data.setText("abc DEF");
KEYS("~", "A" X "bc DEF");
......@@ -1616,6 +1619,12 @@ void FakeVimPlugin::test_vim_letter_case()
KEYS(".", "aBC de" X "F" N "ghi");
KEYS("h.", "aBC dE" X "f" N "ghi");
// set command ~ to behave as g~
data.doCommand("set tildeop");
data.setText("abc DEF" N "ghi JKL");
KEYS("ll~j", "ABC def" N "GHI jkl");
data.setText("abc DEF");
KEYS("lv3l~", "a" X "BC dEF");
KEYS("v4lU", "a" X "BC DEF");
......
......@@ -195,6 +195,7 @@ FakeVimSettings *theFakeVimSettings()
createAction(s, ConfigSmartCase, false, _("SmartCase"), _("scs"));
createAction(s, ConfigIgnoreCase, false, _("IgnoreCase"), _("ic"));
createAction(s, ConfigWrapScan, true, _("WrapScan"), _("ws"));
createAction(s, ConfigTildeOp, false, _("TildeOp"), _("top"));
createAction(s, ConfigShowCmd, true, _("ShowCmd"), _("sc"));
createAction(s, ConfigScrollOff, 0, _("ScrollOff"), _("so"));
createAction(s, ConfigBackspace, _("indent,eol,start"), _("ConfigBackspace"), _("bs"));
......
......@@ -78,6 +78,9 @@ enum FakeVimSettingsCode
ConfigIgnoreCase,
ConfigWrapScan,
// command ~ behaves as g~
ConfigTildeOp,
// indent allow backspacing over autoindent
// eol allow backspacing over line breaks (join lines)
// start allow backspacing over the start of insert; CTRL-W and CTRL-U
......
......@@ -3826,7 +3826,7 @@ bool FakeVimHandler::Private::handleNoSubMode(const Input &input)
else if (input.is('U'))
m_submode = UpCaseSubMode;
finishMovement();
} else if (m_gflag) {
} else if (m_gflag || (input.is('~') && hasConfig(ConfigTildeOp))) {
setUndoPosition();
if (atEndOfLine())
moveLeft();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment