|
From: <caw...@us...> - 2007-03-22 15:59:34
|
Revision: 2210
http://svn.sourceforge.net/rubyeclipse/?rev=2210&view=rev
Author: cawilliams
Date: 2007-03-22 08:59:32 -0700 (Thu, 22 Mar 2007)
Log Message:
-----------
add test and fix for comments who get "discolored" at end. Lines with just spaces in them tend to mess up comment positions before. This should fix the problem...
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-22 15:32:20 UTC (rev 2209)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/RubyTokenScanner.java 2007-03-22 15:59:32 UTC (rev 2210)
@@ -110,8 +110,13 @@
List comments = result.getCommentNodes();
if (comments != null && !comments.isEmpty()) {
CommentNode comment;
+ boolean firstComment = true;
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;
}
fSavedToken = returnValue;
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-22 15:32:20 UTC (rev 2209)
+++ trunk/org.rubypeople.rdt.ui.tests/src/org/rubypeople/rdt/internal/ui/text/ruby/TC_RubyTokenScanner.java 2007-03-22 15:59:32 UTC (rev 2210)
@@ -61,7 +61,7 @@
assertToken(IRubyColorConstants.RUBY_DEFAULT, 5, 6);
assertToken(IRubyColorConstants.RUBY_DEFAULT, 11, 1);
assertToken(IRubyColorConstants.RUBY_KEYWORD, 12, 3);
- assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 15, 10);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 16, 10);
}
public void testCommentAfterEndWhileEditing() {
@@ -76,7 +76,7 @@
"end";
setUpScanner(code, 75, 14);
assertToken(IRubyColorConstants.RUBY_KEYWORD, 75, 5);
- assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 80, 7);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 82, 7);
}
public void testCommentAtEndOfLineWithStringAtBeginning() {
@@ -97,7 +97,19 @@
assertToken(IRubyColorConstants.RUBY_DEFAULT, 19, 3);
assertToken(IRubyColorConstants.RUBY_DEFAULT, 22, 2);
- assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 24, 10);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 25, 10);
}
+ public void testLinesWithJustSpaceBeforeComment() {
+ String code = " \n" +
+ " # comment\n" +
+ " def method\n" +
+ " \n" +
+ " end";
+ setUpScanner(code);
+ assertToken(IRubyColorConstants.RUBY_SINGLE_LINE_COMMENT, 5, 10); // '# comment'
+ assertToken(IRubyColorConstants.RUBY_KEYWORD, 15, 5); // ' def'
+ assertToken(IRubyColorConstants.RUBY_DEFAULT, 20, 7); // ' method'
+ }
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|