mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Multiline strings (and multiline tokens in general) were not well supported by the existing highlighting logic. Edits on one line can make tokens appear/disappear on previous and later lines, which broke assumptions in the existing logic, and left odd ranges of source unhighlighted or out of date. This patch accounts for these changes, and also changes unterminated multiline (and regular strings) to still be highlighted as strings, so the rest of the file doesn't look like plain text. Resolves rdar://problem/32148117.
70 lines
2.5 KiB
Swift
70 lines
2.5 KiB
Swift
// RUN: %sourcekitd-test -req=open -print-raw-response %S/Inputs/syntaxmap-edit-block-comment.swift == -req=edit -print-raw-response %S/Inputs/syntaxmap-edit-block-comment.swift -pos=3:2 -replace=" " -length=1 == -req=edit -print-raw-response %S/Inputs/syntaxmap-edit-block-comment.swift -pos=3:2 -replace="/" -length=1 | %sed_clean > %t.response
|
|
// RUN: %FileCheck -input-file=%t.response %s
|
|
|
|
// CHECK: {{^}}{
|
|
// CHECK-NEXT: key.offset: 0,
|
|
// CHECK-NEXT: key.length: 29,
|
|
// 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: 3
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
|
|
// CHECK-NEXT: key.offset: 4,
|
|
// CHECK-NEXT: key.length: 1
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.comment,
|
|
// CHECK-NEXT: key.offset: 8,
|
|
// CHECK-NEXT: key.length: 6
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
|
|
// CHECK-NEXT: key.offset: 15,
|
|
// CHECK-NEXT: key.length: 4
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
|
|
// CHECK-NEXT: key.offset: 20,
|
|
// CHECK-NEXT: key.length: 3
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: ],
|
|
|
|
// CHECK: {{^}}{
|
|
// CHECK-NEXT: key.offset: 8,
|
|
// 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.comment,
|
|
// CHECK-NEXT: key.offset: 8,
|
|
// CHECK-NEXT: key.length: 21
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: ],
|
|
|
|
// CHECK: {{^}}{
|
|
// CHECK-NEXT: key.offset: 8,
|
|
// 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.comment,
|
|
// CHECK-NEXT: key.offset: 8,
|
|
// CHECK-NEXT: key.length: 6
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
|
|
// CHECK-NEXT: key.offset: 15,
|
|
// CHECK-NEXT: key.length: 4
|
|
// CHECK-NEXT: },
|
|
// CHECK-NEXT: {
|
|
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
|
|
// CHECK-NEXT: key.offset: 20,
|
|
// CHECK-NEXT: key.length: 3
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: ],
|
|
|