| Index: pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart b/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
|
| index 5d740f8eaf158d710996069f940d4938e7a2b9fc..6a09cd9b4306b6b8821567d97d66614ded422828 100644
|
| --- a/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
|
| +++ b/pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart
|
| @@ -38,8 +38,13 @@ class SearchEngineImpl2 implements SearchEngine {
|
|
|
| @override
|
| Future<List<SearchMatch>> searchMemberDeclarations(String name) async {
|
| - // TODO(scheglov) implement
|
| - return [];
|
| + List<SearchMatch> allDeclarations = [];
|
| + RegExp regExp = new RegExp('^$name\$');
|
| + for (AnalysisDriver driver in _drivers) {
|
| + List<Element> elements = await driver.search.classMembers(regExp);
|
| + allDeclarations.addAll(elements.map(_SearchMatch.forElement));
|
| + }
|
| + return allDeclarations;
|
| }
|
|
|
| @override
|
| @@ -70,18 +75,7 @@ class SearchEngineImpl2 implements SearchEngine {
|
| RegExp regExp = new RegExp(pattern);
|
| for (AnalysisDriver driver in _drivers) {
|
| List<Element> elements = await driver.search.topLevelElements(regExp);
|
| - for (Element element in elements) {
|
| - allDeclarations.add(new _SearchMatch(
|
| - element.source.fullName,
|
| - element.librarySource,
|
| - element.source,
|
| - element.library,
|
| - element,
|
| - true,
|
| - true,
|
| - MatchKind.DECLARATION,
|
| - new SourceRange(element.nameOffset, element.nameLength)));
|
| - }
|
| + allDeclarations.addAll(elements.map(_SearchMatch.forElement));
|
| }
|
| return allDeclarations;
|
| }
|
| @@ -168,6 +162,19 @@ class _SearchMatch implements SearchMatch {
|
| new SourceRange(result.offset, result.length));
|
| }
|
|
|
| + static _SearchMatch forElement(Element element) {
|
| + return new _SearchMatch(
|
| + element.source.fullName,
|
| + element.librarySource,
|
| + element.source,
|
| + element.library,
|
| + element,
|
| + true,
|
| + true,
|
| + MatchKind.DECLARATION,
|
| + new SourceRange(element.nameOffset, element.nameLength));
|
| + }
|
| +
|
| static MatchKind toMatchKind(SearchResultKind kind) {
|
| if (kind == SearchResultKind.READ) {
|
| return MatchKind.READ;
|
|
|