From 0e83172b0b0d7890c02765653e3dbe4616c48c62 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Mon, 17 Nov 2014 15:32:33 +0100 Subject: FakeVim: Indent block correctly In situation: void f() { // Cursor is HERE. } the code after ">i{" command is indented as (with shiftwidth=4): void f() { // Cursor is HERE. } Change-Id: I48283c91c32fc407bbdb24349f2491461e401ee9 Reviewed-by: hjk --- src/plugins/fakevim/fakevim_test.cpp | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'src/plugins/fakevim/fakevim_test.cpp') diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 9dd0bd82c8..adee06f428 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -1829,6 +1829,59 @@ void FakeVimPlugin::test_vim_indent() data.setText("abc"); KEYS(">>", "\t\t abc"); INTEGRITY(false); + + // indent inner block + data.doCommand("set expandtab"); + data.doCommand("set shiftwidth=2"); + data.setText("int main()" N + "{" N + "int i = 0;" N + X "return i;" N + "}" N + ""); + KEYS(">i{", + "int main()" N + "{" N + " " X "int i = 0;" N + " return i;" N + "}" N + ""); + KEYS(">i}", + "int main()" N + "{" N + " " X "int i = 0;" N + " return i;" N + "}" N + ""); + KEYS("i{", + "int main() {" N + " " X "return i;" N + "}" N + ""); + KEYS("l>i}", + "int main() {" N + " " X "return i;" N + "}" N + ""); + KEYS("l