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

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

Issue 1770953002: Implement searchMemberDeclarations() / searchTopLevelDeclarations(). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 months 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
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 9ae8a0a68f1198fdbe090b4c59e00ae751f46c26..4411118dbe65799e1020f4cc032a144c48432340 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
@@ -34,9 +34,8 @@ class SearchEngineImpl2 implements SearchEngine {
}
@override
- Future<List<SearchMatch>> searchMemberDeclarations(String name) {
- // TODO: implement searchMemberDeclarations
- throw new UnimplementedError();
+ Future<List<SearchMatch>> searchMemberDeclarations(String pattern) {
+ return _searchDefinedNames(pattern, IndexNameKind.classMember);
}
@override
@@ -88,23 +87,34 @@ class SearchEngineImpl2 implements SearchEngine {
@override
Future<List<SearchMatch>> searchTopLevelDeclarations(String pattern) {
- // TODO: implement searchTopLevelDeclarations
- throw new UnimplementedError();
+ return _searchDefinedNames(pattern, IndexNameKind.topLevel);
}
_addMatches(List<SearchMatch> matches, Element element,
IndexRelationKind relationKind, MatchKind kind) async {
List<Location> locations = await _index.getRelations(element, relationKind);
for (Location location in locations) {
- matches.add(new SearchMatch(
+ matches.add(_newMatchForLocation(location, kind));
+ }
+ }
+
+ SearchMatch _newMatchForLocation(Location location, MatchKind kind) =>
+ new SearchMatch(
context,
location.libraryUri,
location.unitUri,
kind,
new SourceRange(location.offset, location.length),
true,
- location.isQualified));
- }
+ location.isQualified);
+
+ Future<List<SearchMatch>> _searchDefinedNames(
+ String pattern, IndexNameKind nameKind) async {
+ RegExp regExp = new RegExp(pattern);
+ List<Location> locations = await _index.getDefinedNames(regExp, nameKind);
+ return locations.map((location) {
+ return _newMatchForLocation(location, MatchKind.DECLARATION);
+ }).toList();
}
Future<List<SearchMatch>> _searchReferences(Element element) async {
« no previous file with comments | « pkg/analysis_server/lib/src/services/index2/index2.dart ('k') | pkg/analysis_server/test/services/index2/index2_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698