| 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 domain.edit; | 5 library domain.edit; |
| 6 | 6 |
| 7 import 'package:analyzer/src/generated/error.dart'; | |
| 8 import 'package:analysis_server/src/analysis_server.dart'; | 7 import 'package:analysis_server/src/analysis_server.dart'; |
| 9 import 'package:analysis_server/src/constants.dart'; | 8 import 'package:analysis_server/src/constants.dart'; |
| 10 import 'package:analysis_server/src/protocol.dart'; | 9 import 'package:analysis_server/src/protocol.dart'; |
| 11 | 10 |
| 12 /** | 11 /** |
| 13 * Instances of the class [EditDomainHandler] implement a [RequestHandler] | 12 * Instances of the class [EditDomainHandler] implement a [RequestHandler] |
| 14 * that handles requests in the edit domain. | 13 * that handles requests in the edit domain. |
| 15 */ | 14 */ |
| 16 class EditDomainHandler implements RequestHandler { | 15 class EditDomainHandler implements RequestHandler { |
| 17 /** | 16 /** |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 // length | 91 // length |
| 93 RequestDatum lengthDatum = request.getRequiredParameter(LENGTH); | 92 RequestDatum lengthDatum = request.getRequiredParameter(LENGTH); |
| 94 int length = lengthDatum.asInt(); | 93 int length = lengthDatum.asInt(); |
| 95 // TODO(brianwilkerson) implement | 94 // TODO(brianwilkerson) implement |
| 96 return null; | 95 return null; |
| 97 } | 96 } |
| 98 | 97 |
| 99 Response getFixes(Request request) { | 98 Response getFixes(Request request) { |
| 100 // errors | 99 // errors |
| 101 RequestDatum errorsDatum = request.getRequiredParameter(ERRORS); | 100 RequestDatum errorsDatum = request.getRequiredParameter(ERRORS); |
| 102 List<AnalysisError> errors = errorsDatum.asList((RequestDatum datum) { | 101 // TODO(paulberry): the API for edit.getFixes should be changed to so that |
| 103 return _createAnalysisError(request, datum); | 102 // it doesn't use AnalysisError as an input type. This is necessary |
| 104 }); | 103 // because the JSON protocol for an AnalysisError doesn't contain the |
| 104 // errorCode, so we don't have enough information to reconstitute the error |
| 105 // object. |
| 106 // List<AnalysisError> errors = errorsDatum.asList((RequestDatum datum) { |
| 107 // return _createAnalysisError(request, datum); |
| 108 // }); |
| 109 |
| 105 // TODO(brianwilkerson) implement | 110 // TODO(brianwilkerson) implement |
| 106 return null; | 111 return null; |
| 107 } | 112 } |
| 108 | 113 |
| 109 Response getRefactorings(Request request) { | 114 Response getRefactorings(Request request) { |
| 110 // file | 115 // file |
| 111 RequestDatum fileDatum = request.getRequiredParameter(FILE); | 116 RequestDatum fileDatum = request.getRequiredParameter(FILE); |
| 112 String file = fileDatum.asString(); | 117 String file = fileDatum.asString(); |
| 113 // offset | 118 // offset |
| 114 RequestDatum offsetDatum = request.getRequiredParameter(OFFSET); | 119 RequestDatum offsetDatum = request.getRequiredParameter(OFFSET); |
| 115 int offset = offsetDatum.asInt(); | 120 int offset = offsetDatum.asInt(); |
| 116 // length | 121 // length |
| 117 RequestDatum lengthDatum = request.getRequiredParameter(LENGTH); | 122 RequestDatum lengthDatum = request.getRequiredParameter(LENGTH); |
| 118 int length = lengthDatum.asInt(); | 123 int length = lengthDatum.asInt(); |
| 119 // TODO(brianwilkerson) implement | 124 // TODO(brianwilkerson) implement |
| 120 return null; | 125 return null; |
| 121 } | 126 } |
| 122 | 127 |
| 123 Response setRefactoringOptions(Request request) { | 128 Response setRefactoringOptions(Request request) { |
| 124 // id | 129 // id |
| 125 RequestDatum idDatum = request.getRequiredParameter(ID); | 130 RequestDatum idDatum = request.getRequiredParameter(ID); |
| 126 String id = idDatum.asString(); | 131 String id = idDatum.asString(); |
| 127 // TODO(brianwilkerson) implement | 132 // TODO(brianwilkerson) implement |
| 128 return null; | 133 return null; |
| 129 } | 134 } |
| 130 | |
| 131 /** | |
| 132 * Convert the given data from a request into an analysis error. | |
| 133 */ | |
| 134 AnalysisError _createAnalysisError(Request request, RequestDatum datum) { | |
| 135 String file = datum[FILE].asString(); | |
| 136 String errorCodeName = datum[ERROR_CODE].asString(); | |
| 137 int offset = datum[OFFSET].asInt(); | |
| 138 int length = datum[LENGTH].asInt(); | |
| 139 String message = datum[MESSAGE].asString(); | |
| 140 String correction; | |
| 141 if (datum.hasKey(CORRECTION)) { | |
| 142 correction = datum[CORRECTION].asString(); | |
| 143 } | |
| 144 ErrorCode errorCode = convertErrorCode(errorCodeName); | |
| 145 if (errorCode == null) { | |
| 146 // throw new RequestFailure(new Response.invalidErrorCode(request)); | |
| 147 } | |
| 148 // TODO(brianwilkerson) Implement this. | |
| 149 // return new AnalysisError.con2( | |
| 150 // server.sourceFromFile(file), | |
| 151 // offset, | |
| 152 // length, | |
| 153 // errorCode, | |
| 154 // null); | |
| 155 return null; | |
| 156 } | |
| 157 | |
| 158 /** | |
| 159 * Return the error code corresponding to the given [errorCodeName], or `null` | |
| 160 * if the given name is not a valid error code. | |
| 161 */ | |
| 162 ErrorCode convertErrorCode(String errorCodeName) { | |
| 163 // TODO(brianwilkerson) Implement this. | |
| 164 // Enum2 errorCode = Enum2.valueOf(AngularCode.values, errorCodeName); | |
| 165 // if (errorCode == null) { | |
| 166 // errorCode = Enum2.valueOf(CompileTimeErrorCode.values, errorCodeName); | |
| 167 // } | |
| 168 // if (errorCode == null) { | |
| 169 // errorCode = Enum2.valueOf(HintCode.values, errorCodeName); | |
| 170 // } | |
| 171 // if (errorCode == null) { | |
| 172 // errorCode = Enum2.valueOf(HtmlWarningCode.values, errorCodeName); | |
| 173 // } | |
| 174 // if (errorCode == null) { | |
| 175 // errorCode = Enum2.valueOf(ParserErrorCode.values, errorCodeName); | |
| 176 // } | |
| 177 // if (errorCode == null) { | |
| 178 // errorCode = Enum2.valueOf(PolymerCode.values, errorCodeName); | |
| 179 // } | |
| 180 // if (errorCode == null) { | |
| 181 // errorCode = Enum2.valueOf(PubSuggestionCode.values, errorCodeName); | |
| 182 // } | |
| 183 // if (errorCode == null) { | |
| 184 // errorCode = Enum2.valueOf(ResolverErrorCode.values, errorCodeName); | |
| 185 // } | |
| 186 // if (errorCode == null) { | |
| 187 // errorCode = Enum2.valueOf(ScannerErrorCode.values, errorCodeName); | |
| 188 // } | |
| 189 // if (errorCode == null) { | |
| 190 // errorCode = Enum2.valueOf(StaticTypeErrorCode.values, errorCodeName); | |
| 191 // } | |
| 192 // if (errorCode == null) { | |
| 193 // errorCode = Enum2.valueOf(StaticWarningErrorCode.values, errorCodeName); | |
| 194 // } | |
| 195 // if (errorCode == null) { | |
| 196 // errorCode = Enum2.valueOf(TodoCode.values, errorCodeName); | |
| 197 // } | |
| 198 return null; | |
| 199 } | |
| 200 } | 135 } |
| OLD | NEW |