| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 import 'package:analysis_server/protocol/protocol_generated.dart' as server; | 5 import 'package:analysis_server/protocol/protocol_generated.dart' as server; |
| 6 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin; | 6 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin; |
| 7 import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin; | 7 import 'package:analyzer_plugin/protocol/protocol_common.dart'; |
| 8 import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin; | 8 import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin; |
| 9 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; | 9 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; |
| 10 | 10 |
| 11 class ProtocolTestUtilities { | 11 class ProtocolTestUtilities { |
| 12 static const List<String> strings = const <String>[ | 12 static const List<String> strings = const <String>[ |
| 13 'aa', | 13 'aa', |
| 14 'ab', | 14 'ab', |
| 15 'ac', | 15 'ac', |
| 16 'ad', | 16 'ad', |
| 17 'ae', | 17 'ae', |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 'by', | 63 'by', |
| 64 'bz', | 64 'bz', |
| 65 ]; | 65 ]; |
| 66 | 66 |
| 67 String fileName(int stringIndex) => '${strings[stringIndex]}.dart'; | 67 String fileName(int stringIndex) => '${strings[stringIndex]}.dart'; |
| 68 | 68 |
| 69 /** | 69 /** |
| 70 * On return, increment [stringIndex] by 3 (or 4 if no [file] name is | 70 * On return, increment [stringIndex] by 3 (or 4 if no [file] name is |
| 71 * provided) and [intIndex] by 4. | 71 * provided) and [intIndex] by 4. |
| 72 */ | 72 */ |
| 73 plugin.AnalysisError pluginAnalysisError(int stringIndex, int intIndex, | 73 AnalysisError pluginAnalysisError(int stringIndex, int intIndex, |
| 74 {String file}) { | 74 {String file}) { |
| 75 return new plugin.AnalysisError( | 75 // TODO(brianwilkerson) Unify the "plugin" and "server" methods when the ret
urn type is common. |
| 76 plugin.AnalysisErrorSeverity.ERROR, | 76 return new AnalysisError( |
| 77 plugin.AnalysisErrorType.COMPILE_TIME_ERROR, | 77 AnalysisErrorSeverity.ERROR, |
| 78 AnalysisErrorType.COMPILE_TIME_ERROR, |
| 78 pluginLocation(stringIndex, intIndex, file: file), | 79 pluginLocation(stringIndex, intIndex, file: file), |
| 79 strings[stringIndex++], | 80 strings[stringIndex++], |
| 80 strings[stringIndex++], | 81 strings[stringIndex++], |
| 81 correction: strings[stringIndex++], | 82 correction: strings[stringIndex++], |
| 82 hasFix: true); | 83 hasFix: true); |
| 83 } | 84 } |
| 84 | 85 |
| 85 /** | 86 /** |
| 86 * On return, increment [stringIndex] by 5 and [intIndex] by 5. | 87 * On return, increment [stringIndex] by 5 and [intIndex] by 5. |
| 87 */ | 88 */ |
| 88 plugin.Element pluginElement(int stringIndex, int intIndex, | 89 Element pluginElement(int stringIndex, int intIndex, {ElementKind kind}) => |
| 89 {plugin.ElementKind kind}) => | 90 new Element(kind ?? ElementKind.CLASS, strings[stringIndex++], intIndex++, |
| 90 new plugin.Element( | 91 location: new Location(fileName(stringIndex++), intIndex++, |
| 91 kind ?? plugin.ElementKind.CLASS, strings[stringIndex++], intIndex++, | |
| 92 location: new plugin.Location(fileName(stringIndex++), intIndex++, | |
| 93 intIndex++, intIndex++, intIndex++), | 92 intIndex++, intIndex++, intIndex++), |
| 94 parameters: strings[stringIndex++], | 93 parameters: strings[stringIndex++], |
| 95 returnType: strings[stringIndex++], | 94 returnType: strings[stringIndex++], |
| 96 typeParameters: strings[stringIndex++]); | 95 typeParameters: strings[stringIndex++]); |
| 97 | 96 |
| 98 plugin.FoldingRegion pluginFoldingRegion(int offset, int length) => | 97 FoldingRegion pluginFoldingRegion(int offset, int length) => |
| 99 new plugin.FoldingRegion(plugin.FoldingKind.COMMENT, offset, length); | 98 new FoldingRegion(FoldingKind.COMMENT, offset, length); |
| 100 | 99 |
| 101 plugin.HighlightRegion pluginHighlightRegion(int offset, int length) => | 100 HighlightRegion pluginHighlightRegion(int offset, int length) => |
| 102 new plugin.HighlightRegion( | 101 new HighlightRegion(HighlightRegionType.FIELD, offset, length); |
| 103 plugin.HighlightRegionType.FIELD, offset, length); | |
| 104 | 102 |
| 105 /** | 103 /** |
| 106 * On return, increment [stringIndex] by 1 and [intIndex] by 4. | 104 * On return, increment [stringIndex] by 1 and [intIndex] by 4. |
| 107 */ | 105 */ |
| 108 plugin.Location pluginLocation(int stringIndex, int intIndex, | 106 Location pluginLocation(int stringIndex, int intIndex, {String file}) => |
| 109 {String file}) => | 107 new Location(file ?? fileName(stringIndex), intIndex++, intIndex++, |
| 110 new plugin.Location(file ?? fileName(stringIndex), intIndex++, intIndex++, | |
| 111 intIndex++, intIndex++); | 108 intIndex++, intIndex++); |
| 112 | 109 |
| 113 /** | 110 /** |
| 114 * On return, increment [stringIndex] by 2 (or 3 if no [file] name is | 111 * On return, increment [stringIndex] by 2 (or 3 if no [file] name is |
| 115 * provided) and [intIndex] by 4. | 112 * provided) and [intIndex] by 4. |
| 116 */ | 113 */ |
| 117 plugin.AnalysisNavigationParams pluginNavigationParams( | 114 plugin.AnalysisNavigationParams pluginNavigationParams( |
| 118 int stringIndex, int intIndex, {String file}) => | 115 int stringIndex, int intIndex, {String file}) => |
| 119 new plugin.AnalysisNavigationParams( | 116 new plugin.AnalysisNavigationParams( |
| 120 file ?? fileName(stringIndex++), <plugin.NavigationRegion>[ | 117 file ?? fileName(stringIndex++), <NavigationRegion>[ |
| 121 new plugin.NavigationRegion(intIndex++, 2, <int>[0]) | 118 new NavigationRegion(intIndex++, 2, <int>[0]) |
| 122 ], <plugin.NavigationTarget>[ | 119 ], <NavigationTarget>[ |
| 123 new plugin.NavigationTarget( | 120 new NavigationTarget( |
| 124 plugin.ElementKind.FIELD, 0, intIndex++, 2, intIndex++, intIndex++) | 121 ElementKind.FIELD, 0, intIndex++, 2, intIndex++, intIndex++) |
| 125 ], <String>[ | 122 ], <String>[ |
| 126 strings[stringIndex++], | 123 strings[stringIndex++], |
| 127 strings[stringIndex++] | 124 strings[stringIndex++] |
| 128 ]); | 125 ]); |
| 129 | 126 |
| 130 /** | 127 /** |
| 131 * On return, increment [stringIndex] by 5 and [intIndex] by 7. | 128 * On return, increment [stringIndex] by 5 and [intIndex] by 7. |
| 132 */ | 129 */ |
| 133 plugin.Occurrences pluginOccurrences(int stringIndex, int intIndex) { | 130 Occurrences pluginOccurrences(int stringIndex, int intIndex) { |
| 134 plugin.Element element = pluginElement(stringIndex, intIndex); | 131 Element element = pluginElement(stringIndex, intIndex); |
| 135 return new plugin.Occurrences( | 132 return new Occurrences( |
| 136 element, <int>[intIndex + 5, intIndex + 6], element.name.length); | 133 element, <int>[intIndex + 5, intIndex + 6], element.name.length); |
| 137 } | 134 } |
| 138 | 135 |
| 139 /** | 136 /** |
| 140 * On return, increment [stringIndex] by 10 and [intIndex] by 14. | 137 * On return, increment [stringIndex] by 10 and [intIndex] by 14. |
| 141 */ | 138 */ |
| 142 plugin.Outline pluginOutline(int stringIndex, int intIndex) => | 139 Outline pluginOutline(int stringIndex, int intIndex) => new Outline( |
| 143 new plugin.Outline( | |
| 144 pluginElement(stringIndex, intIndex), intIndex + 5, intIndex + 6, | 140 pluginElement(stringIndex, intIndex), intIndex + 5, intIndex + 6, |
| 145 children: <plugin.Outline>[ | 141 children: <Outline>[ |
| 146 new plugin.Outline( | 142 new Outline( |
| 147 pluginElement(stringIndex + 5, intIndex + 7, | 143 pluginElement(stringIndex + 5, intIndex + 7, |
| 148 kind: plugin.ElementKind.METHOD), | 144 kind: ElementKind.METHOD), |
| 149 intIndex + 12, | 145 intIndex + 12, |
| 150 intIndex + 13) | 146 intIndex + 13) |
| 151 ]); | 147 ]); |
| 152 | 148 |
| 153 /** | 149 /** |
| 154 * On return, increment [stringIndex] by 2 and [intIndex] by 4. | 150 * On return, increment [stringIndex] by 2 and [intIndex] by 4. |
| 155 */ | 151 */ |
| 156 plugin.RefactoringProblem pluginRefactoringProblem( | 152 RefactoringProblem pluginRefactoringProblem(int stringIndex, int intIndex) { |
| 157 int stringIndex, int intIndex) { | 153 return new RefactoringProblem( |
| 158 return new plugin.RefactoringProblem( | 154 RefactoringProblemSeverity.FATAL, strings[stringIndex++], |
| 159 plugin.RefactoringProblemSeverity.FATAL, strings[stringIndex++], | |
| 160 location: pluginLocation(stringIndex, intIndex)); | 155 location: pluginLocation(stringIndex, intIndex)); |
| 161 } | 156 } |
| 162 | 157 |
| 163 /** | 158 /** |
| 164 * On return, increment [stringIndex] by 6 and [intIndex] by 6. | 159 * On return, increment [stringIndex] by 6 and [intIndex] by 6. |
| 165 */ | 160 */ |
| 166 plugin.SourceChange pluginSourceChange(int stringIndex, int intIndex) => | 161 SourceChange pluginSourceChange(int stringIndex, int intIndex) => |
| 167 new plugin.SourceChange(strings[stringIndex++], | 162 new SourceChange(strings[stringIndex++], |
| 168 edits: <plugin.SourceFileEdit>[ | 163 edits: <SourceFileEdit>[ |
| 169 new plugin.SourceFileEdit(fileName(stringIndex), intIndex++, | 164 new SourceFileEdit(fileName(stringIndex), intIndex++, |
| 170 edits: <plugin.SourceEdit>[ | 165 edits: <SourceEdit>[ |
| 171 new plugin.SourceEdit( | 166 new SourceEdit(intIndex++, intIndex++, strings[stringIndex++]) |
| 172 intIndex++, intIndex++, strings[stringIndex++]) | |
| 173 ]) | 167 ]) |
| 174 ], | 168 ], |
| 175 linkedEditGroups: <plugin.LinkedEditGroup>[ | 169 linkedEditGroups: <LinkedEditGroup>[ |
| 176 new plugin.LinkedEditGroup( | 170 new LinkedEditGroup( |
| 177 <plugin.Position>[ | 171 <Position>[new Position(fileName(stringIndex), intIndex++)], |
| 178 new plugin.Position(fileName(stringIndex), intIndex++) | |
| 179 ], | |
| 180 intIndex++, | 172 intIndex++, |
| 181 <plugin.LinkedEditSuggestion>[ | 173 <LinkedEditSuggestion>[ |
| 182 new plugin.LinkedEditSuggestion(strings[stringIndex++], | 174 new LinkedEditSuggestion( |
| 183 plugin.LinkedEditSuggestionKind.METHOD) | 175 strings[stringIndex++], LinkedEditSuggestionKind.METHOD) |
| 184 ]) | 176 ]) |
| 185 ], | 177 ], |
| 186 selection: new plugin.Position(fileName(stringIndex), intIndex++)); | 178 selection: new Position(fileName(stringIndex), intIndex++)); |
| 187 | 179 |
| 188 /** | 180 /** |
| 189 * On return, increment [stringIndex] by 3 (or 4 if no [file] name is | 181 * On return, increment [stringIndex] by 3 (or 4 if no [file] name is |
| 190 * provided) and [intIndex] by 4. | 182 * provided) and [intIndex] by 4. |
| 191 */ | 183 */ |
| 192 server.AnalysisError serverAnalysisError(int stringIndex, int intIndex, | 184 AnalysisError serverAnalysisError(int stringIndex, int intIndex, |
| 193 {String file}) { | 185 {String file}) { |
| 194 return new server.AnalysisError( | 186 return new AnalysisError( |
| 195 server.AnalysisErrorSeverity.ERROR, | 187 AnalysisErrorSeverity.ERROR, |
| 196 server.AnalysisErrorType.COMPILE_TIME_ERROR, | 188 AnalysisErrorType.COMPILE_TIME_ERROR, |
| 197 serverLocation(stringIndex, intIndex, file: file), | 189 serverLocation(stringIndex, intIndex, file: file), |
| 198 strings[stringIndex++], | 190 strings[stringIndex++], |
| 199 strings[stringIndex++], | 191 strings[stringIndex++], |
| 200 correction: strings[stringIndex++], | 192 correction: strings[stringIndex++], |
| 201 hasFix: true); | 193 hasFix: true); |
| 202 } | 194 } |
| 203 | 195 |
| 204 /** | 196 /** |
| 205 * On return, increment [stringIndex] by 5 and [intIndex] by 5. | 197 * On return, increment [stringIndex] by 5 and [intIndex] by 5. |
| 206 */ | 198 */ |
| 207 server.Element serverElement(int stringIndex, int intIndex, | 199 Element serverElement(int stringIndex, int intIndex, {ElementKind kind}) => |
| 208 {server.ElementKind kind}) => | 200 new Element(kind ?? ElementKind.CLASS, strings[stringIndex++], intIndex++, |
| 209 new server.Element( | 201 location: new Location(fileName(stringIndex++), intIndex++, |
| 210 kind ?? server.ElementKind.CLASS, strings[stringIndex++], intIndex++, | |
| 211 location: new server.Location(fileName(stringIndex++), intIndex++, | |
| 212 intIndex++, intIndex++, intIndex++), | 202 intIndex++, intIndex++, intIndex++), |
| 213 parameters: strings[stringIndex++], | 203 parameters: strings[stringIndex++], |
| 214 returnType: strings[stringIndex++], | 204 returnType: strings[stringIndex++], |
| 215 typeParameters: strings[stringIndex++]); | 205 typeParameters: strings[stringIndex++]); |
| 216 | 206 |
| 217 server.FoldingRegion serverFoldingRegion(int offset, int length) => | 207 FoldingRegion serverFoldingRegion(int offset, int length) => |
| 218 new server.FoldingRegion(server.FoldingKind.COMMENT, offset, length); | 208 new FoldingRegion(FoldingKind.COMMENT, offset, length); |
| 219 | 209 |
| 220 server.HighlightRegion serverHighlightRegion(int offset, int length) => | 210 HighlightRegion serverHighlightRegion(int offset, int length) => |
| 221 new server.HighlightRegion( | 211 new HighlightRegion(HighlightRegionType.FIELD, offset, length); |
| 222 server.HighlightRegionType.FIELD, offset, length); | |
| 223 | 212 |
| 224 /** | 213 /** |
| 225 * On return, increment [stringIndex] by 1 and [intIndex] by 4. | 214 * On return, increment [stringIndex] by 1 and [intIndex] by 4. |
| 226 */ | 215 */ |
| 227 server.Location serverLocation(int stringIndex, int intIndex, | 216 Location serverLocation(int stringIndex, int intIndex, {String file}) => |
| 228 {String file}) => | 217 new Location(file ?? fileName(stringIndex), intIndex++, intIndex++, |
| 229 new server.Location(file ?? fileName(stringIndex), intIndex++, intIndex++, | |
| 230 intIndex++, intIndex++); | 218 intIndex++, intIndex++); |
| 231 | 219 |
| 232 /** | 220 /** |
| 233 * On return, increment [stringIndex] by 2 (or 3 if no [file] name is | 221 * On return, increment [stringIndex] by 2 (or 3 if no [file] name is |
| 234 * provided) and [intIndex] by 4. | 222 * provided) and [intIndex] by 4. |
| 235 */ | 223 */ |
| 236 server.AnalysisNavigationParams serverNavigationParams( | 224 server.AnalysisNavigationParams serverNavigationParams( |
| 237 int stringIndex, int intIndex, {String file}) => | 225 int stringIndex, int intIndex, {String file}) => |
| 238 new server.AnalysisNavigationParams( | 226 new server.AnalysisNavigationParams( |
| 239 file ?? fileName(stringIndex++), <server.NavigationRegion>[ | 227 file ?? fileName(stringIndex++), <NavigationRegion>[ |
| 240 new server.NavigationRegion(intIndex++, 2, <int>[0]) | 228 new NavigationRegion(intIndex++, 2, <int>[0]) |
| 241 ], <server.NavigationTarget>[ | 229 ], <NavigationTarget>[ |
| 242 new server.NavigationTarget( | 230 new NavigationTarget( |
| 243 server.ElementKind.FIELD, 0, intIndex++, 2, intIndex++, intIndex++) | 231 ElementKind.FIELD, 0, intIndex++, 2, intIndex++, intIndex++) |
| 244 ], <String>[ | 232 ], <String>[ |
| 245 strings[stringIndex++], | 233 strings[stringIndex++], |
| 246 strings[stringIndex++] | 234 strings[stringIndex++] |
| 247 ]); | 235 ]); |
| 248 | 236 |
| 249 /** | 237 /** |
| 250 * On return, increment [stringIndex] by 5 and [intIndex] by 7. | 238 * On return, increment [stringIndex] by 5 and [intIndex] by 7. |
| 251 */ | 239 */ |
| 252 server.Occurrences serverOccurrences(int stringIndex, int intIndex) { | 240 Occurrences serverOccurrences(int stringIndex, int intIndex) { |
| 253 server.Element element = serverElement(stringIndex, intIndex); | 241 Element element = serverElement(stringIndex, intIndex); |
| 254 return new server.Occurrences( | 242 return new Occurrences( |
| 255 element, <int>[intIndex + 5, intIndex + 6], element.name.length); | 243 element, <int>[intIndex + 5, intIndex + 6], element.name.length); |
| 256 } | 244 } |
| 257 | 245 |
| 258 /** | 246 /** |
| 259 * On return, increment [stringIndex] by 10 and [intIndex] by 14. | 247 * On return, increment [stringIndex] by 10 and [intIndex] by 14. |
| 260 */ | 248 */ |
| 261 server.Outline serverOutline(int stringIndex, int intIndex) => | 249 Outline serverOutline(int stringIndex, int intIndex) => new Outline( |
| 262 new server.Outline( | |
| 263 serverElement(stringIndex, intIndex), intIndex + 5, intIndex + 6, | 250 serverElement(stringIndex, intIndex), intIndex + 5, intIndex + 6, |
| 264 children: <server.Outline>[ | 251 children: <Outline>[ |
| 265 new server.Outline( | 252 new Outline( |
| 266 serverElement(stringIndex + 5, intIndex + 7, | 253 serverElement(stringIndex + 5, intIndex + 7, |
| 267 kind: server.ElementKind.METHOD), | 254 kind: ElementKind.METHOD), |
| 268 intIndex + 12, | 255 intIndex + 12, |
| 269 intIndex + 13) | 256 intIndex + 13) |
| 270 ]); | 257 ]); |
| 271 | 258 |
| 272 /** | 259 /** |
| 273 * On return, increment [stringIndex] by 2 and [intIndex] by 4. | 260 * On return, increment [stringIndex] by 2 and [intIndex] by 4. |
| 274 */ | 261 */ |
| 275 server.RefactoringProblem serverRefactoringProblem( | 262 RefactoringProblem serverRefactoringProblem(int stringIndex, int intIndex) => |
| 276 int stringIndex, int intIndex) => | 263 new RefactoringProblem( |
| 277 new server.RefactoringProblem( | 264 RefactoringProblemSeverity.FATAL, strings[stringIndex++], |
| 278 server.RefactoringProblemSeverity.FATAL, strings[stringIndex++], | |
| 279 location: serverLocation(stringIndex, intIndex)); | 265 location: serverLocation(stringIndex, intIndex)); |
| 280 | 266 |
| 281 /** | 267 /** |
| 282 * On return, increment [stringIndex] by 6 and [intIndex] by 6. | 268 * On return, increment [stringIndex] by 6 and [intIndex] by 6. |
| 283 */ | 269 */ |
| 284 server.SourceChange serverSourceChange(int stringIndex, int intIndex) => | 270 SourceChange serverSourceChange(int stringIndex, int intIndex) => |
| 285 new server.SourceChange(strings[stringIndex++], | 271 new SourceChange(strings[stringIndex++], |
| 286 edits: <server.SourceFileEdit>[ | 272 edits: <SourceFileEdit>[ |
| 287 new server.SourceFileEdit(fileName(stringIndex), intIndex++, | 273 new SourceFileEdit(fileName(stringIndex), intIndex++, |
| 288 edits: <server.SourceEdit>[ | 274 edits: <SourceEdit>[ |
| 289 new server.SourceEdit( | 275 new SourceEdit(intIndex++, intIndex++, strings[stringIndex++]) |
| 290 intIndex++, intIndex++, strings[stringIndex++]) | |
| 291 ]) | 276 ]) |
| 292 ], | 277 ], |
| 293 linkedEditGroups: <server.LinkedEditGroup>[ | 278 linkedEditGroups: <LinkedEditGroup>[ |
| 294 new server.LinkedEditGroup( | 279 new LinkedEditGroup( |
| 295 <server.Position>[ | 280 <Position>[new Position(fileName(stringIndex), intIndex++)], |
| 296 new server.Position(fileName(stringIndex), intIndex++) | |
| 297 ], | |
| 298 intIndex++, | 281 intIndex++, |
| 299 <server.LinkedEditSuggestion>[ | 282 <LinkedEditSuggestion>[ |
| 300 new server.LinkedEditSuggestion(strings[stringIndex++], | 283 new LinkedEditSuggestion( |
| 301 server.LinkedEditSuggestionKind.METHOD) | 284 strings[stringIndex++], LinkedEditSuggestionKind.METHOD) |
| 302 ]) | 285 ]) |
| 303 ], | 286 ], |
| 304 selection: new server.Position(fileName(stringIndex), intIndex++)); | 287 selection: new Position(fileName(stringIndex), intIndex++)); |
| 305 } | 288 } |
| OLD | NEW |