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

Unified Diff: pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart

Issue 2566393003: Implement SearchEngine.searchMemberDeclarations() for the new driver. (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/search/search_engine2_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/search/search_engine2_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698