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 domain.edit; | 5 library domain.edit; |
| 6 | 6 |
| 7 import 'package:analyzer/src/generated/error.dart'; | 7 import 'package:analyzer/src/generated/error.dart'; |
| 8 import 'package:analysis_server/src/analysis_server.dart'; | 8 import 'package:analysis_server/src/analysis_server.dart'; |
| 9 import 'package:analysis_server/src/constants.dart'; | 9 import 'package:analysis_server/src/constants.dart'; |
| 10 import 'package:analysis_server/src/protocol.dart'; | 10 import 'package:analysis_server/src/protocol.dart'; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 93 RequestDatum lengthDatum = request.getRequiredParameter(LENGTH); | 93 RequestDatum lengthDatum = request.getRequiredParameter(LENGTH); |
| 94 int length = lengthDatum.asInt(); | 94 int length = lengthDatum.asInt(); |
| 95 // TODO(brianwilkerson) implement | 95 // TODO(brianwilkerson) implement |
| 96 return null; | 96 return null; |
| 97 } | 97 } |
| 98 | 98 |
| 99 Response getFixes(Request request) { | 99 Response getFixes(Request request) { |
| 100 // errors | 100 // errors |
| 101 RequestDatum errorsDatum = request.getRequiredParameter(ERRORS); | 101 RequestDatum errorsDatum = request.getRequiredParameter(ERRORS); |
| 102 List<AnalysisError> errors = errorsDatum.asList((RequestDatum datum) { | 102 List<AnalysisError> errors = errorsDatum.asList((RequestDatum datum) { |
| 103 return _createAnalysisError(datum); | 103 return _createAnalysisError(request, datum); |
| 104 }); | 104 }); |
| 105 // TODO(brianwilkerson) implement | 105 // TODO(brianwilkerson) implement |
| 106 return null; | 106 return null; |
| 107 } | 107 } |
| 108 | 108 |
| 109 Response getRefactorings(Request request) { | 109 Response getRefactorings(Request request) { |
| 110 // file | 110 // file |
| 111 RequestDatum fileDatum = request.getRequiredParameter(FILE); | 111 RequestDatum fileDatum = request.getRequiredParameter(FILE); |
| 112 String file = fileDatum.asString(); | 112 String file = fileDatum.asString(); |
| 113 // offset | 113 // offset |
| 114 RequestDatum offsetDatum = request.getRequiredParameter(OFFSET); | 114 RequestDatum offsetDatum = request.getRequiredParameter(OFFSET); |
| 115 int offset = offsetDatum.asInt(); | 115 int offset = offsetDatum.asInt(); |
| 116 // length | 116 // length |
| 117 RequestDatum lengthDatum = request.getRequiredParameter(LENGTH); | 117 RequestDatum lengthDatum = request.getRequiredParameter(LENGTH); |
| 118 int length = lengthDatum.asInt(); | 118 int length = lengthDatum.asInt(); |
| 119 // TODO(brianwilkerson) implement | 119 // TODO(brianwilkerson) implement |
| 120 return null; | 120 return null; |
| 121 } | 121 } |
| 122 | 122 |
| 123 Response setRefactoringOptions(Request request) { | 123 Response setRefactoringOptions(Request request) { |
| 124 // id | 124 // id |
| 125 RequestDatum idDatum = request.getRequiredParameter(ID); | 125 RequestDatum idDatum = request.getRequiredParameter(ID); |
| 126 String id = idDatum.asString(); | 126 String id = idDatum.asString(); |
| 127 // TODO(brianwilkerson) implement | 127 // TODO(brianwilkerson) implement |
| 128 return null; | 128 return null; |
| 129 } | 129 } |
| 130 | 130 |
| 131 AnalysisError _createAnalysisError(RequestDatum datum) { | 131 /** |
| 132 // TODO(brianwilkerson) implement | 132 * Convert the given data from a request into an analysis error. |
| 133 */ | |
| 134 AnalysisError _createAnalysisError(Request request, RequestDatum datum) { | |
| 135 String file; | |
| 136 String errorCodeName; | |
| 137 int offset; | |
| 138 int length; | |
| 139 String message; | |
| 140 String correction; | |
| 141 datum.forEachMap((String key, RequestDatum value) { | |
| 142 if (key == FILE) { | |
| 143 file = value.asString(); | |
| 144 } else if (key == ERROR_CODE) { | |
| 145 errorCodeName = value.asString(); | |
| 146 } else if (key == OFFSET) { | |
| 147 offset = value.asInt(); | |
| 148 } else if (key == LENGTH) { | |
| 149 length = value.asInt(); | |
| 150 } else if (key == MESSAGE) { | |
| 151 message = value.asString(); | |
| 152 } else if (key == CORRECTION) { | |
| 153 correction = value.asString(); | |
| 154 } | |
| 155 }); | |
| 156 if (file == null) { | |
| 157 throw new RequestFailure( | |
| 158 new Response.missingRequiredParameter(request, 'file')); | |
| 159 } | |
| 160 if (errorCodeName == null) { | |
| 161 throw new RequestFailure( | |
| 162 new Response.missingRequiredParameter(request, 'errorCode')); | |
| 163 } | |
| 164 if (offset == null) { | |
| 165 throw new RequestFailure( | |
| 166 new Response.missingRequiredParameter(request, 'offset')); | |
| 167 } | |
| 168 if (length == null) { | |
| 169 throw new RequestFailure( | |
| 170 new Response.missingRequiredParameter(request, 'length')); | |
| 171 } | |
| 172 if (message == null) { | |
| 173 throw new RequestFailure( | |
| 174 new Response.missingRequiredParameter(request, 'message')); | |
| 175 } | |
|
Paul Berry
2014/06/16 23:43:16
RequestDatum was intended to make this sort of err
Brian Wilkerson
2014/06/17 17:46:16
Thanks! That's much cleaner.
| |
| 176 ErrorCode errorCode = convertErrorCode(errorCodeName); | |
| 177 if (errorCode == null) { | |
| 178 | |
| 179 } | |
| 180 // TODO(brianwilkerson) Implement this. | |
| 181 // return new AnalysisError.con2( | |
| 182 // server.sourceFromFile(file), | |
| 183 // offset, | |
| 184 // length, | |
| 185 // errorCode, | |
| 186 // null); | |
| 187 return null; | |
| 188 } | |
| 189 | |
| 190 /** | |
| 191 * Return the error code corresponding to the given [errorCodeName], or `null` | |
| 192 * if the given name is not a valid error code. | |
| 193 */ | |
| 194 ErrorCode convertErrorCode(String errorCodeName) { | |
| 195 // TODO(brianwilkerson) Implement this. | |
| 196 // Enum2 errorCode = Enum2.valueOf(AngularCode.values, errorCodeName); | |
| 197 // if (errorCode == null) { | |
| 198 // errorCode = Enum2.valueOf(CompileTimeErrorCode.values, errorCodeName); | |
| 199 // } | |
| 200 // if (errorCode == null) { | |
| 201 // errorCode = Enum2.valueOf(HintCode.values, errorCodeName); | |
| 202 // } | |
| 203 // if (errorCode == null) { | |
| 204 // errorCode = Enum2.valueOf(HtmlWarningCode.values, errorCodeName); | |
| 205 // } | |
| 206 // if (errorCode == null) { | |
| 207 // errorCode = Enum2.valueOf(ParserErrorCode.values, errorCodeName); | |
| 208 // } | |
| 209 // if (errorCode == null) { | |
| 210 // errorCode = Enum2.valueOf(PolymerCode.values, errorCodeName); | |
| 211 // } | |
| 212 // if (errorCode == null) { | |
| 213 // errorCode = Enum2.valueOf(PubSuggestionCode.values, errorCodeName); | |
| 214 // } | |
| 215 // if (errorCode == null) { | |
| 216 // errorCode = Enum2.valueOf(ResolverErrorCode.values, errorCodeName); | |
| 217 // } | |
| 218 // if (errorCode == null) { | |
| 219 // errorCode = Enum2.valueOf(ScannerErrorCode.values, errorCodeName); | |
| 220 // } | |
| 221 // if (errorCode == null) { | |
| 222 // errorCode = Enum2.valueOf(StaticTypeErrorCode.values, errorCodeName); | |
| 223 // } | |
| 224 // if (errorCode == null) { | |
| 225 // errorCode = Enum2.valueOf(StaticWarningErrorCode.values, errorCodeName); | |
| 226 // } | |
| 227 // if (errorCode == null) { | |
| 228 // errorCode = Enum2.valueOf(TodoCode.values, errorCodeName); | |
| 229 // } | |
| 230 return null; | |
| 133 } | 231 } |
| 134 } | 232 } |
| OLD | NEW |