Changeset View
Changeset View
Standalone View
Standalone View
autotests/src/vimode/keys.cpp
Show All 39 Lines | |||||
40 | 40 | | |||
41 | //BEGIN: KeysTest | 41 | //BEGIN: KeysTest | ||
42 | 42 | | |||
43 | void KeysTest::MappingTests() | 43 | void KeysTest::MappingTests() | ||
44 | { | 44 | { | ||
45 | // QVERIFY(false); | 45 | // QVERIFY(false); | ||
46 | const int mappingTimeoutMSOverride = QString::fromLocal8Bit(qgetenv("KATE_VIMODE_TEST_MAPPINGTIMEOUTMS")).toInt(); | 46 | const int mappingTimeoutMSOverride = QString::fromLocal8Bit(qgetenv("KATE_VIMODE_TEST_MAPPINGTIMEOUTMS")).toInt(); | ||
47 | const int mappingTimeoutMS = (mappingTimeoutMSOverride > 0) ? mappingTimeoutMSOverride : 2000; | 47 | const int mappingTimeoutMS = (mappingTimeoutMSOverride > 0) ? mappingTimeoutMSOverride : 2000; | ||
48 | KateViewConfig::global()->setViInputModeStealKeys(true); // For tests involving e.g. <c-a> | 48 | KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); // For tests involving e.g. <c-a> | ||
49 | { | 49 | { | ||
50 | // Check storage and retrieval of mapping recursion. | 50 | // Check storage and retrieval of mapping recursion. | ||
51 | clearAllMappings(); | 51 | clearAllMappings(); | ||
52 | 52 | | |||
53 | vi_global->mappings()->add(Mappings::NormalModeMapping, "'", "ihello", Mappings::Recursive); | 53 | vi_global->mappings()->add(Mappings::NormalModeMapping, "'", "ihello", Mappings::Recursive); | ||
54 | QVERIFY(vi_global->mappings()->isRecursive(Mappings::NormalModeMapping, "'")); | 54 | QVERIFY(vi_global->mappings()->isRecursive(Mappings::NormalModeMapping, "'")); | ||
55 | 55 | | |||
56 | vi_global->mappings()->add(Mappings::NormalModeMapping, "a", "ihello", Mappings::NonRecursive); | 56 | vi_global->mappings()->add(Mappings::NormalModeMapping, "a", "ihello", Mappings::NonRecursive); | ||
▲ Show 20 Lines • Show All 182 Lines • ▼ Show 20 Line(s) | |||||
587 | 587 | | |||
588 | // Clear mappings for subsequent tests. | 588 | // Clear mappings for subsequent tests. | ||
589 | clearAllMappings(); | 589 | clearAllMappings(); | ||
590 | } | 590 | } | ||
591 | 591 | | |||
592 | void KeysTest::LeaderTests() | 592 | void KeysTest::LeaderTests() | ||
593 | { | 593 | { | ||
594 | // Clean slate. | 594 | // Clean slate. | ||
595 | KateViewConfig::global()->setViInputModeStealKeys(true); | 595 | KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); | ||
596 | clearAllMappings(); | 596 | clearAllMappings(); | ||
597 | 597 | | |||
598 | // By default the backslash character is the leader. The default leader | 598 | // By default the backslash character is the leader. The default leader | ||
599 | // is picked from the config. If we don't want to mess this from other | 599 | // is picked from the config. If we don't want to mess this from other | ||
600 | // tests, it's better if we mock the config. | 600 | // tests, it's better if we mock the config. | ||
601 | const QString viTestKConfigFileName = QStringLiteral("vimodetest-leader-katevimoderc"); | 601 | const QString viTestKConfigFileName = QStringLiteral("vimodetest-leader-katevimoderc"); | ||
602 | KConfig viTestKConfig(viTestKConfigFileName); | 602 | KConfig viTestKConfig(viTestKConfigFileName); | ||
603 | vi_global->mappings()->setLeader(QChar()); | 603 | vi_global->mappings()->setLeader(QChar()); | ||
▲ Show 20 Lines • Show All 182 Lines • ▼ Show 20 Line(s) | 656 | { | |||
941 | 941 | | |||
942 | // Test dealing with auto-completion. | 942 | // Test dealing with auto-completion. | ||
943 | FakeCodeCompletionTestModel *fakeCodeCompletionModel = new FakeCodeCompletionTestModel(kate_view); | 943 | FakeCodeCompletionTestModel *fakeCodeCompletionModel = new FakeCodeCompletionTestModel(kate_view); | ||
944 | kate_view->registerCompletionModel(fakeCodeCompletionModel); | 944 | kate_view->registerCompletionModel(fakeCodeCompletionModel); | ||
945 | // Completion tests require a visible kate_view. | 945 | // Completion tests require a visible kate_view. | ||
946 | ensureKateViewVisible(); | 946 | ensureKateViewVisible(); | ||
947 | // Want Vim mode to intercept ctrl-p, ctrl-n shortcuts, etc. | 947 | // Want Vim mode to intercept ctrl-p, ctrl-n shortcuts, etc. | ||
948 | const bool oldStealKeys = KateViewConfig::global()->viInputModeStealKeys(); | 948 | const bool oldStealKeys = KateViewConfig::global()->viInputModeStealKeys(); | ||
949 | KateViewConfig::global()->setViInputModeStealKeys(true); | 949 | KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, true); | ||
950 | 950 | | |||
951 | // Don't invoke completion via ctrl-space when replaying a macro. | 951 | // Don't invoke completion via ctrl-space when replaying a macro. | ||
952 | clearAllMacros(); | 952 | clearAllMacros(); | ||
953 | fakeCodeCompletionModel->setCompletions({ "completionA", "completionB", "completionC" }); | 953 | fakeCodeCompletionModel->setCompletions({ "completionA", "completionB", "completionC" }); | ||
954 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 954 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
955 | BeginTest(""); | 955 | BeginTest(""); | ||
956 | TestPressKey("qqico\\ctrl- \\ctrl-cq"); | 956 | TestPressKey("qqico\\ctrl- \\ctrl-cq"); | ||
957 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 957 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
▲ Show 20 Lines • Show All 132 Lines • ▼ Show 20 Line(s) | |||||
1090 | TestPressKey("ggdGqbicom\\ctrl- \\enter\\ctrl-cq"); | 1090 | TestPressKey("ggdGqbicom\\ctrl- \\enter\\ctrl-cq"); | ||
1091 | TestPressKey("dd@a"); | 1091 | TestPressKey("dd@a"); | ||
1092 | FinishTest("completionA1\ncompletionB\ncompletionA2"); | 1092 | FinishTest("completionA1\ncompletionB\ncompletionA2"); | ||
1093 | 1093 | | |||
1094 | // Test that non-tail-removing completions are respected. | 1094 | // Test that non-tail-removing completions are respected. | ||
1095 | // Note that there is no way (in general) to determine if a completion was | 1095 | // Note that there is no way (in general) to determine if a completion was | ||
1096 | // non-tail-removing, so we explicitly set the config to false. | 1096 | // non-tail-removing, so we explicitly set the config to false. | ||
1097 | const bool oldRemoveTailOnCompletion = KateViewConfig::global()->wordCompletionRemoveTail(); | 1097 | const bool oldRemoveTailOnCompletion = KateViewConfig::global()->wordCompletionRemoveTail(); | ||
1098 | KateViewConfig::global()->setWordCompletionRemoveTail(false); | 1098 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); | ||
1099 | const bool oldReplaceTabsDyn = kate_document->config()->replaceTabsDyn(); | 1099 | const bool oldReplaceTabsDyn = kate_document->config()->replaceTabsDyn(); | ||
1100 | kate_document->config()->setReplaceTabsDyn(false); | 1100 | kate_document->config()->setReplaceTabsDyn(false); | ||
1101 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | 1101 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | ||
1102 | clearAllMacros(); | 1102 | clearAllMacros(); | ||
1103 | BeginTest("compTail"); | 1103 | BeginTest("compTail"); | ||
1104 | fakeCodeCompletionModel->setCompletions({ "completionA", "completionB", "completionC" }); | 1104 | fakeCodeCompletionModel->setCompletions({ "completionA", "completionB", "completionC" }); | ||
1105 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1105 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1106 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | 1106 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | ||
Show All 9 Lines | |||||
1116 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1116 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1117 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | 1117 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | ||
1118 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1118 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1119 | kate_document->setText("(123_compTail"); | 1119 | kate_document->setText("(123_compTail"); | ||
1120 | TestPressKey("gg@q"); | 1120 | TestPressKey("gg@q"); | ||
1121 | FinishTest("(123_completionATail"); | 1121 | FinishTest("(123_completionATail"); | ||
1122 | 1122 | | |||
1123 | // Correctly remove word if we are set to remove tail. | 1123 | // Correctly remove word if we are set to remove tail. | ||
1124 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1124 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1125 | clearAllMacros(); | 1125 | clearAllMacros(); | ||
1126 | BeginTest("(123_compTail)"); | 1126 | BeginTest("(123_compTail)"); | ||
1127 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | 1127 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | ||
1128 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1128 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1129 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | 1129 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | ||
1130 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | 1130 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | ||
1131 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1131 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1132 | kate_document->setText("(123_compTail)"); | 1132 | kate_document->setText("(123_compTail)"); | ||
Show All 14 Lines | |||||
1147 | 1147 | | |||
1148 | // Actually, let whether the tail is swallowed or not depend on the value when the | 1148 | // Actually, let whether the tail is swallowed or not depend on the value when the | ||
1149 | // completion occurred, not when we replay it. | 1149 | // completion occurred, not when we replay it. | ||
1150 | clearAllMacros(); | 1150 | clearAllMacros(); | ||
1151 | BeginTest("(123_compTail_456)"); | 1151 | BeginTest("(123_compTail_456)"); | ||
1152 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | 1152 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | ||
1153 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1153 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1154 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | 1154 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | ||
1155 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1155 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1156 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | 1156 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | ||
1157 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1157 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1158 | KateViewConfig::global()->setWordCompletionRemoveTail(false); | 1158 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); | ||
1159 | kate_document->setText("(123_compTail_456)"); | 1159 | kate_document->setText("(123_compTail_456)"); | ||
1160 | TestPressKey("gg@q"); | 1160 | TestPressKey("gg@q"); | ||
1161 | FinishTest("(123_completionA)"); | 1161 | FinishTest("(123_completionA)"); | ||
1162 | clearAllMacros(); | 1162 | clearAllMacros(); | ||
1163 | BeginTest("(123_compTail_456)"); | 1163 | BeginTest("(123_compTail_456)"); | ||
1164 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | 1164 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | ||
1165 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1165 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1166 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | 1166 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | ||
1167 | KateViewConfig::global()->setWordCompletionRemoveTail(false); | 1167 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); | ||
1168 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | 1168 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-cq"); | ||
1169 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1169 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1170 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1170 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1171 | kate_document->setText("(123_compTail_456)"); | 1171 | kate_document->setText("(123_compTail_456)"); | ||
1172 | TestPressKey("gg@q"); | 1172 | TestPressKey("gg@q"); | ||
1173 | FinishTest("(123_completionATail_456)"); | 1173 | FinishTest("(123_completionATail_456)"); | ||
1174 | 1174 | | |||
1175 | // Can have remove-tail *and* non-remove-tail completions in one macro. | 1175 | // Can have remove-tail *and* non-remove-tail completions in one macro. | ||
1176 | clearAllMacros(); | 1176 | clearAllMacros(); | ||
1177 | BeginTest("(123_compTail_456)\n(123_compTail_456)"); | 1177 | BeginTest("(123_compTail_456)\n(123_compTail_456)"); | ||
1178 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | 1178 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | ||
1179 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1179 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1180 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | 1180 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | ||
1181 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1181 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1182 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-c"); | 1182 | TestPressKey("qqfTi\\ctrl- \\enter\\ctrl-c"); | ||
1183 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | 1183 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | ||
1184 | KateViewConfig::global()->setWordCompletionRemoveTail(false); | 1184 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); | ||
1185 | TestPressKey("j^fTi\\ctrl- \\enter\\ctrl-cq"); | 1185 | TestPressKey("j^fTi\\ctrl- \\enter\\ctrl-cq"); | ||
1186 | kate_document->setText("(123_compTail_456)\n(123_compTail_456)"); | 1186 | kate_document->setText("(123_compTail_456)\n(123_compTail_456)"); | ||
1187 | TestPressKey("gg@q"); | 1187 | TestPressKey("gg@q"); | ||
1188 | FinishTest("(123_completionA)\n(123_completionATail_456)"); | 1188 | FinishTest("(123_completionA)\n(123_completionATail_456)"); | ||
1189 | 1189 | | |||
1190 | // Can repeat plain-text completions when there is no word to the left of the cursor. | 1190 | // Can repeat plain-text completions when there is no word to the left of the cursor. | ||
1191 | clearAllMacros(); | 1191 | clearAllMacros(); | ||
1192 | BeginTest(""); | 1192 | BeginTest(""); | ||
1193 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | 1193 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | ||
1194 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1194 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1195 | TestPressKey("qqi\\ctrl- \\enter\\ctrl-cq"); | 1195 | TestPressKey("qqi\\ctrl- \\enter\\ctrl-cq"); | ||
1196 | kate_document->clear(); | 1196 | kate_document->clear(); | ||
1197 | TestPressKey("gg@q"); | 1197 | TestPressKey("gg@q"); | ||
1198 | FinishTest("123_completionA"); | 1198 | FinishTest("123_completionA"); | ||
1199 | 1199 | | |||
1200 | // Shouldn't swallow the letter under the cursor if we're not swallowing tails. | 1200 | // Shouldn't swallow the letter under the cursor if we're not swallowing tails. | ||
1201 | clearAllMacros(); | 1201 | clearAllMacros(); | ||
1202 | BeginTest(""); | 1202 | BeginTest(""); | ||
1203 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | 1203 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | ||
1204 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1204 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1205 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | 1205 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | ||
1206 | KateViewConfig::global()->setWordCompletionRemoveTail(false); | 1206 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); | ||
1207 | TestPressKey("qqi\\ctrl- \\enter\\ctrl-cq"); | 1207 | TestPressKey("qqi\\ctrl- \\enter\\ctrl-cq"); | ||
1208 | kate_document->setText("oldwordshouldbeuntouched"); | 1208 | kate_document->setText("oldwordshouldbeuntouched"); | ||
1209 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1209 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1210 | TestPressKey("gg@q"); | 1210 | TestPressKey("gg@q"); | ||
1211 | FinishTest("123_completionAoldwordshouldbeuntouched"); | 1211 | FinishTest("123_completionAoldwordshouldbeuntouched"); | ||
1212 | 1212 | | |||
1213 | // ... but do if we are swallowing tails. | 1213 | // ... but do if we are swallowing tails. | ||
1214 | clearAllMacros(); | 1214 | clearAllMacros(); | ||
1215 | BeginTest(""); | 1215 | BeginTest(""); | ||
1216 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | 1216 | fakeCodeCompletionModel->setCompletions({ "123_completionA" }); | ||
1217 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1217 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1218 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | 1218 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | ||
1219 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1219 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1220 | TestPressKey("qqi\\ctrl- \\enter\\ctrl-cq"); | 1220 | TestPressKey("qqi\\ctrl- \\enter\\ctrl-cq"); | ||
1221 | kate_document->setText("oldwordshouldbedeleted"); | 1221 | kate_document->setText("oldwordshouldbedeleted"); | ||
1222 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1222 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1223 | TestPressKey("gg@q"); | 1223 | TestPressKey("gg@q"); | ||
1224 | FinishTest("123_completionA"); | 1224 | FinishTest("123_completionA"); | ||
1225 | 1225 | | |||
1226 | // Completion of functions. | 1226 | // Completion of functions. | ||
1227 | // Currently, not removing the tail on function completion is not supported. | 1227 | // Currently, not removing the tail on function completion is not supported. | ||
1228 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | 1228 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | ||
1229 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1229 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1230 | // A completed, no argument function "function()" is repeated correctly. | 1230 | // A completed, no argument function "function()" is repeated correctly. | ||
1231 | BeginTest(""); | 1231 | BeginTest(""); | ||
1232 | fakeCodeCompletionModel->setCompletions({ "function()" }); | 1232 | fakeCodeCompletionModel->setCompletions({ "function()" }); | ||
1233 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1233 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1234 | TestPressKey("qqifunc\\ctrl- \\enter\\ctrl-cq"); | 1234 | TestPressKey("qqifunc\\ctrl- \\enter\\ctrl-cq"); | ||
1235 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1235 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1236 | TestPressKey("dd@q"); | 1236 | TestPressKey("dd@q"); | ||
1237 | FinishTest("function()"); | 1237 | FinishTest("function()"); | ||
▲ Show 20 Lines • Show All 122 Lines • ▼ Show 20 Line(s) | |||||
1360 | TestPressKey("gg@q"); | 1360 | TestPressKey("gg@q"); | ||
1361 | FinishTest("function().something();(<-don't merge this bracket)"); | 1361 | FinishTest("function().something();(<-don't merge this bracket)"); | ||
1362 | 1362 | | |||
1363 | // Not-removing-tail when completing functions is not currently supported, | 1363 | // Not-removing-tail when completing functions is not currently supported, | ||
1364 | // so ignore the "do-not-remove-tail" settings when we try this. | 1364 | // so ignore the "do-not-remove-tail" settings when we try this. | ||
1365 | BeginTest("funct"); | 1365 | BeginTest("funct"); | ||
1366 | fakeCodeCompletionModel->setCompletions({ "function(...)" }); | 1366 | fakeCodeCompletionModel->setCompletions({ "function(...)" }); | ||
1367 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1367 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1368 | KateViewConfig::global()->setWordCompletionRemoveTail(false); | 1368 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); | ||
1369 | TestPressKey("qqfta\\ctrl- \\enterfirstArg\\ctrl-cq"); | 1369 | TestPressKey("qqfta\\ctrl- \\enterfirstArg\\ctrl-cq"); | ||
1370 | kate_document->setText("functxyz"); | 1370 | kate_document->setText("functxyz"); | ||
1371 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1371 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1372 | TestPressKey("gg@q"); | 1372 | TestPressKey("gg@q"); | ||
1373 | FinishTest("function(firstArg)"); | 1373 | FinishTest("function(firstArg)"); | ||
1374 | BeginTest("funct"); | 1374 | BeginTest("funct"); | ||
1375 | fakeCodeCompletionModel->setCompletions({ "function()" }); | 1375 | fakeCodeCompletionModel->setCompletions({ "function()" }); | ||
1376 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1376 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1377 | KateViewConfig::global()->setWordCompletionRemoveTail(false); | 1377 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); | ||
1378 | TestPressKey("qqfta\\ctrl- \\enter\\ctrl-cq"); | 1378 | TestPressKey("qqfta\\ctrl- \\enter\\ctrl-cq"); | ||
1379 | kate_document->setText("functxyz"); | 1379 | kate_document->setText("functxyz"); | ||
1380 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1380 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
1381 | TestPressKey("gg@q"); | 1381 | TestPressKey("gg@q"); | ||
1382 | FinishTest("function()"); | 1382 | FinishTest("function()"); | ||
1383 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1383 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1384 | 1384 | | |||
1385 | // Deal with cases where completion ends with ";". | 1385 | // Deal with cases where completion ends with ";". | ||
1386 | BeginTest(""); | 1386 | BeginTest(""); | ||
1387 | fakeCodeCompletionModel->setCompletions({ "function();" }); | 1387 | fakeCodeCompletionModel->setCompletions({ "function();" }); | ||
1388 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1388 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1389 | TestPressKey("qqifun\\ctrl- \\enter\\ctrl-cq"); | 1389 | TestPressKey("qqifun\\ctrl- \\enter\\ctrl-cq"); | ||
1390 | kate_document->clear(); | 1390 | kate_document->clear(); | ||
1391 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | 1391 | fakeCodeCompletionModel->setFailTestOnInvocation(true); | ||
▲ Show 20 Lines • Show All 58 Lines • ▼ Show 20 Line(s) | 1446 | { | |||
1450 | clearAllMacros(); | 1450 | clearAllMacros(); | ||
1451 | BeginTest("funct\nnoa\ncomtail\ncomtail\ncom"); | 1451 | BeginTest("funct\nnoa\ncomtail\ncomtail\ncom"); | ||
1452 | fakeCodeCompletionModel->setCompletions({ "completionA", "functionwithargs(...)", "noargfunction()" }); | 1452 | fakeCodeCompletionModel->setCompletions({ "completionA", "functionwithargs(...)", "noargfunction()" }); | ||
1453 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | 1453 | fakeCodeCompletionModel->setFailTestOnInvocation(false); | ||
1454 | // Record 'a'. | 1454 | // Record 'a'. | ||
1455 | TestPressKey("qafta\\ctrl- \\enterfirstArg\\ctrl-c"); // Function with args. | 1455 | TestPressKey("qafta\\ctrl- \\enterfirstArg\\ctrl-c"); // Function with args. | ||
1456 | TestPressKey("\\enterea\\ctrl- \\enter\\ctrl-c"); // Function no args. | 1456 | TestPressKey("\\enterea\\ctrl- \\enter\\ctrl-c"); // Function no args. | ||
1457 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | 1457 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | ||
1458 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1458 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1459 | TestPressKey("\\enterfti\\ctrl- \\enter\\ctrl-c"); // Cut off tail. | 1459 | TestPressKey("\\enterfti\\ctrl- \\enter\\ctrl-c"); // Cut off tail. | ||
1460 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | 1460 | fakeCodeCompletionModel->setRemoveTailOnComplete(false); | ||
1461 | KateViewConfig::global()->setWordCompletionRemoveTail(false); | 1461 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, false); | ||
1462 | TestPressKey("\\enterfti\\ctrl- \\enter\\ctrl-cq"); // Don't cut off tail. | 1462 | TestPressKey("\\enterfti\\ctrl- \\enter\\ctrl-cq"); // Don't cut off tail. | ||
1463 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | 1463 | fakeCodeCompletionModel->setRemoveTailOnComplete(true); | ||
1464 | KateViewConfig::global()->setWordCompletionRemoveTail(true); | 1464 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, true); | ||
1465 | // Record 'b'. | 1465 | // Record 'b'. | ||
1466 | fakeCodeCompletionModel->setCompletions({ "completionB", "semicolonfunctionnoargs();", "semicolonfunctionwithargs(...);" }); | 1466 | fakeCodeCompletionModel->setCompletions({ "completionB", "semicolonfunctionnoargs();", "semicolonfunctionwithargs(...);" }); | ||
1467 | TestPressKey("\\enterqbea\\ctrl- \\enter\\ctrl-cosemicolonfunctionw\\ctrl- \\enterX\\ctrl-cosemicolonfunctionn\\ctrl- \\enterX\\ctrl-cq"); | 1467 | TestPressKey("\\enterqbea\\ctrl- \\enter\\ctrl-cosemicolonfunctionw\\ctrl- \\enterX\\ctrl-cosemicolonfunctionn\\ctrl- \\enterX\\ctrl-cq"); | ||
1468 | // Save. | 1468 | // Save. | ||
1469 | vi_global->writeConfig(&viTestKConfig); | 1469 | vi_global->writeConfig(&viTestKConfig); | ||
1470 | viTestKConfig.sync(); | 1470 | viTestKConfig.sync(); | ||
1471 | // Overwrite 'a' and 'b' and their completions. | 1471 | // Overwrite 'a' and 'b' and their completions. | ||
1472 | fakeCodeCompletionModel->setCompletions({ "blah1" }); | 1472 | fakeCodeCompletionModel->setCompletions({ "blah1" }); | ||
Show All 38 Lines | |||||
1511 | TestPressKey("a completionRep\\ctrl- \\enter\\ctrl-c"); | 1511 | TestPressKey("a completionRep\\ctrl- \\enter\\ctrl-c"); | ||
1512 | TestPressKey(".q"); | 1512 | TestPressKey(".q"); | ||
1513 | qDebug() << "text: " << kate_document->text(); | 1513 | qDebug() << "text: " << kate_document->text(); | ||
1514 | kate_document->clear(); | 1514 | kate_document->clear(); | ||
1515 | TestPressKey("gg@q"); | 1515 | TestPressKey("gg@q"); | ||
1516 | FinishTest("completionMacro completionRepeatLastChange completionRepeatLastChange"); | 1516 | FinishTest("completionMacro completionRepeatLastChange completionRepeatLastChange"); | ||
1517 | } | 1517 | } | ||
1518 | 1518 | | |||
1519 | KateViewConfig::global()->setWordCompletionRemoveTail(oldRemoveTailOnCompletion); | 1519 | KateViewConfig::global()->setValue(KateViewConfig::WordCompletionRemoveTail, oldRemoveTailOnCompletion); | ||
1520 | kate_document->config()->setReplaceTabsDyn(oldReplaceTabsDyn); | 1520 | kate_document->config()->setReplaceTabsDyn(oldReplaceTabsDyn); | ||
1521 | 1521 | | |||
1522 | kate_view->unregisterCompletionModel(fakeCodeCompletionModel); | 1522 | kate_view->unregisterCompletionModel(fakeCodeCompletionModel); | ||
1523 | delete fakeCodeCompletionModel; | 1523 | delete fakeCodeCompletionModel; | ||
1524 | fakeCodeCompletionModel = nullptr; | 1524 | fakeCodeCompletionModel = nullptr; | ||
1525 | // Hide the kate_view for subsequent tests. | 1525 | // Hide the kate_view for subsequent tests. | ||
1526 | kate_view->hide(); | 1526 | kate_view->hide(); | ||
1527 | mainWindow->hide(); | 1527 | mainWindow->hide(); | ||
1528 | KateViewConfig::global()->setViInputModeStealKeys(oldStealKeys); | 1528 | KateViewConfig::global()->setValue(KateViewConfig::ViInputModeStealKeys, oldStealKeys); | ||
1529 | } | 1529 | } | ||
1530 | 1530 | | |||
1531 | void KeysTest::MarkTests() | 1531 | void KeysTest::MarkTests() | ||
1532 | { | 1532 | { | ||
1533 | // Difference between ` and ' | 1533 | // Difference between ` and ' | ||
1534 | DoTest(" a\n b", "jmak'aii", " a\n ib"); | 1534 | DoTest(" a\n b", "jmak'aii", " a\n ib"); | ||
1535 | DoTest(" a\n b", "jmak`aii", " a\ni b"); | 1535 | DoTest(" a\n b", "jmak`aii", " a\ni b"); | ||
1536 | 1536 | | |||
▲ Show 20 Lines • Show All 50 Lines • Show Last 20 Lines |