annotate .cms/lib/codemirror/test/sublime_test.js @ 1:1d486627aa1e draft default tip

24.10
author Coffee CMS <info@coffee-cms.ru>
date Sat, 12 Oct 2024 02:51:39 +0000
parents 78edf6b517a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 (function() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2 "use strict";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 var Pos = CodeMirror.Pos;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5 namespace = "sublime_";
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7 function stTest(name) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 var actions = Array.prototype.slice.call(arguments, 1);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 testCM(name, function(cm) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 for (var i = 0; i < actions.length; i++) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 var action = actions[i];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12 if (typeof action == "string" && i == 0)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 cm.setValue(action);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 else if (typeof action == "string")
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 cm.execCommand(action);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 else if (action instanceof Pos)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 cm.setCursor(action);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 else
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 action(cm);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 });
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
23
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
24 function at(line, ch, msg) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
25 return function(cm) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
26 eq(cm.listSelections().length, 1);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
27 eqCursorPos(cm.getCursor("head"), Pos(line, ch), msg);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
28 eqCursorPos(cm.getCursor("anchor"), Pos(line, ch), msg);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
29 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
30 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
31
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
32 function val(content, msg) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
33 return function(cm) { eq(cm.getValue(), content, msg); };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
34 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
35
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
36 function argsToRanges(args) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
37 if (args.length % 4) throw new Error("Wrong number of arguments for ranges.");
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
38 var ranges = [];
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
39 for (var i = 0; i < args.length; i += 4)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
40 ranges.push({anchor: Pos(args[i], args[i + 1]),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
41 head: Pos(args[i + 2], args[i + 3])});
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
42 return ranges;
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
43 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
44
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
45 function setSel() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
46 var ranges = argsToRanges(arguments);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
47 return function(cm) { cm.setSelections(ranges, 0); };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
48 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
49
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
50 function hasSel() {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
51 var ranges = argsToRanges(arguments);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
52 return function(cm) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
53 var sels = cm.listSelections();
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
54 if (sels.length != ranges.length)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
55 throw new Failure("Expected " + ranges.length + " selections, but found " + sels.length);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
56 for (var i = 0; i < sels.length; i++) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
57 eqCharPos(sels[i].anchor, ranges[i].anchor, "anchor " + i);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
58 eqCharPos(sels[i].head, ranges[i].head, "head " + i);
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
59 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
60 };
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
61 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
62
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
63 stTest("bySubword", "the foo_bar DooDahBah \n a FOOBar",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
64 "goSubwordLeft", at(0, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
65 "goSubwordRight", at(0, 3),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
66 "goSubwordRight", at(0, 7),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
67 "goSubwordRight", at(0, 11),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
68 "goSubwordRight", at(0, 15),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
69 "goSubwordRight", at(0, 18),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
70 "goSubwordRight", at(0, 21),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
71 "goSubwordRight", at(0, 22),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
72 "goSubwordRight", at(1, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
73 "goSubwordRight", at(1, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
74 "goSubwordRight", at(1, 6),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
75 "goSubwordRight", at(1, 9),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
76 "goSubwordLeft", at(1, 6),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
77 "goSubwordLeft", at(1, 3),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
78 "goSubwordLeft", at(1, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
79 "goSubwordLeft", at(1, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
80 "goSubwordLeft", at(0, 22),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
81 "goSubwordLeft", at(0, 18),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
82 "goSubwordLeft", at(0, 15),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
83 "goSubwordLeft", at(0, 12),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
84 "goSubwordLeft", at(0, 8),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
85 "goSubwordLeft", at(0, 4),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
86 "goSubwordLeft", at(0, 0));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
87
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
88 stTest("splitSelectionByLine", "abc\ndef\nghi",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
89 setSel(0, 1, 2, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
90 "splitSelectionByLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
91 hasSel(0, 1, 0, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
92 1, 0, 1, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
93 2, 0, 2, 2));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
94
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
95 stTest("splitSelectionByLineMulti", "abc\ndef\nghi\njkl",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
96 setSel(0, 1, 1, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
97 1, 2, 3, 2,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
98 3, 3, 3, 3),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
99 "splitSelectionByLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
100 hasSel(0, 1, 0, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
101 1, 0, 1, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
102 1, 2, 1, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
103 2, 0, 2, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
104 3, 0, 3, 2,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
105 3, 3, 3, 3));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
106
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
107 stTest("selectLine", "abc\ndef\nghi",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
108 setSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
109 2, 0, 2, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
110 "selectLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
111 hasSel(0, 0, 1, 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
112 2, 0, 2, 3),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
113 setSel(0, 1, 1, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
114 "selectLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
115 hasSel(0, 0, 2, 0));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
116
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
117 stTest("insertLineAfter", "abcde\nfghijkl\nmn",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
118 setSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
119 0, 3, 0, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
120 1, 2, 1, 2,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
121 1, 3, 1, 5), "insertLineAfter",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
122 hasSel(1, 0, 1, 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
123 3, 0, 3, 0), val("abcde\n\nfghijkl\n\nmn"));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
124
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
125 stTest("insertLineBefore", "abcde\nfghijkl\nmn",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
126 setSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
127 0, 3, 0, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
128 1, 2, 1, 2,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
129 1, 3, 1, 5), "insertLineBefore",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
130 hasSel(0, 0, 0, 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
131 2, 0, 2, 0), val("\nabcde\n\nfghijkl\nmn"));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
132
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
133 stTest("skipAndSelectNextOccurrence", "a foo bar\nfoobar foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
134 setSel(0, 2, 0, 5), "skipAndSelectNextOccurrence", hasSel(1, 0, 1, 3),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
135 "skipAndSelectNextOccurrence", hasSel(1, 7, 1, 10),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
136 "skipAndSelectNextOccurrence", hasSel(0, 2, 0, 5),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
137 Pos(0, 3), "skipAndSelectNextOccurrence", hasSel(0, 2, 0, 5),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
138 "skipAndSelectNextOccurrence", hasSel(1, 7, 1, 10),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
139 setSel(0, 6, 0, 9), "skipAndSelectNextOccurrence", hasSel(1, 3, 1, 6));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
140
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
141 stTest("selectNextOccurrence", "a foo bar\nfoobar foo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
142 setSel(0, 2, 0, 5),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
143 "selectNextOccurrence", hasSel(0, 2, 0, 5,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
144 1, 0, 1, 3),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
145 "selectNextOccurrence", hasSel(0, 2, 0, 5,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
146 1, 0, 1, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
147 1, 7, 1, 10),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
148 "selectNextOccurrence", hasSel(0, 2, 0, 5,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
149 1, 0, 1, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
150 1, 7, 1, 10),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
151 Pos(0, 3), "selectNextOccurrence", hasSel(0, 2, 0, 5),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
152 "selectNextOccurrence", hasSel(0, 2, 0, 5,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
153 1, 7, 1, 10),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
154 setSel(0, 6, 0, 9),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
155 "selectNextOccurrence", hasSel(0, 6, 0, 9,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
156 1, 3, 1, 6));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
157
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
158 stTest("selectScope", "foo(a) {\n bar[1, 2];\n}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
159 "selectScope", hasSel(0, 0, 2, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
160 Pos(0, 4), "selectScope", hasSel(0, 4, 0, 5),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
161 Pos(0, 5), "selectScope", hasSel(0, 4, 0, 5),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
162 Pos(0, 6), "selectScope", hasSel(0, 0, 2, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
163 Pos(0, 8), "selectScope", hasSel(0, 8, 2, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
164 Pos(1, 2), "selectScope", hasSel(0, 8, 2, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
165 Pos(1, 6), "selectScope", hasSel(1, 6, 1, 10),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
166 Pos(1, 9), "selectScope", hasSel(1, 6, 1, 10),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
167 "selectScope", hasSel(0, 8, 2, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
168 "selectScope", hasSel(0, 0, 2, 1));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
169
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
170 stTest("goToBracket", "foo(a) {\n bar[1, 2];\n}",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
171 Pos(0, 0), "goToBracket", at(0, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
172 Pos(0, 4), "goToBracket", at(0, 5), "goToBracket", at(0, 4),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
173 Pos(0, 8), "goToBracket", at(2, 0), "goToBracket", at(0, 8),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
174 Pos(1, 2), "goToBracket", at(2, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
175 Pos(1, 7), "goToBracket", at(1, 10), "goToBracket", at(1, 6));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
176
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
177 stTest("swapLine", "1\n2\n3---\n4\n5",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
178 "swapLineDown", val("2\n1\n3---\n4\n5"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
179 "swapLineUp", val("1\n2\n3---\n4\n5"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
180 "swapLineUp", val("1\n2\n3---\n4\n5"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
181 Pos(4, 1), "swapLineDown", val("1\n2\n3---\n4\n5"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
182 setSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
183 1, 0, 2, 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
184 2, 2, 2, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
185 "swapLineDown", val("4\n1\n2\n3---\n5"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
186 hasSel(1, 1, 1, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
187 2, 0, 3, 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
188 3, 2, 3, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
189 "swapLineUp", val("1\n2\n3---\n4\n5"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
190 hasSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
191 1, 0, 2, 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
192 2, 2, 2, 2));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
193
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
194 stTest("swapLineEmptyBottomSel", "1\n2\n3",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
195 setSel(0, 1, 1, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
196 "swapLineDown", val("2\n1\n3"), hasSel(1, 1, 2, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
197 "swapLineUp", val("1\n2\n3"), hasSel(0, 1, 1, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
198 "swapLineUp", val("1\n2\n3"), hasSel(0, 0, 0, 0));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
199
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
200 stTest("swapLineUpFromEnd", "a\nb\nc",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
201 Pos(2, 1), "swapLineUp",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
202 hasSel(1, 1, 1, 1), val("a\nc\nb"));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
203
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
204 stTest("joinLines", "abc\ndef\nghi\njkl",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
205 "joinLines", val("abc def\nghi\njkl"), at(0, 4),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
206 "undo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
207 setSel(0, 2, 1, 1), "joinLines",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
208 val("abc def ghi\njkl"), hasSel(0, 2, 0, 8),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
209 "undo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
210 setSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
211 1, 1, 1, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
212 3, 1, 3, 1), "joinLines",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
213 val("abc def ghi\njkl"), hasSel(0, 4, 0, 4,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
214 0, 8, 0, 8,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
215 1, 3, 1, 3));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
216
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
217 stTest("duplicateLine", "abc\ndef\nghi",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
218 Pos(1, 0), "duplicateLine", val("abc\ndef\ndef\nghi"), at(2, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
219 "undo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
220 setSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
221 1, 1, 1, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
222 2, 1, 2, 1), "duplicateLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
223 val("abc\nabc\ndef\ndef\nghi\nghi"), hasSel(1, 1, 1, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
224 3, 1, 3, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
225 5, 1, 5, 1));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
226 stTest("duplicateLineSelection", "abcdef",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
227 setSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
228 0, 2, 0, 4,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
229 0, 5, 0, 5),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
230 "duplicateLine",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
231 val("abcdef\nabcdcdef\nabcdcdef"), hasSel(2, 1, 2, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
232 2, 4, 2, 6,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
233 2, 7, 2, 7));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
234
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
235 stTest("sortLines", "c\nb\na\nC\nB\nA",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
236 "sortLines", val("A\nB\nC\na\nb\nc"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
237 "undo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
238 setSel(0, 0, 2, 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
239 3, 0, 5, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
240 "sortLines", val("b\nc\na\nB\nC\nA"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
241 hasSel(0, 0, 2, 0,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
242 3, 0, 5, 0),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
243 "undo",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
244 setSel(1, 0, 5, 0), "sortLinesInsensitive", val("c\na\nB\nb\nC\nA"));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
245
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
246 stTest("bookmarks", "abc\ndef\nghi\njkl",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
247 Pos(0, 1), "toggleBookmark",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
248 setSel(1, 1, 1, 2), "toggleBookmark",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
249 setSel(2, 1, 2, 2), "toggleBookmark",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
250 "nextBookmark", hasSel(0, 1, 0, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
251 "nextBookmark", hasSel(1, 1, 1, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
252 "nextBookmark", hasSel(2, 1, 2, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
253 "prevBookmark", hasSel(1, 1, 1, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
254 "prevBookmark", hasSel(0, 1, 0, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
255 "prevBookmark", hasSel(2, 1, 2, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
256 "prevBookmark", hasSel(1, 1, 1, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
257 "toggleBookmark",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
258 "prevBookmark", hasSel(2, 1, 2, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
259 "prevBookmark", hasSel(0, 1, 0, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
260 "selectBookmarks", hasSel(0, 1, 0, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
261 2, 1, 2, 2),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
262 "clearBookmarks",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
263 Pos(0, 0), "selectBookmarks", at(0, 0));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
264
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
265 stTest("smartBackspace", " foo\n bar",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
266 setSel(0, 2, 0, 2, 1, 4, 1, 4, 1, 6, 1, 6), "smartBackspace",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
267 val("foo\n br"))
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
268
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
269 stTest("upAndDowncaseAtCursor", "abc\ndef x\nghI",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
270 setSel(0, 1, 0, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
271 1, 1, 1, 1,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
272 1, 4, 1, 4), "upcaseAtCursor",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
273 val("aBC\nDEF x\nghI"), hasSel(0, 1, 0, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
274 1, 3, 1, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
275 1, 4, 1, 4),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
276 "downcaseAtCursor",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
277 val("abc\ndef x\nghI"), hasSel(0, 1, 0, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
278 1, 3, 1, 3,
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
279 1, 4, 1, 4));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
280
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
281 stTest("mark", "abc\ndef\nghi",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
282 Pos(1, 1), "setSublimeMark",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
283 Pos(2, 1), "selectToSublimeMark", hasSel(2, 1, 1, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
284 Pos(0, 1), "swapWithSublimeMark", at(1, 1), "swapWithSublimeMark", at(0, 1),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
285 "deleteToSublimeMark", val("aef\nghi"),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
286 "sublimeYank", val("abc\ndef\nghi"), at(1, 1));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
287
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
288 stTest("findUnder", "foo foobar a",
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
289 "findUnder", hasSel(0, 4, 0, 7),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
290 "findUnder", hasSel(0, 0, 0, 3),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
291 "findUnderPrevious", hasSel(0, 4, 0, 7),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
292 "findUnderPrevious", hasSel(0, 0, 0, 3),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
293 Pos(0, 4), "findUnder", hasSel(0, 4, 0, 10),
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
294 Pos(0, 11), "findUnder", hasSel(0, 11, 0, 11));
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
295 })();