Index: pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart |
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart |
index eb8a712844c3c222406ba9be02edaf596d3c74c1..a635b8cd76d4e0c0c120a3cfb1439cd32328476c 100644 |
--- a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart |
+++ b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart |
@@ -23,6 +23,7 @@ import 'package:analyzer/src/generated/engine.dart' hide AnalysisContextImpl; |
import 'package:analyzer/src/generated/source.dart'; |
import 'package:analyzer/src/task/dart.dart'; |
import 'package:analyzer/task/dart.dart'; |
+import 'package:analysis_server/src/services/completion/optype.dart'; |
/** |
* [DartCompletionManager] determines if a completion request is Dart specific |
@@ -111,10 +112,24 @@ class DartCompletionRequestImpl extends CompletionRequestImpl |
@override |
Source librarySource; |
+ OpType _opType; |
+ |
@override |
CompletionTarget target; |
@override |
+ bool get includeIdentifiers { |
+ if (_opType == null) { |
+ _opType = new OpType.forCompletion(target, offset); |
+ } |
+ return !_opType.isPrefixed && |
+ (_opType.includeReturnValueSuggestions || |
+ _opType.includeTypeNameSuggestions || |
+ _opType.includeVoidReturnSuggestions || |
+ _opType.includeConstructorSuggestions); |
+ } |
+ |
+ @override |
LibraryElement get libraryElement { |
//TODO(danrubel) build the library element rather than all the declarations |
CompilationUnit unit = target.unit; |
@@ -190,6 +205,7 @@ class DartCompletionRequestImpl extends CompletionRequestImpl |
* Update the completion [target] and [dotTarget] based on the given [unit]. |
*/ |
void _updateTargets(CompilationUnit unit) { |
+ _opType = null; |
dotTarget = null; |
target = new CompletionTarget.forOffset(unit, offset); |
AstNode node = target.containingNode; |