toggle comment functionality (Meta-7)
This commit is contained in:
parent
29435328f3
commit
7399cc94e3
12 changed files with 266 additions and 40 deletions
|
|
@ -73,5 +73,39 @@ var TextEditTest = TestCase("TextEditTest",
|
|||
var selection = editor.getSelectionRange();
|
||||
assertPosition(0, 1, selection.start);
|
||||
assertPosition(2, 1, selection.end);
|
||||
},
|
||||
|
||||
"test: comment lines should perserve selection" : function() {
|
||||
var doc = new ace.TextDocument([" abc", "cde"].join("\n"));
|
||||
var editor = new ace.Editor(new MockRenderer(), doc, new ace.mode.JavaScript());
|
||||
|
||||
editor.moveCursorTo(0, 2);
|
||||
editor.selectDown();
|
||||
|
||||
editor.toggleCommentLines();
|
||||
|
||||
assertEquals(["// abc", "//cde"].join("\n"), doc.toString());
|
||||
|
||||
var selection = editor.getSelectionRange();
|
||||
assertPosition(0, 4, selection.start);
|
||||
assertPosition(1, 4, selection.end);
|
||||
},
|
||||
|
||||
"test: uncomment lines should perserve selection" : function() {
|
||||
var doc = new ace.TextDocument(["// abc", "//cde"].join("\n"));
|
||||
var editor = new ace.Editor(new MockRenderer(), doc, new ace.mode.JavaScript());
|
||||
|
||||
editor.moveCursorTo(0, 1);
|
||||
editor.selectDown();
|
||||
editor.selectRight();
|
||||
editor.selectRight();
|
||||
|
||||
editor.toggleCommentLines();
|
||||
|
||||
assertEquals([" abc", "cde"].join("\n"), doc.toString());
|
||||
|
||||
var selection = editor.getSelectionRange();
|
||||
assertPosition(0, 0, selection.start);
|
||||
assertPosition(1, 1, selection.end);
|
||||
}
|
||||
});
|
||||
51
test/mode/JavaScriptTest.js
Normal file
51
test/mode/JavaScriptTest.js
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
var JavaScriptTest = new TestCase("mode.JavaScriptTest", {
|
||||
|
||||
setUp : function() {
|
||||
this.mode = new ace.mode.JavaScript();
|
||||
},
|
||||
|
||||
"test: getTokenizer() (smoke test)" : function() {
|
||||
var tokenizer = this.mode.getTokenizer();
|
||||
|
||||
assertTrue(tokenizer instanceof ace.Tokenizer);
|
||||
|
||||
var tokens = tokenizer.getLineTokens("'juhu'", "start").tokens;
|
||||
assertEquals("string", tokens[0].type);
|
||||
},
|
||||
|
||||
"test: toggle comment lines should prepend '//' to each line" : function() {
|
||||
var doc = new ace.TextDocument([" abc", "cde", "fg"].join("\n"));
|
||||
|
||||
var range = {
|
||||
start: {row: 0, column: 3},
|
||||
end: {row: 1, column: 1}
|
||||
};
|
||||
|
||||
var comment = this.mode.toggleCommentLines(doc, range);
|
||||
assertEquals(["// abc", "//cde", "fg"].join("\n"), doc.toString());
|
||||
},
|
||||
|
||||
"test: toggle comment on commented lines should remove leading '//' chars" : function() {
|
||||
var doc = new ace.TextDocument(["// abc", "//cde", "fg"].join("\n"));
|
||||
|
||||
var range = {
|
||||
start: {row: 0, column: 3},
|
||||
end: {row: 1, column: 1}
|
||||
};
|
||||
|
||||
var comment = this.mode.toggleCommentLines(doc, range);
|
||||
assertEquals([" abc", "cde", "fg"].join("\n"), doc.toString());
|
||||
},
|
||||
|
||||
"test: toggle comment on multiple lines with one commented line prepend '//' to each line" : function() {
|
||||
var doc = new ace.TextDocument(["// abc", "//cde", "fg"].join("\n"));
|
||||
|
||||
var range = {
|
||||
start: {row: 0, column: 3},
|
||||
end: {row: 2, column: 1}
|
||||
};
|
||||
|
||||
var comment = this.mode.toggleCommentLines(doc, range);
|
||||
assertEquals(["//// abc", "////cde", "//fg"].join("\n"), doc.toString());
|
||||
}
|
||||
});
|
||||
27
test/mode/XmlTest.js
Normal file
27
test/mode/XmlTest.js
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
var XmlTest = new TestCase("mode.XmlTest", {
|
||||
|
||||
setUp : function() {
|
||||
this.mode = new ace.mode.Xml();
|
||||
},
|
||||
|
||||
"test: getTokenizer() (smoke test)" : function() {
|
||||
var tokenizer = this.mode.getTokenizer();
|
||||
|
||||
assertTrue(tokenizer instanceof ace.Tokenizer);
|
||||
|
||||
var tokens = tokenizer.getLineTokens("<juhu>", "start").tokens;
|
||||
assertEquals("keyword", tokens[1].type);
|
||||
},
|
||||
|
||||
"test: toggle comment lines should not do anything" : function() {
|
||||
var doc = new ace.TextDocument([" abc", "cde", "fg"].join("\n"));
|
||||
|
||||
var range = {
|
||||
start: {row: 0, column: 3},
|
||||
end: {row: 1, column: 1}
|
||||
};
|
||||
|
||||
var comment = this.mode.toggleCommentLines(doc, range);
|
||||
assertEquals([" abc", "cde", "fg"].join("\n"), doc.toString());
|
||||
}
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue