| 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/plugin/protocol/protocol.dart' as server; | 5 import 'package:analysis_server/plugin/protocol/protocol.dart' as server; |
| 6 import 'package:analysis_server/src/plugin/result_converter.dart'; | 6 import 'package:analysis_server/src/plugin/result_converter.dart'; |
| 7 import 'package:analysis_server/src/protocol/protocol_internal.dart' as server; | 7 import 'package:analysis_server/src/protocol/protocol_internal.dart' as server; |
| 8 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; | 8 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; |
| 9 import 'package:test/test.dart'; | 9 import 'package:test/test.dart'; |
| 10 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 10 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 11 | 11 |
| 12 import 'protocol_test_utilities.dart'; |
| 13 |
| 12 main() { | 14 main() { |
| 13 defineReflectiveSuite(() { | 15 defineReflectiveSuite(() { |
| 14 defineReflectiveTests(ResultConverterTest); | 16 defineReflectiveTests(ResultConverterTest); |
| 15 }); | 17 }); |
| 16 } | 18 } |
| 17 | 19 |
| 18 @reflectiveTest | 20 @reflectiveTest |
| 19 class ResultConverterTest { | 21 class ResultConverterTest extends ProtocolTestUtilities { |
| 20 static const List<String> strings = const <String>[ | 22 static const List<String> strings = const <String>[ |
| 21 'a', | 23 'a', |
| 22 'b', | 24 'b', |
| 23 'c', | 25 'c', |
| 24 'd', | 26 'd', |
| 25 'e', | 27 'e', |
| 26 'f', | 28 'f', |
| 27 'g', | 29 'g', |
| 28 'h', | 30 'h', |
| 29 'i', | 31 'i', |
| 30 'j', | 32 'j', |
| 31 'k', | 33 'k', |
| 32 'l', | 34 'l', |
| 33 'm', | 35 'm', |
| 34 'n' | 36 'n' |
| 35 ]; | 37 ]; |
| 36 | 38 |
| 37 ResultConverter converter = new ResultConverter(); | 39 ResultConverter converter = new ResultConverter(); |
| 38 | 40 |
| 39 void test_convertAnalysisError() { | 41 void test_convertAnalysisError() { |
| 40 plugin.AnalysisError initial = _pluginAnalysisError(); | 42 plugin.AnalysisError initial = pluginAnalysisError(0, 0); |
| 41 server.AnalysisError expected = _serverAnalysisError(); | 43 server.AnalysisError expected = serverAnalysisError(0, 0); |
| 42 expect(converter.convertAnalysisError(initial), expected); | 44 expect(converter.convertAnalysisError(initial), expected); |
| 43 } | 45 } |
| 44 | 46 |
| 45 void test_convertAnalysisErrorFixes() { | 47 void test_convertAnalysisErrorFixes() { |
| 46 plugin.AnalysisErrorFixes initial = new plugin.AnalysisErrorFixes( | 48 plugin.AnalysisErrorFixes initial = new plugin.AnalysisErrorFixes( |
| 47 _pluginAnalysisError(), | 49 pluginAnalysisError(0, 0), |
| 48 fixes: <plugin.PrioritizedSourceChange>[ | 50 fixes: <plugin.PrioritizedSourceChange>[ |
| 49 new plugin.PrioritizedSourceChange(100, _pluginSourceChange()) | 51 new plugin.PrioritizedSourceChange(100, pluginSourceChange(4, 4)) |
| 50 ]); | 52 ]); |
| 51 server.AnalysisErrorFixes expected = new server.AnalysisErrorFixes( | 53 server.AnalysisErrorFixes expected = new server.AnalysisErrorFixes( |
| 52 _serverAnalysisError(), | 54 serverAnalysisError(0, 0), |
| 53 fixes: <server.SourceChange>[_serverSourceChange()]); | 55 fixes: <server.SourceChange>[serverSourceChange(4, 4)]); |
| 54 expect(converter.convertAnalysisErrorFixes(initial), expected); | 56 expect(converter.convertAnalysisErrorFixes(initial), expected); |
| 55 } | 57 } |
| 56 | 58 |
| 57 void test_convertAnalysisNavigationParams() { | 59 void test_convertAnalysisNavigationParams() { |
| 58 plugin.AnalysisNavigationParams initial = | 60 plugin.AnalysisNavigationParams initial = |
| 59 new plugin.AnalysisNavigationParams('a.dart', <plugin.NavigationRegion>[ | 61 new plugin.AnalysisNavigationParams('a.dart', <plugin.NavigationRegion>[ |
| 60 new plugin.NavigationRegion(1, 2, <int>[3, 4]) | 62 new plugin.NavigationRegion(1, 2, <int>[3, 4]) |
| 61 ], <plugin.NavigationTarget>[ | 63 ], <plugin.NavigationTarget>[ |
| 62 new plugin.NavigationTarget(plugin.ElementKind.FIELD, 5, 6, 7, 8, 9) | 64 new plugin.NavigationTarget(plugin.ElementKind.FIELD, 5, 6, 7, 8, 9) |
| 63 ], <String>[ | 65 ], <String>[ |
| (...skipping 11 matching lines...) Expand all Loading... |
| 75 ]); | 77 ]); |
| 76 expect(converter.convertAnalysisNavigationParams(initial), expected); | 78 expect(converter.convertAnalysisNavigationParams(initial), expected); |
| 77 } | 79 } |
| 78 | 80 |
| 79 void test_convertCompletionSuggestion() { | 81 void test_convertCompletionSuggestion() { |
| 80 plugin.CompletionSuggestion initial = new plugin.CompletionSuggestion( | 82 plugin.CompletionSuggestion initial = new plugin.CompletionSuggestion( |
| 81 plugin.CompletionSuggestionKind.IMPORT, 1, 'a', 2, 3, true, false, | 83 plugin.CompletionSuggestionKind.IMPORT, 1, 'a', 2, 3, true, false, |
| 82 docSummary: 'b', | 84 docSummary: 'b', |
| 83 docComplete: 'c', | 85 docComplete: 'c', |
| 84 declaringType: 'd', | 86 declaringType: 'd', |
| 85 element: _pluginElement(4, 4), | 87 element: pluginElement(4, 4), |
| 86 returnType: 'i', | 88 returnType: 'i', |
| 87 parameterNames: <String>['j', 'k'], | 89 parameterNames: <String>['j', 'k'], |
| 88 parameterTypes: <String>[], | 90 parameterTypes: <String>[], |
| 89 requiredParameterCount: 9, | 91 requiredParameterCount: 9, |
| 90 hasNamedParameters: true, | 92 hasNamedParameters: true, |
| 91 parameterName: 'l', | 93 parameterName: 'l', |
| 92 parameterType: 'm', | 94 parameterType: 'm', |
| 93 importUri: 'n'); | 95 importUri: 'n'); |
| 94 server.CompletionSuggestion expected = new server.CompletionSuggestion( | 96 server.CompletionSuggestion expected = new server.CompletionSuggestion( |
| 95 server.CompletionSuggestionKind.IMPORT, 1, 'a', 2, 3, true, false, | 97 server.CompletionSuggestionKind.IMPORT, 1, 'a', 2, 3, true, false, |
| 96 docSummary: 'b', | 98 docSummary: 'b', |
| 97 docComplete: 'c', | 99 docComplete: 'c', |
| 98 declaringType: 'd', | 100 declaringType: 'd', |
| 99 element: _serverElement(4, 4), | 101 element: serverElement(4, 4), |
| 100 returnType: 'i', | 102 returnType: 'i', |
| 101 parameterNames: <String>['j', 'k'], | 103 parameterNames: <String>['j', 'k'], |
| 102 parameterTypes: <String>[], | 104 parameterTypes: <String>[], |
| 103 requiredParameterCount: 9, | 105 requiredParameterCount: 9, |
| 104 hasNamedParameters: true, | 106 hasNamedParameters: true, |
| 105 parameterName: 'l', | 107 parameterName: 'l', |
| 106 parameterType: 'm', | 108 parameterType: 'm', |
| 107 importUri: 'n'); | 109 importUri: 'n'); |
| 108 expect(converter.convertCompletionSuggestion(initial), expected); | 110 expect(converter.convertCompletionSuggestion(initial), expected); |
| 109 } | 111 } |
| 110 | 112 |
| 111 void test_convertEditGetRefactoringResult_inlineMethod() { | 113 void test_convertEditGetRefactoringResult_inlineMethod() { |
| 112 plugin.EditGetRefactoringResult initial = | 114 plugin.EditGetRefactoringResult initial = |
| 113 new plugin.EditGetRefactoringResult( | 115 new plugin.EditGetRefactoringResult( |
| 114 <plugin.RefactoringProblem>[_pluginRefactoringProblem('a', 1)], | 116 <plugin.RefactoringProblem>[pluginRefactoringProblem(0, 0)], |
| 115 <plugin.RefactoringProblem>[_pluginRefactoringProblem('b', 5)], | 117 <plugin.RefactoringProblem>[pluginRefactoringProblem(2, 4)], |
| 116 <plugin.RefactoringProblem>[_pluginRefactoringProblem('c', 9)], | 118 <plugin.RefactoringProblem>[pluginRefactoringProblem(4, 8)], |
| 117 feedback: | 119 feedback: |
| 118 new plugin.InlineMethodFeedback('a', true, className: 'b'), | 120 new plugin.InlineMethodFeedback('a', true, className: 'b'), |
| 119 change: _pluginSourceChange(), | 121 change: pluginSourceChange(6, 12), |
| 120 potentialEdits: <String>['f']); | 122 potentialEdits: <String>['f']); |
| 121 server.EditGetRefactoringResult expected = | 123 server.EditGetRefactoringResult expected = |
| 122 new server.EditGetRefactoringResult( | 124 new server.EditGetRefactoringResult( |
| 123 <server.RefactoringProblem>[_serverRefactoringProblem('a', 1)], | 125 <server.RefactoringProblem>[serverRefactoringProblem(0, 0)], |
| 124 <server.RefactoringProblem>[_serverRefactoringProblem('b', 5)], | 126 <server.RefactoringProblem>[serverRefactoringProblem(2, 4)], |
| 125 <server.RefactoringProblem>[_serverRefactoringProblem('c', 9)], | 127 <server.RefactoringProblem>[serverRefactoringProblem(4, 8)], |
| 126 feedback: | 128 feedback: |
| 127 new server.InlineMethodFeedback('a', true, className: 'b'), | 129 new server.InlineMethodFeedback('a', true, className: 'b'), |
| 128 change: _serverSourceChange(), | 130 change: serverSourceChange(6, 12), |
| 129 potentialEdits: <String>['f']); | 131 potentialEdits: <String>['f']); |
| 130 expect( | 132 expect( |
| 131 converter.convertEditGetRefactoringResult( | 133 converter.convertEditGetRefactoringResult( |
| 132 plugin.RefactoringKind.INLINE_METHOD, initial), | 134 plugin.RefactoringKind.INLINE_METHOD, initial), |
| 133 expected); | 135 expected); |
| 134 } | 136 } |
| 135 | 137 |
| 136 void test_convertEditGetRefactoringResult_moveFile() { | 138 void test_convertEditGetRefactoringResult_moveFile() { |
| 137 plugin.EditGetRefactoringResult initial = | 139 plugin.EditGetRefactoringResult initial = |
| 138 new plugin.EditGetRefactoringResult( | 140 new plugin.EditGetRefactoringResult( |
| 139 <plugin.RefactoringProblem>[_pluginRefactoringProblem('a', 1)], | 141 <plugin.RefactoringProblem>[pluginRefactoringProblem(0, 0)], |
| 140 <plugin.RefactoringProblem>[_pluginRefactoringProblem('b', 5)], | 142 <plugin.RefactoringProblem>[pluginRefactoringProblem(2, 4)], |
| 141 <plugin.RefactoringProblem>[_pluginRefactoringProblem('c', 9)], | 143 <plugin.RefactoringProblem>[pluginRefactoringProblem(4, 8)], |
| 142 feedback: new plugin.MoveFileFeedback(), | 144 feedback: new plugin.MoveFileFeedback(), |
| 143 change: _pluginSourceChange(), | 145 change: pluginSourceChange(6, 12), |
| 144 potentialEdits: <String>['f']); | 146 potentialEdits: <String>['f']); |
| 145 server.EditGetRefactoringResult expected = | 147 server.EditGetRefactoringResult expected = |
| 146 new server.EditGetRefactoringResult( | 148 new server.EditGetRefactoringResult( |
| 147 <server.RefactoringProblem>[_serverRefactoringProblem('a', 1)], | 149 <server.RefactoringProblem>[serverRefactoringProblem(0, 0)], |
| 148 <server.RefactoringProblem>[_serverRefactoringProblem('b', 5)], | 150 <server.RefactoringProblem>[serverRefactoringProblem(2, 4)], |
| 149 <server.RefactoringProblem>[_serverRefactoringProblem('c', 9)], | 151 <server.RefactoringProblem>[serverRefactoringProblem(4, 8)], |
| 150 change: _serverSourceChange(), | 152 change: serverSourceChange(6, 12), |
| 151 potentialEdits: <String>['f']); | 153 potentialEdits: <String>['f']); |
| 152 expect( | 154 expect( |
| 153 converter.convertEditGetRefactoringResult( | 155 converter.convertEditGetRefactoringResult( |
| 154 plugin.RefactoringKind.MOVE_FILE, initial), | 156 plugin.RefactoringKind.MOVE_FILE, initial), |
| 155 expected); | 157 expected); |
| 156 } | 158 } |
| 157 | 159 |
| 158 void test_convertFoldingRegion() { | 160 void test_convertFoldingRegion() { |
| 159 plugin.FoldingRegion initial = | 161 plugin.FoldingRegion initial = pluginFoldingRegion(1, 2); |
| 160 new plugin.FoldingRegion(plugin.FoldingKind.COMMENT, 1, 2); | 162 server.FoldingRegion expected = serverFoldingRegion(1, 2); |
| 161 server.FoldingRegion expected = | |
| 162 new server.FoldingRegion(server.FoldingKind.COMMENT, 1, 2); | |
| 163 expect(converter.convertFoldingRegion(initial), expected); | 163 expect(converter.convertFoldingRegion(initial), expected); |
| 164 } | 164 } |
| 165 | 165 |
| 166 void test_convertHighlightRegion() { | 166 void test_convertHighlightRegion() { |
| 167 plugin.HighlightRegion initial = | 167 plugin.HighlightRegion initial = pluginHighlightRegion(1, 2); |
| 168 new plugin.HighlightRegion(plugin.HighlightRegionType.FIELD, 1, 2); | 168 server.HighlightRegion expected = serverHighlightRegion(1, 2); |
| 169 server.HighlightRegion expected = | |
| 170 new server.HighlightRegion(server.HighlightRegionType.FIELD, 1, 2); | |
| 171 expect(converter.convertHighlightRegion(initial), expected); | 169 expect(converter.convertHighlightRegion(initial), expected); |
| 172 } | 170 } |
| 173 | 171 |
| 174 void test_convertOccurrences() { | 172 void test_convertOccurrences() { |
| 175 plugin.Occurrences initial = | 173 plugin.Occurrences initial = pluginOccurrences(1, 1); |
| 176 new plugin.Occurrences(_pluginElement(1, 1), <int>[6, 7], 8); | 174 server.Occurrences expected = serverOccurrences(1, 1); |
| 177 server.Occurrences expected = | |
| 178 new server.Occurrences(_serverElement(1, 1), <int>[6, 7], 8); | |
| 179 expect(converter.convertOccurrences(initial), expected); | 175 expect(converter.convertOccurrences(initial), expected); |
| 180 } | 176 } |
| 181 | 177 |
| 182 void test_convertOutline() { | 178 void test_convertOutline() { |
| 183 plugin.Outline initial = new plugin.Outline(_pluginElement(1, 1), 6, 7, | 179 plugin.Outline initial = new plugin.Outline(pluginElement(1, 1), 6, 7, |
| 184 children: <plugin.Outline>[ | 180 children: <plugin.Outline>[ |
| 185 new plugin.Outline(_pluginElement(6, 8), 14, 15) | 181 new plugin.Outline(pluginElement(6, 8), 14, 15) |
| 186 ]); | 182 ]); |
| 187 server.Outline expected = new server.Outline(_serverElement(1, 1), 6, 7, | 183 server.Outline expected = new server.Outline(serverElement(1, 1), 6, 7, |
| 188 children: <server.Outline>[ | 184 children: <server.Outline>[ |
| 189 new server.Outline(_serverElement(6, 8), 14, 15) | 185 new server.Outline(serverElement(6, 8), 14, 15) |
| 190 ]); | 186 ]); |
| 191 expect(converter.convertOutline(initial), expected); | 187 expect(converter.convertOutline(initial), expected); |
| 192 } | 188 } |
| 193 | 189 |
| 194 void test_convertPrioritizedSourceChange() { | 190 void test_convertPrioritizedSourceChange() { |
| 195 plugin.PrioritizedSourceChange initial = | 191 plugin.PrioritizedSourceChange initial = |
| 196 new plugin.PrioritizedSourceChange(100, _pluginSourceChange()); | 192 new plugin.PrioritizedSourceChange(100, pluginSourceChange(0, 0)); |
| 197 server.SourceChange expected = _serverSourceChange(); | 193 server.SourceChange expected = serverSourceChange(0, 0); |
| 198 expect(converter.convertPrioritizedSourceChange(initial), expected); | 194 expect(converter.convertPrioritizedSourceChange(initial), expected); |
| 199 } | 195 } |
| 200 | 196 |
| 201 void test_convertRefactoringFeedback_convertGetterToMethod() { | 197 void test_convertRefactoringFeedback_convertGetterToMethod() { |
| 202 plugin.ConvertGetterToMethodFeedback initial = | 198 plugin.ConvertGetterToMethodFeedback initial = |
| 203 new plugin.ConvertGetterToMethodFeedback(); | 199 new plugin.ConvertGetterToMethodFeedback(); |
| 204 expect( | 200 expect( |
| 205 converter.convertRefactoringFeedback( | 201 converter.convertRefactoringFeedback( |
| 206 plugin.RefactoringKind.CONVERT_GETTER_TO_METHOD, initial), | 202 plugin.RefactoringKind.CONVERT_GETTER_TO_METHOD, initial), |
| 207 isNull); | 203 isNull); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 plugin.RefactoringKind.RENAME: server.RefactoringKind.RENAME, | 320 plugin.RefactoringKind.RENAME: server.RefactoringKind.RENAME, |
| 325 plugin.RefactoringKind.SORT_MEMBERS: server.RefactoringKind.SORT_MEMBERS, | 321 plugin.RefactoringKind.SORT_MEMBERS: server.RefactoringKind.SORT_MEMBERS, |
| 326 }; | 322 }; |
| 327 kindMap.forEach( | 323 kindMap.forEach( |
| 328 (plugin.RefactoringKind pluginKind, server.RefactoringKind serverKind) { | 324 (plugin.RefactoringKind pluginKind, server.RefactoringKind serverKind) { |
| 329 expect(converter.convertRefactoringKind(pluginKind), serverKind); | 325 expect(converter.convertRefactoringKind(pluginKind), serverKind); |
| 330 }); | 326 }); |
| 331 } | 327 } |
| 332 | 328 |
| 333 void test_convertSourceChange() { | 329 void test_convertSourceChange() { |
| 334 plugin.SourceChange initial = _pluginSourceChange(); | 330 plugin.SourceChange initial = pluginSourceChange(0, 0); |
| 335 server.SourceChange expected = _serverSourceChange(); | 331 server.SourceChange expected = serverSourceChange(0, 0); |
| 336 expect(converter.convertSourceChange(initial), expected); | 332 expect(converter.convertSourceChange(initial), expected); |
| 337 } | 333 } |
| 338 | |
| 339 String _fileName(int index) => '${strings[index]}.dart'; | |
| 340 | |
| 341 plugin.AnalysisError _pluginAnalysisError() => new plugin.AnalysisError( | |
| 342 plugin.AnalysisErrorSeverity.ERROR, | |
| 343 plugin.AnalysisErrorType.COMPILE_TIME_ERROR, | |
| 344 new plugin.Location('a.dart', 1, 2, 3, 4), | |
| 345 'm', | |
| 346 'c', | |
| 347 correction: 'n', | |
| 348 hasFix: true); | |
| 349 | |
| 350 /** | |
| 351 * On return, increment [stringIndex] by 5 and [intIndex] by 5. | |
| 352 */ | |
| 353 plugin.Element _pluginElement(int stringIndex, int intIndex) => | |
| 354 new plugin.Element( | |
| 355 plugin.ElementKind.CLASS, strings[stringIndex++], intIndex++, | |
| 356 location: new plugin.Location(_fileName(stringIndex++), intIndex++, | |
| 357 intIndex++, intIndex++, intIndex++), | |
| 358 parameters: strings[stringIndex++], | |
| 359 returnType: strings[stringIndex++], | |
| 360 typeParameters: strings[stringIndex++]); | |
| 361 | |
| 362 plugin.Location _pluginLocation(String baseName, int index) => | |
| 363 new plugin.Location( | |
| 364 '$baseName.dart', index, index + 1, index + 2, index + 3); | |
| 365 | |
| 366 plugin.RefactoringProblem _pluginRefactoringProblem( | |
| 367 String baseName, int index) => | |
| 368 new plugin.RefactoringProblem( | |
| 369 plugin.RefactoringProblemSeverity.FATAL, baseName, | |
| 370 location: _pluginLocation(baseName, index)); | |
| 371 | |
| 372 plugin.SourceChange _pluginSourceChange() => new plugin.SourceChange('m', | |
| 373 edits: <plugin.SourceFileEdit>[ | |
| 374 new plugin.SourceFileEdit('a.dart', 1, | |
| 375 edits: <plugin.SourceEdit>[new plugin.SourceEdit(2, 3, 'r')]) | |
| 376 ], | |
| 377 linkedEditGroups: <plugin.LinkedEditGroup>[ | |
| 378 new plugin.LinkedEditGroup( | |
| 379 <plugin.Position>[new plugin.Position('b.dart', 4)], | |
| 380 5, | |
| 381 <plugin.LinkedEditSuggestion>[ | |
| 382 new plugin.LinkedEditSuggestion( | |
| 383 'v', plugin.LinkedEditSuggestionKind.METHOD) | |
| 384 ]) | |
| 385 ], | |
| 386 selection: new plugin.Position('c.dart', 6)); | |
| 387 | |
| 388 server.AnalysisError _serverAnalysisError() { | |
| 389 return new server.AnalysisError( | |
| 390 server.AnalysisErrorSeverity.ERROR, | |
| 391 server.AnalysisErrorType.COMPILE_TIME_ERROR, | |
| 392 new server.Location('a.dart', 1, 2, 3, 4), | |
| 393 'm', | |
| 394 'c', | |
| 395 correction: 'n', | |
| 396 hasFix: true); | |
| 397 } | |
| 398 | |
| 399 /** | |
| 400 * On return, increment [stringIndex] by 5 and [intIndex] by 5. | |
| 401 */ | |
| 402 server.Element _serverElement(int stringIndex, int intIndex) => | |
| 403 new server.Element( | |
| 404 server.ElementKind.CLASS, strings[stringIndex++], intIndex++, | |
| 405 location: new server.Location(_fileName(stringIndex++), intIndex++, | |
| 406 intIndex++, intIndex++, intIndex++), | |
| 407 parameters: strings[stringIndex++], | |
| 408 returnType: strings[stringIndex++], | |
| 409 typeParameters: strings[stringIndex++]); | |
| 410 | |
| 411 server.Location _serverLocation(String baseName, int index) => | |
| 412 new server.Location( | |
| 413 '$baseName.dart', index, index + 1, index + 2, index + 3); | |
| 414 | |
| 415 server.RefactoringProblem _serverRefactoringProblem( | |
| 416 String baseName, int index) => | |
| 417 new server.RefactoringProblem( | |
| 418 server.RefactoringProblemSeverity.FATAL, baseName, | |
| 419 location: _serverLocation(baseName, index)); | |
| 420 | |
| 421 server.SourceChange _serverSourceChange() => new server.SourceChange('m', | |
| 422 edits: <server.SourceFileEdit>[ | |
| 423 new server.SourceFileEdit('a.dart', 1, | |
| 424 edits: <server.SourceEdit>[new server.SourceEdit(2, 3, 'r')]) | |
| 425 ], | |
| 426 linkedEditGroups: <server.LinkedEditGroup>[ | |
| 427 new server.LinkedEditGroup( | |
| 428 <server.Position>[new server.Position('b.dart', 4)], | |
| 429 5, | |
| 430 <server.LinkedEditSuggestion>[ | |
| 431 new server.LinkedEditSuggestion( | |
| 432 'v', server.LinkedEditSuggestionKind.METHOD) | |
| 433 ]) | |
| 434 ], | |
| 435 selection: new server.Position('c.dart', 6)); | |
| 436 } | 334 } |
| OLD | NEW |