Skip to content

Commit 07b891c

Browse files
author
Nathan Hawes
committed
[syntax-coloring] Add test with nested tokens
1 parent 9fd3f69 commit 07b891c

File tree

2 files changed

+229
-0
lines changed

2 files changed

+229
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/// This function does stuff
2+
///
3+
/// - parameter first: The first parameter
4+
///
5+
/// - returns: The return value
6+
func foo(first: Int) -> String {
7+
return ""
8+
}
9+
10+
let x = "Changing this string should only affect this line"
11+
12+
/// This function does other stuff
13+
///
14+
/// - parameter first: The first parameter
15+
///
16+
/// - returns: The return value
17+
func bar(first: Int) -> String {
18+
return ""
19+
}
Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,210 @@
1+
// RUN: %sourcekitd-test -req=open -print-raw-response %S/Inputs/syntaxmap-edit-nested-token.swift == -req=edit -print-raw-response %S/Inputs/syntaxmap-edit-nested-token.swift -pos=10:43 -replace='impact' -length=6 | %sed_clean > %t.response
2+
// RUN: %FileCheck -input-file=%t.response %s
3+
4+
// Original file contents
5+
6+
// CHECK: {{^}}{
7+
// CHECK-NEXT: key.offset: 0,
8+
// CHECK-NEXT: key.length: 386,
9+
// CHECK-NEXT: key.diagnostic_stage: source.diagnostic.stage.swift.parse,
10+
// CHECK-NEXT: key.syntaxmap: [
11+
// CHECK-NEXT: {
12+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
13+
// CHECK-NEXT: key.offset: 0,
14+
// CHECK-NEXT: key.length: 29
15+
// CHECK-NEXT: },
16+
// CHECK-NEXT: {
17+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
18+
// CHECK-NEXT: key.offset: 29,
19+
// CHECK-NEXT: key.length: 4
20+
// CHECK-NEXT: },
21+
// CHECK-NEXT: {
22+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
23+
// CHECK-NEXT: key.offset: 33,
24+
// CHECK-NEXT: key.length: 6
25+
// CHECK-NEXT: },
26+
// CHECK-NEXT: {
27+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment.field,
28+
// CHECK-NEXT: key.offset: 39,
29+
// CHECK-NEXT: key.length: 9
30+
// CHECK-NEXT: },
31+
// CHECK-NEXT: {
32+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
33+
// CHECK-NEXT: key.offset: 48,
34+
// CHECK-NEXT: key.length: 28
35+
// CHECK-NEXT: },
36+
// CHECK-NEXT: {
37+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
38+
// CHECK-NEXT: key.offset: 76,
39+
// CHECK-NEXT: key.length: 4
40+
// CHECK-NEXT: },
41+
// CHECK-NEXT: {
42+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
43+
// CHECK-NEXT: key.offset: 80,
44+
// CHECK-NEXT: key.length: 6
45+
// CHECK-NEXT: },
46+
// CHECK-NEXT: {
47+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment.field,
48+
// CHECK-NEXT: key.offset: 86,
49+
// CHECK-NEXT: key.length: 7
50+
// CHECK-NEXT: },
51+
// CHECK-NEXT: {
52+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
53+
// CHECK-NEXT: key.offset: 93,
54+
// CHECK-NEXT: key.length: 19
55+
// CHECK-NEXT: },
56+
// CHECK-NEXT: {
57+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
58+
// CHECK-NEXT: key.offset: 112,
59+
// CHECK-NEXT: key.length: 4
60+
// CHECK-NEXT: },
61+
// CHECK-NEXT: {
62+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
63+
// CHECK-NEXT: key.offset: 117,
64+
// CHECK-NEXT: key.length: 3
65+
// CHECK-NEXT: },
66+
// CHECK-NEXT: {
67+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
68+
// CHECK-NEXT: key.offset: 121,
69+
// CHECK-NEXT: key.length: 5
70+
// CHECK-NEXT: },
71+
// CHECK-NEXT: {
72+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier,
73+
// CHECK-NEXT: key.offset: 128,
74+
// CHECK-NEXT: key.length: 3
75+
// CHECK-NEXT: },
76+
// CHECK-NEXT: {
77+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier,
78+
// CHECK-NEXT: key.offset: 136,
79+
// CHECK-NEXT: key.length: 6
80+
// CHECK-NEXT: },
81+
// CHECK-NEXT: {
82+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
83+
// CHECK-NEXT: key.offset: 147,
84+
// CHECK-NEXT: key.length: 6
85+
// CHECK-NEXT: },
86+
// CHECK-NEXT: {
87+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.string,
88+
// CHECK-NEXT: key.offset: 154,
89+
// CHECK-NEXT: key.length: 2
90+
// CHECK-NEXT: },
91+
// CHECK-NEXT: {
92+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
93+
// CHECK-NEXT: key.offset: 160,
94+
// CHECK-NEXT: key.length: 3
95+
// CHECK-NEXT: },
96+
// CHECK-NEXT: {
97+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
98+
// CHECK-NEXT: key.offset: 164,
99+
// CHECK-NEXT: key.length: 1
100+
// CHECK-NEXT: },
101+
// CHECK-NEXT: {
102+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.string,
103+
// CHECK-NEXT: key.offset: 168,
104+
// CHECK-NEXT: key.length: 51
105+
// CHECK-NEXT: },
106+
// CHECK-NEXT: {
107+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
108+
// CHECK-NEXT: key.offset: 221,
109+
// CHECK-NEXT: key.length: 35
110+
// CHECK-NEXT: },
111+
// CHECK-NEXT: {
112+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
113+
// CHECK-NEXT: key.offset: 256,
114+
// CHECK-NEXT: key.length: 4
115+
// CHECK-NEXT: },
116+
// CHECK-NEXT: {
117+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
118+
// CHECK-NEXT: key.offset: 260,
119+
// CHECK-NEXT: key.length: 6
120+
// CHECK-NEXT: },
121+
// CHECK-NEXT: {
122+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment.field,
123+
// CHECK-NEXT: key.offset: 266,
124+
// CHECK-NEXT: key.length: 9
125+
// CHECK-NEXT: },
126+
// CHECK-NEXT: {
127+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
128+
// CHECK-NEXT: key.offset: 275,
129+
// CHECK-NEXT: key.length: 28
130+
// CHECK-NEXT: },
131+
// CHECK-NEXT: {
132+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
133+
// CHECK-NEXT: key.offset: 303,
134+
// CHECK-NEXT: key.length: 4
135+
// CHECK-NEXT: },
136+
// CHECK-NEXT: {
137+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
138+
// CHECK-NEXT: key.offset: 307,
139+
// CHECK-NEXT: key.length: 6
140+
// CHECK-NEXT: },
141+
// CHECK-NEXT: {
142+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment.field,
143+
// CHECK-NEXT: key.offset: 313,
144+
// CHECK-NEXT: key.length: 7
145+
// CHECK-NEXT: },
146+
// CHECK-NEXT: {
147+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.doccomment,
148+
// CHECK-NEXT: key.offset: 320,
149+
// CHECK-NEXT: key.length: 19
150+
// CHECK-NEXT: },
151+
// CHECK-NEXT: {
152+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
153+
// CHECK-NEXT: key.offset: 339,
154+
// CHECK-NEXT: key.length: 4
155+
// CHECK-NEXT: },
156+
// CHECK-NEXT: {
157+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
158+
// CHECK-NEXT: key.offset: 344,
159+
// CHECK-NEXT: key.length: 3
160+
// CHECK-NEXT: },
161+
// CHECK-NEXT: {
162+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
163+
// CHECK-NEXT: key.offset: 348,
164+
// CHECK-NEXT: key.length: 5
165+
// CHECK-NEXT: },
166+
// CHECK-NEXT: {
167+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier,
168+
// CHECK-NEXT: key.offset: 355,
169+
// CHECK-NEXT: key.length: 3
170+
// CHECK-NEXT: },
171+
// CHECK-NEXT: {
172+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.typeidentifier,
173+
// CHECK-NEXT: key.offset: 363,
174+
// CHECK-NEXT: key.length: 6
175+
// CHECK-NEXT: },
176+
// CHECK-NEXT: {
177+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
178+
// CHECK-NEXT: key.offset: 374,
179+
// CHECK-NEXT: key.length: 6
180+
// CHECK-NEXT: },
181+
// CHECK-NEXT: {
182+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.string,
183+
// CHECK-NEXT: key.offset: 381,
184+
// CHECK-NEXT: key.length: 2
185+
// CHECK-NEXT: }
186+
// CHECK-NEXT: ],
187+
188+
// After editing a string in between nested comments
189+
190+
// CHECK: {{^}}{
191+
// CHECK-NEXT: key.offset: 160,
192+
// CHECK-NEXT: key.length: 60,
193+
// CHECK-NEXT: key.diagnostic_stage: source.diagnostic.stage.swift.parse,
194+
// CHECK-NEXT: key.syntaxmap: [
195+
// CHECK-NEXT: {
196+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.keyword,
197+
// CHECK-NEXT: key.offset: 160,
198+
// CHECK-NEXT: key.length: 3
199+
// CHECK-NEXT: },
200+
// CHECK-NEXT: {
201+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.identifier,
202+
// CHECK-NEXT: key.offset: 164,
203+
// CHECK-NEXT: key.length: 1
204+
// CHECK-NEXT: },
205+
// CHECK-NEXT: {
206+
// CHECK-NEXT: key.kind: source.lang.swift.syntaxtype.string,
207+
// CHECK-NEXT: key.offset: 168,
208+
// CHECK-NEXT: key.length: 51
209+
// CHECK-NEXT: }
210+
// CHECK-NEXT: ],

0 commit comments

Comments
 (0)