|
From: <caw...@us...> - 2007-03-29 14:59:03
|
Revision: 2238
http://svn.sourceforge.net/rubyeclipse/?rev=2238&view=rev
Author: cawilliams
Date: 2007-03-29 07:59:01 -0700 (Thu, 29 Mar 2007)
Log Message:
-----------
add test and fix for consecutive single line comments who had a lot of preceding spaces. The preceding whitespace wasn't take into account before, so the end of the comments would inherit the next token's coloring.
Modified Paths:
--------------
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java
trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java 2007-03-28 20:45:47 UTC (rev 2237)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java 2007-03-29 14:59:01 UTC (rev 2238)
@@ -111,14 +111,16 @@
if (comments != null && !comments.isEmpty()) {
CommentNode comment;
boolean firstComment = true;
+ int endOffset = 0;
while (!comments.isEmpty()) {
comment = (CommentNode) comments.remove(0);
if (firstComment) {
firstComment = false;
oldOffset = origOffset + comment.getPosition().getStartOffset(); // correct start offset, since when a line with nothing but spaces on it appears before comment, we get messed up positions
}
- tokenLength += comment.getContent().length() + 1;
+ endOffset = origOffset + comment.getPosition().getEndOffset();
}
+ tokenLength = endOffset - oldOffset;
fSavedToken = returnValue;
fSavedOffset = oldOffset + tokenLength;
if (!isEOF) {
Modified: trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java
===================================================================
--- trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java 2007-03-28 20:45:47 UTC (rev 2237)
+++ trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java 2007-03-29 14:59:01 UTC (rev 2238)
@@ -47,21 +47,21 @@
public void testMultipleCommentsInARow() {
String code = "# comment one\n#comment two\nclass Chris\nend\n";
setUpScanner(code);
- assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 0, 27);
- assertToken(IRubyColorConstants.RUBY_KEYWORD, 27, 5);
- assertToken(IRubyColorConstants.RUBY_DEFAULT, 32, 6);
- assertToken(IRubyColorConstants.RUBY_DEFAULT, 38, 1);
- assertToken(IRubyColorConstants.RUBY_KEYWORD, 39, 3);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 0, 26);
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 26, 6); // '\nclass'
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 32, 6); // ' Chris'
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 38, 1); // '\n'
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 39, 3); // 'end'
}
public void testCommentAfterEnd() {
String code = "class Chris\nend # comment\n";
setUpScanner(code);
- assertToken(IRubyColorConstants.RUBY_KEYWORD, 0, 5);
- assertToken(IRubyColorConstants.RUBY_DEFAULT, 5, 6);
- assertToken(IRubyColorConstants.RUBY_DEFAULT, 11, 1);
- assertToken(IRubyColorConstants.RUBY_KEYWORD, 12, 3);
- assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 16, 10);
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 0, 5); // 'class'
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 5, 6); // ' Chris'
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 11, 1); // '\n'
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 12, 3); // 'end'
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 16, 9); // '# comment'
}
public void testCommentAfterEndWhileEditing() {
@@ -75,8 +75,8 @@
" end #ocmm \r\n" +
"end";
setUpScanner(code, 75, 14);
- assertToken(IRubyColorConstants.RUBY_KEYWORD, 75, 5);
- assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 82, 7);
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 75, 5); // ' end'
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 82, 5); // '#ocmm'
}
public void testCommentAtEndOfLineWithStringAtBeginning() {
@@ -97,7 +97,7 @@
assertToken(IRubyColorConstants.RUBY_DEFAULT, 19, 3);
assertToken(IRubyColorConstants.RUBY_DEFAULT, 22, 2);
- assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 25, 10);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 25, 9);
}
public void testLinesWithJustSpaceBeforeComment() {
@@ -107,8 +107,8 @@
" \n" +
" end";
setUpScanner(code);
- assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 5, 10); // '# comment'
- assertToken(IRubyColorConstants.RUBY_KEYWORD, 15, 5); // ' def'
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 5, 9); // '# comment'
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 14, 6); // '\n def'
assertToken(IRubyColorConstants.RUBY_DEFAULT, 20, 7); // ' method'
}
@@ -128,7 +128,6 @@
public void testSymbolInsideBrackets() {
String code = "test[:begin]";
-// test[:end] && test[:def] && other_code";
setUpScanner(code);
assertToken(IRubyColorConstants.RUBY_DEFAULT, 0, 4); // 'test'
assertToken(IRubyColorConstants.RUBY_DEFAULT, 4, 1); // '['
@@ -137,4 +136,16 @@
assertToken(IRubyColorConstants.RUBY_DEFAULT, 11, 1); // ']'
}
+ public void testCommentsWithAlotOfPrecedingSpaces() {
+ String code = " # We \n" +
+ " # caller-requested until.\n" +
+ "return self\n";
+ setUpScanner(code);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 16, 47); //
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 63, 7); // 'return'
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 70, 5); // ' self'
+ }
+
+
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|