Chromium Code Reviews| 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/computer/element.dart' as se; | 10 import 'package:analysis_server/src/computer/element.dart' as se; |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 130 | 130 |
| 131 /** | 131 /** |
| 132 * Implement the `search.getTypeHierarchy` request. | 132 * Implement the `search.getTypeHierarchy` request. |
| 133 */ | 133 */ |
| 134 Response getTypeHierarchy(Request request) { | 134 Response getTypeHierarchy(Request request) { |
| 135 // prepare parameters | 135 // prepare parameters |
| 136 String file = request.getRequiredParameter(FILE).asString(); | 136 String file = request.getRequiredParameter(FILE).asString(); |
| 137 int offset = request.getRequiredParameter(OFFSET).asInt(); | 137 int offset = request.getRequiredParameter(OFFSET).asInt(); |
| 138 // prepare Element | 138 // prepare Element |
| 139 List<Element> elements = server.getElementsAtOffset(file, offset); | 139 List<Element> elements = server.getElementsAtOffset(file, offset); |
| 140 Response response = new Response(request.id); | |
| 140 if (elements.isEmpty) { | 141 if (elements.isEmpty) { |
| 141 return new Response(request.id); | 142 response.setEmptyResult(); |
|
scheglov
2014/08/08 18:40:33
I don't understand why we do this.
The field shoul
Paul Berry
2014/08/08 19:23:04
Without this call the response message would be
| |
| 143 return response; | |
| 142 } | 144 } |
| 143 Element element = elements.first; | 145 Element element = elements.first; |
| 144 // prepare type hierarchy | 146 // prepare type hierarchy |
| 145 TypeHierarchyComputer computer = new TypeHierarchyComputer(searchEngine); | 147 TypeHierarchyComputer computer = new TypeHierarchyComputer(searchEngine); |
| 146 computer.compute(element).then((List<TypeHierarchyItem> items) { | 148 computer.compute(element).then((List<TypeHierarchyItem> items) { |
| 147 Response response = new Response(request.id); | 149 if (items != null) { |
| 148 response.setResult(HIERARCHY_ITEMS, objectToJson(items)); | 150 response.setResult(HIERARCHY_ITEMS, objectToJson(items)); |
| 151 } else { | |
| 152 response.setEmptyResult(); | |
|
scheglov
2014/08/08 18:40:33
Same here.
| |
| 153 } | |
| 149 server.sendResponse(response); | 154 server.sendResponse(response); |
| 150 }); | 155 }); |
| 151 // delay response | 156 // delay response |
| 152 return Response.DELAYED_RESPONSE; | 157 return Response.DELAYED_RESPONSE; |
| 153 } | 158 } |
| 154 | 159 |
| 155 @override | 160 @override |
| 156 Response handleRequest(Request request) { | 161 Response handleRequest(Request request) { |
| 157 try { | 162 try { |
| 158 String requestName = request.method; | 163 String requestName = request.method; |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 179 notification.setParameter(ID, searchId); | 184 notification.setParameter(ID, searchId); |
| 180 notification.setParameter(LAST, isLast); | 185 notification.setParameter(LAST, isLast); |
| 181 notification.setParameter(RESULTS, results); | 186 notification.setParameter(RESULTS, results); |
| 182 server.sendNotification(notification); | 187 server.sendNotification(notification); |
| 183 } | 188 } |
| 184 | 189 |
| 185 static SearchResult toResult(SearchMatch match) { | 190 static SearchResult toResult(SearchMatch match) { |
| 186 return new SearchResult.fromMatch(match); | 191 return new SearchResult.fromMatch(match); |
| 187 } | 192 } |
| 188 } | 193 } |
| OLD | NEW |