Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/dart/DartCodeScanner.java

Issue 11362002: Option to disable syntax highlighter and use mostly semantic highlighter. Tests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/dart/DartCodeScanner.java
diff --git a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/dart/DartCodeScanner.java b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/dart/DartCodeScanner.java
index d717164a82e9da4386b70a69b54084cd22f0d294..de844175afa6079dde0f97b0308ec46220b04838 100644
--- a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/dart/DartCodeScanner.java
+++ b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/dart/DartCodeScanner.java
@@ -14,6 +14,7 @@
package com.google.dart.tools.ui.internal.text.dart;
import com.google.dart.compiler.parser.DartParser;
+import com.google.dart.tools.ui.DartUiDebug;
import com.google.dart.tools.ui.DartX;
import com.google.dart.tools.ui.PreferenceConstants;
import com.google.dart.tools.ui.internal.text.editor.SemanticHighlightings;
@@ -27,7 +28,6 @@ import com.google.dart.tools.ui.text.IDartColorConstants;
import static com.google.dart.compiler.parser.Token.AS;
import static com.google.dart.compiler.parser.Token.BREAK;
-import static com.google.dart.compiler.parser.Token.ELLIPSIS;
import static com.google.dart.compiler.parser.Token.IS;
import static com.google.dart.compiler.parser.Token.LIBRARY;
import static com.google.dart.compiler.parser.Token.NATIVE;
@@ -239,18 +239,21 @@ public final class DartCodeScanner extends AbstractDartScanner {
if ((BREAK.ordinal() <= token.ordinal() && token.ordinal() <= WHILE.ordinal())
|| token.ordinal() == AS.ordinal() || token.ordinal() == IS.ordinal()) {
keywords.add(token.getSyntax());
- } else if ((LIBRARY.ordinal() <= token.ordinal()) && (token.ordinal() <= NATIVE.ordinal())) {
- String name = token.getSyntax();
- directives.add(name.substring(1));
}
- if (token.isBinaryOperator() || token.isUnaryOperator()
- || token.ordinal() == ELLIPSIS.ordinal() && token.ordinal() != AS.ordinal()
- && token.ordinal() != IS.ordinal()) {
+ if (!DartUiDebug.USE_ONLY_SEMANTIC_HIGHLIGHTER) {
+ if ((LIBRARY.ordinal() <= token.ordinal()) && (token.ordinal() <= NATIVE.ordinal())) {
+ String name = token.getSyntax();
+ directives.add(name.substring(1));
+ }
+ }
+ if (token.isBinaryOperator() || token.isUnaryOperator()) {
operators.add(token.getSyntax());
}
}
- for (String kw : DartParser.PSEUDO_KEYWORDS) {
- keywords.add(kw);
+ if (!DartUiDebug.USE_ONLY_SEMANTIC_HIGHLIGHTER) {
+ for (String kw : DartParser.PSEUDO_KEYWORDS) {
+ keywords.add(kw);
+ }
}
DIRECTIVES = directives.toArray(new String[directives.size()]);
KEYWORDS = keywords.toArray(new String[keywords.size()]);
@@ -298,10 +301,13 @@ public final class DartCodeScanner extends AbstractDartScanner {
protected List<IRule> createRules() {
List<IRule> rules = new ArrayList<IRule>();
+ Token token;
// Add rule for character constants.
- Token token = getToken(IDartColorConstants.JAVA_STRING);
- rules.add(new SingleLineRule("'", "'", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
+ if (!DartUiDebug.USE_ONLY_SEMANTIC_HIGHLIGHTER) {
+ token = getToken(IDartColorConstants.JAVA_STRING);
+ rules.add(new SingleLineRule("'", "'", token, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
+ }
// Add generic whitespace rule.
rules.add(new WhitespaceRule(new DartWhitespaceDetector()));
@@ -320,10 +326,12 @@ public final class DartCodeScanner extends AbstractDartScanner {
rules.add(new BracketRule(token));
// Add word rule for keyword 'return'.
- CombinedWordRule.WordMatcher returnWordRule = new CombinedWordRule.WordMatcher();
- token = getToken(IDartColorConstants.JAVA_KEYWORD_RETURN);
- returnWordRule.addWord(RETURN, token);
- combinedWordRule.addWordMatcher(returnWordRule);
+ if (!DartUiDebug.USE_ONLY_SEMANTIC_HIGHLIGHTER) {
+ CombinedWordRule.WordMatcher returnWordRule = new CombinedWordRule.WordMatcher();
+ token = getToken(IDartColorConstants.JAVA_KEYWORD_RETURN);
+ returnWordRule.addWord(RETURN, token);
+ combinedWordRule.addWordMatcher(returnWordRule);
+ }
// Add word rule for keywords and constants.
CombinedWordRule.WordMatcher wordRule = new CombinedWordRule.WordMatcher();
@@ -334,10 +342,12 @@ public final class DartCodeScanner extends AbstractDartScanner {
for (int i = 0; i < fgConstants.length; i++) {
wordRule.addWord(fgConstants[i], token);
}
- for (int i = 0; i < DIRECTIVES.length; i++) {
- rules.add(new DirectiveRule(DIRECTIVES[i], token));
+ if (!DartUiDebug.USE_ONLY_SEMANTIC_HIGHLIGHTER) {
+ for (int i = 0; i < DIRECTIVES.length; i++) {
+ rules.add(new DirectiveRule(DIRECTIVES[i], token));
+ }
+ rules.add(new DirectiveRule("!", token));
}
- rules.add(new DirectiveRule("!", token));
combinedWordRule.addWordMatcher(wordRule);

Powered by Google App Engine
This is Rietveld 408576698