@@ -105,30 +105,33 @@ class DocumentSymbolsVisitor with sass.RecursiveStatementVisitor {
105
105
}
106
106
107
107
if (node.name.asPlain == 'font-face' ) {
108
+ var nameSpan = node.name.span;
108
109
_collect (
109
- name: node.name.span .text,
110
+ name: nameSpan .text,
110
111
referenceKind: ReferenceKind .fontFace,
111
112
symbolRange: toRange (node.span),
112
- nameRange: toRange (node.name.span ),
113
+ nameRange: toRange (nameSpan ),
113
114
);
114
115
} else if (node.name.asPlain! .startsWith ('keyframes' )) {
115
- var keyframesName = node.span.context.split (' ' ).elementAtOrNull (1 );
116
+ var span = node.span;
117
+ var nameSpan = node.name.span;
118
+ var keyframesName = span.context.split (' ' ).elementAtOrNull (1 );
116
119
if (keyframesName != null ) {
117
120
var keyframesNameRange = lsp.Range (
118
121
start: lsp.Position (
119
- line: node.name.span .start.line,
120
- character: node.name.span .end.column + 1 ,
122
+ line: nameSpan .start.line,
123
+ character: nameSpan .end.column + 1 ,
121
124
),
122
125
end: lsp.Position (
123
- line: node.name.span .end.line,
124
- character: node.name.span .end.column + 1 + keyframesName.length,
126
+ line: nameSpan .end.line,
127
+ character: nameSpan .end.column + 1 + keyframesName.length,
125
128
),
126
129
);
127
130
128
131
_collect (
129
132
name: keyframesName,
130
133
referenceKind: ReferenceKind .keyframe,
131
- symbolRange: toRange (node. span),
134
+ symbolRange: toRange (span),
132
135
nameRange: keyframesNameRange,
133
136
);
134
137
}
@@ -141,11 +144,12 @@ class DocumentSymbolsVisitor with sass.RecursiveStatementVisitor {
141
144
var isCustomProperty =
142
145
node.name.isPlain && node.name.asPlain! .startsWith ("--" );
143
146
if (isCustomProperty) {
147
+ var nameSpan = node.name.span;
144
148
_collect (
145
- name: node.name.span .text,
149
+ name: nameSpan .text,
146
150
referenceKind: ReferenceKind .customProperty,
147
151
symbolRange: toRange (node.span),
148
- nameRange: toRange (node.name.span ),
152
+ nameRange: toRange (nameSpan ),
149
153
);
150
154
}
151
155
}
@@ -172,14 +176,15 @@ class DocumentSymbolsVisitor with sass.RecursiveStatementVisitor {
172
176
}
173
177
174
178
// node.query.span includes whitespace, so the range doesn't match node.query.asPlain
179
+ var querySpan = node.query.span;
175
180
var nameRange = lsp.Range (
176
181
start: lsp.Position (
177
- line: node.query.span .start.line,
178
- character: node.query.span .start.column,
182
+ line: querySpan .start.line,
183
+ character: querySpan .start.column,
179
184
),
180
185
end: lsp.Position (
181
- line: node.query.span .end.line,
182
- character: node.query.span .start.column + node.query.asPlain! .length,
186
+ line: querySpan .end.line,
187
+ character: querySpan .start.column + node.query.asPlain! .length,
183
188
),
184
189
);
185
190
@@ -222,16 +227,17 @@ class DocumentSymbolsVisitor with sass.RecursiveStatementVisitor {
222
227
lsp.Range ? symbolRange;
223
228
224
229
for (var component in complexSelector.components) {
225
- var selector = component.selector;
230
+ var selectorSpan = component.selector.span;
231
+ var span = node.span;
226
232
227
233
if (name == null ) {
228
- name = selector.span .text;
234
+ name = selectorSpan .text;
229
235
} else {
230
- name = '$name ${selector . span .text }' ;
236
+ name = '$name ${selectorSpan .text }' ;
231
237
}
232
238
233
239
if (nameRange == null ) {
234
- nameRange = selectorNameRange (node, selector);
240
+ nameRange = selectorNameRange (node: span , selector: selectorSpan );
235
241
236
242
// symbolRange: start position of selector's nameRange, end of stylerule (node.span.end).
237
243
symbolRange = lsp.Range (
@@ -240,17 +246,17 @@ class DocumentSymbolsVisitor with sass.RecursiveStatementVisitor {
240
246
character: nameRange.start.character,
241
247
),
242
248
end: lsp.Position (
243
- line: node. span.end.line,
244
- character: node. span.end.column,
249
+ line: span.end.line,
250
+ character: span.end.column,
245
251
),
246
252
);
247
253
} else {
248
254
// Move the end of the name range down to include this selector component
249
255
nameRange = lsp.Range (
250
256
start: nameRange.start,
251
257
end: lsp.Position (
252
- line: node. span.start.line + selector.span .end.line,
253
- character: node. span.start.column + selector.span .end.column,
258
+ line: span.start.line + selectorSpan .end.line,
259
+ character: span.start.column + selectorSpan .end.column,
254
260
),
255
261
);
256
262
}
@@ -271,20 +277,21 @@ class DocumentSymbolsVisitor with sass.RecursiveStatementVisitor {
271
277
@override
272
278
void visitVariableDeclaration (node) {
273
279
super .visitVariableDeclaration (node);
280
+ var nameSpan = node.nameSpan;
274
281
_collect (
275
- name: node. nameSpan.text,
282
+ name: nameSpan.text,
276
283
referenceKind: ReferenceKind .variable,
277
284
docComment: node.comment? .docComment,
278
285
symbolRange: toRange (node.span),
279
286
nameRange: lsp.Range (
280
287
start: lsp.Position (
281
- line: node. nameSpan.start.line,
288
+ line: nameSpan.start.line,
282
289
// the span includes $
283
- character: node. nameSpan.start.column,
290
+ character: nameSpan.start.column,
284
291
),
285
292
end: lsp.Position (
286
- line: node. nameSpan.end.line,
287
- character: node. nameSpan.end.column,
293
+ line: nameSpan.end.line,
294
+ character: nameSpan.end.column,
288
295
),
289
296
),
290
297
);
0 commit comments