[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Patch fixes an ASM file open/create problem.
|
This patch fixes the following problem:
Not possible to create or open .S (assembler file).
Try causes UnsupportedOperationException.
The problem appeared after replacing of deprecate class RuleBasedScanner to
RuleBasedPartitionScanner.
Index: AsmPartitionScanner.java
===================================================================
RCS file:
/home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/asm/As
mPartitionScanner.java,v
retrieving revision 1.2
diff -u -r1.2 AsmPartitionScanner.java
--- AsmPartitionScanner.java 21 Aug 2002 00:44:37 -0000 1.2
+++ AsmPartitionScanner.java 26 Aug 2002 22:01:52 -0000
@@ -8,12 +8,12 @@
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.jface.text.rules.IRule;
+import org.eclipse.jface.text.rules.ICharacterScanner;
+import org.eclipse.jface.text.rules.IPredicateRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.IWordDetector;
import org.eclipse.jface.text.rules.MultiLineRule;
import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;
-import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.rules.Token;
import org.eclipse.jface.text.rules.WordRule;
@@ -79,8 +79,7 @@
// Add special case word rule.
- WordRule wordRule= new WordRule(new EmptyCommentDetector());
- wordRule.addWord("/**/", comment);
+ EmptyCommentRule wordRule= new EmptyCommentRule(comment);
rules.add(wordRule);
@@ -88,8 +87,36 @@
rules.add(new MultiLineRule("/*", "*/", comment));
- IRule[] result= new IRule[rules.size()];
+ IPredicateRule[] result= new IPredicateRule[rules.size()];
rules.toArray(result);
- setRules(result);
+ setPredicateRules(result);
}
+
+ static class EmptyCommentRule extends WordRule implements IPredicateRule {
+
+ private IToken fSuccessToken;
+ /**
+ * Constructor for EmptyCommentRule.
+ * @param defaultToken
+ */
+ public EmptyCommentRule(IToken successToken) {
+ super(new EmptyCommentDetector());
+ fSuccessToken= successToken;
+ addWord("/**/", fSuccessToken); //$NON-NLS-1$
+ }
+
+ /*
+ * @see IPredicateRule#evaluate(ICharacterScanner, boolean)
+ */
+ public IToken evaluate(ICharacterScanner scanner, boolean resume) {
+ return evaluate(scanner);
+ }
+
+ /*
+ * @see IPredicateRule#getSuccessToken()
+ */
+ public IToken getSuccessToken() {
+ return fSuccessToken;
+ }
+ };
}