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 6f182d813487e9dfbb72823ce03eeff57dff2962..d895218c35aa4f873c043368af6ddf83fbb64121 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 |
@@ -18,6 +18,7 @@ import 'package:analyzer/file_system/file_system.dart'; |
import 'package:analyzer/src/context/context.dart' |
show AnalysisFutureHelper, AnalysisContextImpl; |
import 'package:analyzer/src/generated/ast.dart'; |
+import 'package:analyzer/src/generated/element.dart'; |
import 'package:analyzer/src/generated/engine.dart' hide AnalysisContextImpl; |
import 'package:analyzer/src/generated/source.dart'; |
import 'package:analyzer/src/task/dart.dart'; |
@@ -90,6 +91,19 @@ class DartCompletionRequestImpl extends CompletionRequestImpl |
: super(context, resourceProvider, searchEngine, source, offset); |
@override |
+ Future<LibraryElement> get libraryElement async { |
+ //TODO(danrubel) build the library element rather than all the declarations |
+ CompilationUnit unit = await resolveDeclarationsInScope(); |
+ if (unit != null) { |
+ CompilationUnitElement elem = unit.element; |
+ if (elem != null) { |
+ return elem.library; |
+ } |
+ } |
+ return null; |
+ } |
+ |
+ @override |
CompletionTarget get target { |
if (_target == null) { |
CompilationUnit unit = context.computeResult(source, PARSED_UNIT); |