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 search.domain; | 5 library search.domain; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:analysis_server/src/analysis_server.dart'; | 9 import 'package:analysis_server/src/analysis_server.dart'; |
10 import 'package:analysis_server/src/constants.dart'; | 10 import 'package:analysis_server/src/constants.dart'; |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 var params = | 91 var params = |
92 new protocol.SearchFindMemberDeclarationsParams.fromRequest(request); | 92 new protocol.SearchFindMemberDeclarationsParams.fromRequest(request); |
93 await server.onAnalysisComplete; | 93 await server.onAnalysisComplete; |
94 // respond | 94 // respond |
95 String searchId = (_nextSearchId++).toString(); | 95 String searchId = (_nextSearchId++).toString(); |
96 _sendSearchResult( | 96 _sendSearchResult( |
97 request, new protocol.SearchFindMemberDeclarationsResult(searchId)); | 97 request, new protocol.SearchFindMemberDeclarationsResult(searchId)); |
98 // search | 98 // search |
99 List<SearchMatch> matches = | 99 List<SearchMatch> matches = |
100 await searchEngine.searchMemberDeclarations(params.name); | 100 await searchEngine.searchMemberDeclarations(params.name); |
| 101 matches = SearchMatch.withNotNullElement(matches); |
101 _sendSearchNotification(searchId, true, matches.map(toResult)); | 102 _sendSearchNotification(searchId, true, matches.map(toResult)); |
102 } | 103 } |
103 | 104 |
104 Future findMemberReferences(protocol.Request request) async { | 105 Future findMemberReferences(protocol.Request request) async { |
105 var params = | 106 var params = |
106 new protocol.SearchFindMemberReferencesParams.fromRequest(request); | 107 new protocol.SearchFindMemberReferencesParams.fromRequest(request); |
107 await server.onAnalysisComplete; | 108 await server.onAnalysisComplete; |
108 // respond | 109 // respond |
109 String searchId = (_nextSearchId++).toString(); | 110 String searchId = (_nextSearchId++).toString(); |
110 _sendSearchResult( | 111 _sendSearchResult( |
111 request, new protocol.SearchFindMemberReferencesResult(searchId)); | 112 request, new protocol.SearchFindMemberReferencesResult(searchId)); |
112 // search | 113 // search |
113 List<SearchMatch> matches = | 114 List<SearchMatch> matches = |
114 await searchEngine.searchMemberReferences(params.name); | 115 await searchEngine.searchMemberReferences(params.name); |
| 116 matches = SearchMatch.withNotNullElement(matches); |
115 _sendSearchNotification(searchId, true, matches.map(toResult)); | 117 _sendSearchNotification(searchId, true, matches.map(toResult)); |
116 } | 118 } |
117 | 119 |
118 Future findTopLevelDeclarations(protocol.Request request) async { | 120 Future findTopLevelDeclarations(protocol.Request request) async { |
119 var params = | 121 var params = |
120 new protocol.SearchFindTopLevelDeclarationsParams.fromRequest(request); | 122 new protocol.SearchFindTopLevelDeclarationsParams.fromRequest(request); |
121 try { | 123 try { |
122 // validate the regex | 124 // validate the regex |
123 new RegExp(params.pattern); | 125 new RegExp(params.pattern); |
124 } on FormatException catch (exception) { | 126 } on FormatException catch (exception) { |
125 server.sendResponse(new protocol.Response.invalidParameter( | 127 server.sendResponse(new protocol.Response.invalidParameter( |
126 request, 'pattern', exception.message)); | 128 request, 'pattern', exception.message)); |
127 return; | 129 return; |
128 } | 130 } |
129 | 131 |
130 await server.onAnalysisComplete; | 132 await server.onAnalysisComplete; |
131 // respond | 133 // respond |
132 String searchId = (_nextSearchId++).toString(); | 134 String searchId = (_nextSearchId++).toString(); |
133 _sendSearchResult( | 135 _sendSearchResult( |
134 request, new protocol.SearchFindTopLevelDeclarationsResult(searchId)); | 136 request, new protocol.SearchFindTopLevelDeclarationsResult(searchId)); |
135 // search | 137 // search |
136 List<SearchMatch> matches = | 138 List<SearchMatch> matches = |
137 await searchEngine.searchTopLevelDeclarations(params.pattern); | 139 await searchEngine.searchTopLevelDeclarations(params.pattern); |
| 140 matches = SearchMatch.withNotNullElement(matches); |
138 _sendSearchNotification(searchId, true, matches.map(toResult)); | 141 _sendSearchNotification(searchId, true, matches.map(toResult)); |
139 } | 142 } |
140 | 143 |
141 /** | 144 /** |
142 * Implement the `search.getTypeHierarchy` request. | 145 * Implement the `search.getTypeHierarchy` request. |
143 */ | 146 */ |
144 Future getTypeHierarchy(protocol.Request request) async { | 147 Future getTypeHierarchy(protocol.Request request) async { |
145 var params = new protocol.SearchGetTypeHierarchyParams.fromRequest(request); | 148 var params = new protocol.SearchGetTypeHierarchyParams.fromRequest(request); |
146 String file = params.file; | 149 String file = params.file; |
147 // wait for analysis | 150 // wait for analysis |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 void _sendTypeHierarchyNull(protocol.Request request) { | 228 void _sendTypeHierarchyNull(protocol.Request request) { |
226 protocol.Response response = | 229 protocol.Response response = |
227 new protocol.SearchGetTypeHierarchyResult().toResponse(request.id); | 230 new protocol.SearchGetTypeHierarchyResult().toResponse(request.id); |
228 server.sendResponse(response); | 231 server.sendResponse(response); |
229 } | 232 } |
230 | 233 |
231 static protocol.SearchResult toResult(SearchMatch match) { | 234 static protocol.SearchResult toResult(SearchMatch match) { |
232 return protocol.newSearchResult_fromMatch(match); | 235 return protocol.newSearchResult_fromMatch(match); |
233 } | 236 } |
234 } | 237 } |
OLD | NEW |