// RUN: %sourcekitd-test -req=open -print-raw-response %S/Inputs/syntaxmap-multiple-edits.swift == -req=edit -print-raw-response -pos=6:13 -length=1 -replace=" " %S/Inputs/syntaxmap-multiple-edits.swift == -req="edit" -pos=14:1 -length=0 -replace="let y = 2" -print-raw-response %S/Inputs/syntaxmap-multiple-edits.swift == -req="edit" -pos=8:10 -length=7 -replace='Int64 = 3; let z = 2' -print-raw-response %S/Inputs/syntaxmap-multiple-edits.swift == -req="edit" -pos=4:9 -length=2 -replace='50 * 95 - 100' -print-raw-response %S/Inputs/syntaxmap-multiple-edits.swift == -req="edit" -pos=1:1 -length=0 -replace='func firstFunc(x: Int) {}' -print-raw-response %S/Inputs/syntaxmap-multiple-edits.swift | %sed_clean > %t.response // RUN: %FileCheck -input-file=%t.response %s // Initial syntax map // CHECK: {{^}}{ // CHECK-NEXT: key.offset: 0, // CHECK-NEXT: key.length: 152, // CHECK-NEXT: key.diagnostic_stage: source.diagnostic.stage.swift.parse, // CHECK-NEXT: key.syntaxmap: [ // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment, // CHECK-NEXT: key.offset: 2, // CHECK-NEXT: key.length: 14 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment, // CHECK-NEXT: key.offset: 16, // CHECK-NEXT: key.length: 6 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment.field, // CHECK-NEXT: key.offset: 22, // CHECK-NEXT: key.length: 4 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment, // CHECK-NEXT: key.offset: 26, // CHECK-NEXT: key.length: 19 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 45, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 49, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.number, // CHECK-NEXT: key.offset: 53, // CHECK-NEXT: key.length: 2 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 57, // CHECK-NEXT: key.length: 6 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 64, // CHECK-NEXT: key.length: 5 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 74, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 78, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier, // CHECK-NEXT: key.offset: 81, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 87, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 91, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 95, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier, // CHECK-NEXT: key.offset: 98, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 104, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 109, // CHECK-NEXT: key.length: 4 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 114, // CHECK-NEXT: key.length: 4 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 127, // CHECK-NEXT: key.length: 6 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 134, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.operator, // CHECK-NEXT: key.offset: 135, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 136, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.operator, // CHECK-NEXT: key.offset: 138, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 140, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.operator, // CHECK-NEXT: key.offset: 141, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 142, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: } // CHECK-NEXT: ], // After replacing a space with a space // CHECK: {{^}}{ // CHECK-NEXT: key.diagnostic_stage: source.diagnostic.stage.swift.parse, // CHECK-NEXT: key.syntaxmap: [ // CHECK-NEXT: ], // After adding code at the end of the file // CHECK: {{^}}{ // CHECK-NEXT: key.offset: 151, // CHECK-NEXT: key.length: 9, // CHECK-NEXT: key.diagnostic_stage: source.diagnostic.stage.swift.parse, // CHECK-NEXT: key.syntaxmap: [ // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 151, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 155, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.number, // CHECK-NEXT: key.offset: 159, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: } // CHECK-NEXT: ], // After inserting more than we removed // CHECK: {{^}}{ // CHECK-NEXT: key.offset: 98, // CHECK-NEXT: key.length: 20, // CHECK-NEXT: key.diagnostic_stage: source.diagnostic.stage.swift.parse, // CHECK-NEXT: key.syntaxmap: [ // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier, // CHECK-NEXT: key.offset: 98, // CHECK-NEXT: key.length: 5 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.number, // CHECK-NEXT: key.offset: 106, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 109, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 113, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.number, // CHECK-NEXT: key.offset: 117, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: } // CHECK-NEXT: ], // After inserting less than we removed // CHECK: {{^}}{ // CHECK-NEXT: key.offset: 53, // CHECK-NEXT: key.length: 13, // CHECK-NEXT: key.diagnostic_stage: source.diagnostic.stage.swift.parse, // CHECK-NEXT: key.syntaxmap: [ // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.number, // CHECK-NEXT: key.offset: 53, // CHECK-NEXT: key.length: 2 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.operator, // CHECK-NEXT: key.offset: 56, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.number, // CHECK-NEXT: key.offset: 58, // CHECK-NEXT: key.length: 2 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.operator, // CHECK-NEXT: key.offset: 61, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.number, // CHECK-NEXT: key.offset: 63, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: } // CHECK-NEXT: ], // After adding code at the start of the file // CHECK: {{^}}{ // CHECK-NEXT: key.offset: 0, // CHECK-NEXT: key.length: 21, // CHECK-NEXT: key.diagnostic_stage: source.diagnostic.stage.swift.parse, // CHECK-NEXT: key.syntaxmap: [ // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword, // CHECK-NEXT: key.offset: 0, // CHECK-NEXT: key.length: 4 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 5, // CHECK-NEXT: key.length: 9 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier, // CHECK-NEXT: key.offset: 15, // CHECK-NEXT: key.length: 1 // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier, // CHECK-NEXT: key.offset: 18, // CHECK-NEXT: key.length: 3 // CHECK-NEXT: } // CHECK-NEXT: ],