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

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

Issue 211713002: Issue 17775. Semantic highlighting for function type alias. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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/editor/SemanticHighlightings.java
diff --git a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/editor/SemanticHighlightings.java b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/editor/SemanticHighlightings.java
index 34724a520dc3d7def1e21114152776a81c26a7e8..72bd493985e1f64f33f09eec88cf635566dcf52b 100644
--- a/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/editor/SemanticHighlightings.java
+++ b/editor/tools/plugins/com.google.dart.tools.ui/src/com/google/dart/tools/ui/internal/text/editor/SemanticHighlightings.java
@@ -14,10 +14,10 @@
package com.google.dart.tools.ui.internal.text.editor;
import com.google.common.collect.Lists;
-import com.google.dart.engine.ast.AstNode;
import com.google.dart.engine.ast.Annotation;
import com.google.dart.engine.ast.ArgumentList;
import com.google.dart.engine.ast.AsExpression;
+import com.google.dart.engine.ast.AstNode;
import com.google.dart.engine.ast.CatchClause;
import com.google.dart.engine.ast.ClassDeclaration;
import com.google.dart.engine.ast.Combinator;
@@ -51,6 +51,7 @@ import com.google.dart.engine.element.Element;
import com.google.dart.engine.element.ElementKind;
import com.google.dart.engine.element.FieldFormalParameterElement;
import com.google.dart.engine.element.FunctionElement;
+import com.google.dart.engine.element.FunctionTypeAliasElement;
import com.google.dart.engine.element.ImportElement;
import com.google.dart.engine.element.LibraryElement;
import com.google.dart.engine.element.MethodElement;
@@ -413,13 +414,6 @@ public class SemanticHighlightings {
return false;
}
- protected List<SourceRange> addPosition(List<SourceRange> positions, AstNode node) {
- if (node != null) {
- return addPosition(positions, rangeNode(node));
- }
- return positions;
- }
-
protected List<SourceRange> addPosition(List<SourceRange> positions, SourceRange range) {
if (positions == null) {
positions = Lists.newArrayList();
@@ -670,6 +664,29 @@ public class SemanticHighlightings {
}
}
+ private static class FunctionTypeAliasHighlighting extends DefaultSemanticHighlighting {
+ @Override
+ public boolean consumesIdentifier(SemanticToken token) {
+ SimpleIdentifier node = token.getNodeIdentifier();
+ return node.getStaticElement() instanceof FunctionTypeAliasElement;
+ }
+
+ @Override
+ public String getDisplayName() {
+ return DartEditorMessages.SemanticHighlighting_functionTypeAlias;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return FUNCTION_TYPE_ALIAS;
+ }
+
+ @Override
+ public boolean isEnabledByDefault() {
+ return true;
+ }
+ }
+
private static class GetterDeclarationHighlighting extends MethodDeclarationHighlighting {
@Override
public boolean consumes(SemanticToken token) {
@@ -1216,6 +1233,11 @@ public class SemanticHighlightings {
public static final String CLASS = "class"; //$NON-NLS-1$
/**
+ * A named preference part that controls the highlighting of function type aliases (typedefs).
+ */
+ public static final String FUNCTION_TYPE_ALIAS = "functionTypeAlias"; //$NON-NLS-1$
+
+ /**
* A named preference part that controls the highlighting of import prefix.
*/
public static final String IMPORT_PREFIX = "importPrefix"; //$NON-NLS-1$
@@ -1343,7 +1365,8 @@ public class SemanticHighlightings {
new DeprecatedElementHighlighting(), new GetterDeclarationHighlighting(),
new SetterDeclarationHighlighting(), new AnnotationHighlighting(),
new StaticFieldHighlighting(), new FieldHighlighting(), new DynamicTypeHighlighting(),
- new ClassHighlighting(), new TypeVariableHighlighting(), new NumberHighlighting(),
+ new ClassHighlighting(), new FunctionTypeAliasHighlighting(),
+ new TypeVariableHighlighting(), new NumberHighlighting(),
new LocalVariableDeclarationHighlighting(), new LocalVariableHighlighting(),
new ParameterHighlighting(), new StaticMethodDeclarationHighlighting(),
new StaticMethodHighlighting(), new ConstructorHighlighting(),

Powered by Google App Engine
This is Rietveld 408576698