|
From: <caw...@us...> - 2007-09-18 14:21:03
|
Revision: 3210
http://rubyeclipse.svn.sourceforge.net/rubyeclipse/?rev=3210&view=rev
Author: cawilliams
Date: 2007-09-18 07:20:52 -0700 (Tue, 18 Sep 2007)
Log Message:
-----------
add test and fix for #6052 - Ruby Editor goes crazy opening an unclosed multiline comment in middle of file
Modified Paths:
--------------
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/RubyPartitionScanner.java
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/RubyPartitionScanner.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/RubyPartitionScanner.java 2007-09-18 13:53:37 UTC (rev 3209)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/RubyPartitionScanner.java 2007-09-18 14:20:52 UTC (rev 3210)
@@ -190,13 +190,15 @@
int start = se.getPosition().getStartOffset();
int length = fContents.length() - start;
QueuedToken qtoken = new QueuedToken(new Token(RUBY_MULTI_LINE_COMMENT), start, length);
- RubyPartitionScanner scanner = new RubyPartitionScanner();
- String possible = fContents.substring(0, se.getPosition().getStartOffset());
- IDocument document = new Document(possible);
- scanner.setRange(document, 0, possible.length());
- IToken token;
- while (!(token = scanner.nextToken()).isEOF()) {
- push(new QueuedToken(token, scanner.getTokenOffset() + fOffset, scanner.getTokenLength()));
+ if (fOffset == 0) { // If we never got to read in beginning contents
+ RubyPartitionScanner scanner = new RubyPartitionScanner();
+ String possible = fContents.substring(0, se.getPosition().getStartOffset());
+ IDocument document = new Document(possible);
+ scanner.setRange(document, 0, possible.length());
+ IToken token;
+ while (!(token = scanner.nextToken()).isEOF()) {
+ push(new QueuedToken(token, scanner.getTokenOffset() + fOffset, scanner.getTokenLength()));
+ }
}
push(qtoken);
push(new QueuedToken(Token.EOF, start + length, 0));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|