OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library services.completion.contributor.dart.inherited_ref; | |
6 | |
7 import 'dart:async'; | 5 import 'dart:async'; |
8 | 6 |
9 import 'package:analysis_server/src/ide_options.dart'; | 7 import 'package:analysis_server/src/ide_options.dart'; |
10 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
dart'; | 8 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
dart'; |
11 import 'package:analysis_server/src/provisional/completion/dart/completion_targe
t.dart'; | 9 import 'package:analysis_server/src/provisional/completion/dart/completion_targe
t.dart'; |
12 import 'package:analysis_server/src/services/completion/dart/optype.dart'; | 10 import 'package:analysis_server/src/services/completion/dart/optype.dart'; |
13 import 'package:analysis_server/src/services/completion/dart/suggestion_builder.
dart'; | 11 import 'package:analysis_server/src/services/completion/dart/suggestion_builder.
dart'; |
14 import 'package:analyzer/dart/ast/ast.dart'; | 12 import 'package:analyzer/dart/ast/ast.dart'; |
15 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; | 13 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; |
16 import 'package:analyzer/dart/element/element.dart'; | 14 import 'package:analyzer/dart/element/element.dart'; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 | 63 |
66 ClassDeclaration classDecl = _enclosingClass(request.target); | 64 ClassDeclaration classDecl = _enclosingClass(request.target); |
67 if (classDecl == null || classDecl.element == null) { | 65 if (classDecl == null || classDecl.element == null) { |
68 return EMPTY_LIST; | 66 return EMPTY_LIST; |
69 } | 67 } |
70 containingLibrary = request.libraryElement; | 68 containingLibrary = request.libraryElement; |
71 return _computeSuggestionsForClass2( | 69 return _computeSuggestionsForClass2( |
72 resolutionMap.elementDeclaredByClassDeclaration(classDecl), request); | 70 resolutionMap.elementDeclaredByClassDeclaration(classDecl), request); |
73 } | 71 } |
74 | 72 |
75 List<CompletionSuggestion> _computeSuggestionsForClass2( | |
76 ClassElement classElement, DartCompletionRequest request, | |
77 {bool skipChildClass: true}) { | |
78 bool isFunctionalArgument = request.target.isFunctionalArgument(); | |
79 kind = isFunctionalArgument | |
80 ? CompletionSuggestionKind.IDENTIFIER | |
81 : CompletionSuggestionKind.INVOCATION; | |
82 OpType optype = request.opType; | |
83 | |
84 if (!skipChildClass) { | |
85 _addSuggestionsForType(classElement.type, optype, request.ideOptions, | |
86 isFunctionalArgument: isFunctionalArgument); | |
87 } | |
88 | |
89 for (InterfaceType type in classElement.allSupertypes) { | |
90 _addSuggestionsForType(type, optype, request.ideOptions, | |
91 isFunctionalArgument: isFunctionalArgument); | |
92 } | |
93 return suggestions; | |
94 } | |
95 | |
96 List<CompletionSuggestion> computeSuggestionsForClass( | 73 List<CompletionSuggestion> computeSuggestionsForClass( |
97 ClassElement classElement, DartCompletionRequest request, | 74 ClassElement classElement, DartCompletionRequest request, |
98 {bool skipChildClass: true}) { | 75 {bool skipChildClass: true}) { |
99 if (!request.includeIdentifiers) { | 76 if (!request.includeIdentifiers) { |
100 return EMPTY_LIST; | 77 return EMPTY_LIST; |
101 } | 78 } |
102 containingLibrary = request.libraryElement; | 79 containingLibrary = request.libraryElement; |
103 | 80 |
104 return _computeSuggestionsForClass2(classElement, request, | 81 return _computeSuggestionsForClass2(classElement, request, |
105 skipChildClass: skipChildClass); | 82 skipChildClass: skipChildClass); |
(...skipping 22 matching lines...) Expand all Loading... |
128 if (optype.includeReturnValueSuggestions) { | 105 if (optype.includeReturnValueSuggestions) { |
129 addSuggestion(elem, ideOptions); | 106 addSuggestion(elem, ideOptions); |
130 } | 107 } |
131 } else { | 108 } else { |
132 if (optype.includeVoidReturnSuggestions) { | 109 if (optype.includeVoidReturnSuggestions) { |
133 addSuggestion(elem, ideOptions); | 110 addSuggestion(elem, ideOptions); |
134 } | 111 } |
135 } | 112 } |
136 } | 113 } |
137 } | 114 } |
| 115 |
| 116 List<CompletionSuggestion> _computeSuggestionsForClass2( |
| 117 ClassElement classElement, DartCompletionRequest request, |
| 118 {bool skipChildClass: true}) { |
| 119 bool isFunctionalArgument = request.target.isFunctionalArgument(); |
| 120 kind = isFunctionalArgument |
| 121 ? CompletionSuggestionKind.IDENTIFIER |
| 122 : CompletionSuggestionKind.INVOCATION; |
| 123 OpType optype = request.opType; |
| 124 |
| 125 if (!skipChildClass) { |
| 126 _addSuggestionsForType(classElement.type, optype, request.ideOptions, |
| 127 isFunctionalArgument: isFunctionalArgument); |
| 128 } |
| 129 |
| 130 for (InterfaceType type in classElement.allSupertypes) { |
| 131 _addSuggestionsForType(type, optype, request.ideOptions, |
| 132 isFunctionalArgument: isFunctionalArgument); |
| 133 } |
| 134 return suggestions; |
| 135 } |
138 } | 136 } |
OLD | NEW |