1
1
import 'package:sass_api/sass_api.dart' as sass;
2
2
3
- class NodeAtOffsetVisitor implements sass.AstSearchVisitor <sass.AstNode > {
3
+ class NodeAtOffsetVisitor
4
+ with
5
+ sass.StatementSearchVisitor <sass.AstNode >,
6
+ sass.AstSearchVisitor <sass.AstNode > {
4
7
sass.AstNode ? _candidate;
5
8
final int _offset;
6
9
@@ -10,6 +13,7 @@ class NodeAtOffsetVisitor implements sass.AstSearchVisitor<sass.AstNode> {
10
13
sass.AstNode ? _process (sass.AstNode node) {
11
14
var spanContainsOffset =
12
15
node.span.start.offset <= _offset && node.span.end.offset >= _offset;
16
+
13
17
if (spanContainsOffset) {
14
18
if (_candidate == null ) {
15
19
_candidate = node;
@@ -18,7 +22,7 @@ class NodeAtOffsetVisitor implements sass.AstSearchVisitor<sass.AstNode> {
18
22
}
19
23
}
20
24
21
- if (node.span.start.offset > _offset) {
25
+ if (node.span.start.offset > _offset || node is sass. Stylesheet ) {
22
26
return _candidate;
23
27
}
24
28
@@ -27,33 +31,33 @@ class NodeAtOffsetVisitor implements sass.AstSearchVisitor<sass.AstNode> {
27
31
28
32
@override
29
33
sass.AstNode ? visitArgumentInvocation (sass.ArgumentInvocation invocation) {
30
- return _process (invocation);
34
+ return super . visitArgumentInvocation (invocation) ?? _process (invocation);
31
35
}
32
36
33
37
@override
34
38
sass.AstNode ? visitAtRootRule (sass.AtRootRule node) {
35
- return _process (node);
39
+ return super . visitAtRootRule (node) ?? _process (node);
36
40
}
37
41
38
42
@override
39
43
sass.AstNode ? visitAtRule (sass.AtRule node) {
40
- return _process (node);
44
+ return super . visitAtRule (node) ?? _process (node);
41
45
}
42
46
43
47
@override
44
48
sass.AstNode ? visitBinaryOperationExpression (
45
49
sass.BinaryOperationExpression node) {
46
- return _process (node);
50
+ return super . visitBinaryOperationExpression (node) ?? _process (node);
47
51
}
48
52
49
53
@override
50
54
sass.AstNode ? visitBooleanExpression (sass.BooleanExpression node) {
51
- return _process (node);
55
+ return super . visitBooleanExpression (node) ?? _process (node);
52
56
}
53
57
54
58
@override
55
59
sass.AstNode ? visitCallableDeclaration (sass.CallableDeclaration node) {
56
- return _process (node);
60
+ return super . visitCallableDeclaration (node) ?? _process (node);
57
61
}
58
62
59
63
@override
@@ -64,224 +68,224 @@ class NodeAtOffsetVisitor implements sass.AstSearchVisitor<sass.AstNode> {
64
68
return result;
65
69
}
66
70
}
67
- return null ;
71
+ return super . visitChildren (children) ;
68
72
}
69
73
70
74
@override
71
75
sass.AstNode ? visitColorExpression (sass.ColorExpression node) {
72
- return _process (node);
76
+ return super . visitColorExpression (node) ?? _process (node);
73
77
}
74
78
75
79
@override
76
80
sass.AstNode ? visitContentBlock (sass.ContentBlock node) {
77
- return _process (node);
81
+ return super . visitContentBlock (node) ?? _process (node);
78
82
}
79
83
80
84
@override
81
85
sass.AstNode ? visitContentRule (sass.ContentRule node) {
82
- return _process (node);
86
+ return super . visitContentRule (node) ?? _process (node);
83
87
}
84
88
85
89
@override
86
90
sass.AstNode ? visitDebugRule (sass.DebugRule node) {
87
- return _process (node);
91
+ return super . visitDebugRule (node) ?? _process (node);
88
92
}
89
93
90
94
@override
91
95
sass.AstNode ? visitDeclaration (sass.Declaration node) {
92
- return _process (node);
96
+ return super . visitDeclaration (node) ?? _process (node);
93
97
}
94
98
95
99
@override
96
100
sass.AstNode ? visitEachRule (sass.EachRule node) {
97
- return _process (node);
101
+ return super . visitEachRule (node) ?? _process (node);
98
102
}
99
103
100
104
@override
101
105
sass.AstNode ? visitErrorRule (sass.ErrorRule node) {
102
- return _process (node);
106
+ return super . visitErrorRule (node) ?? _process (node);
103
107
}
104
108
105
109
@override
106
110
sass.AstNode ? visitExpression (sass.Expression expression) {
107
- return _process (expression);
111
+ return super . visitExpression (expression) ?? _process (expression);
108
112
}
109
113
110
114
@override
111
115
sass.AstNode ? visitExtendRule (sass.ExtendRule node) {
112
- return _process (node);
116
+ return super . visitExtendRule (node) ?? _process (node);
113
117
}
114
118
115
119
@override
116
120
sass.AstNode ? visitForRule (sass.ForRule node) {
117
- return _process (node);
121
+ return super . visitForRule (node) ?? _process (node);
118
122
}
119
123
120
124
@override
121
125
sass.AstNode ? visitForwardRule (sass.ForwardRule node) {
122
- return _process (node);
126
+ return super . visitForwardRule (node) ?? _process (node);
123
127
}
124
128
125
129
@override
126
130
sass.AstNode ? visitFunctionExpression (sass.FunctionExpression node) {
127
- return _process (node);
131
+ return super . visitFunctionExpression (node) ?? _process (node);
128
132
}
129
133
130
134
@override
131
135
sass.AstNode ? visitFunctionRule (sass.FunctionRule node) {
132
- return _process (node);
136
+ return super . visitFunctionRule (node) ?? _process (node);
133
137
}
134
138
135
139
@override
136
140
sass.AstNode ? visitIfExpression (sass.IfExpression node) {
137
- return _process (node);
141
+ return super . visitIfExpression (node) ?? _process (node);
138
142
}
139
143
140
144
@override
141
145
sass.AstNode ? visitIfRule (sass.IfRule node) {
142
- return _process (node);
146
+ return super . visitIfRule (node) ?? _process (node);
143
147
}
144
148
145
149
@override
146
150
sass.AstNode ? visitImportRule (sass.ImportRule node) {
147
- return _process (node);
151
+ return super . visitImportRule (node) ?? _process (node);
148
152
}
149
153
150
154
@override
151
155
sass.AstNode ? visitIncludeRule (sass.IncludeRule node) {
152
- return _process (node);
156
+ return super . visitIncludeRule (node) ?? _process (node);
153
157
}
154
158
155
159
@override
156
160
sass.AstNode ? visitInterpolatedFunctionExpression (
157
161
sass.InterpolatedFunctionExpression node) {
158
- return _process (node);
162
+ return super . visitInterpolatedFunctionExpression (node) ?? _process (node);
159
163
}
160
164
161
165
@override
162
166
sass.AstNode ? visitInterpolation (sass.Interpolation interpolation) {
163
- return _process (interpolation);
167
+ return super . visitInterpolation (interpolation) ?? _process (interpolation);
164
168
}
165
169
166
170
@override
167
171
sass.AstNode ? visitListExpression (sass.ListExpression node) {
168
- return _process (node);
172
+ return super . visitListExpression (node) ?? _process (node);
169
173
}
170
174
171
175
@override
172
176
sass.AstNode ? visitLoudComment (sass.LoudComment node) {
173
- return _process (node);
177
+ return super . visitLoudComment (node) ?? _process (node);
174
178
}
175
179
176
180
@override
177
181
sass.AstNode ? visitMapExpression (sass.MapExpression node) {
178
- return _process (node);
182
+ return super . visitMapExpression (node) ?? _process (node);
179
183
}
180
184
181
185
@override
182
186
sass.AstNode ? visitMediaRule (sass.MediaRule node) {
183
- return _process (node);
187
+ return super . visitMediaRule (node) ?? _process (node);
184
188
}
185
189
186
190
@override
187
191
sass.AstNode ? visitMixinRule (sass.MixinRule node) {
188
- return _process (node);
192
+ return super . visitMixinRule (node) ?? _process (node);
189
193
}
190
194
191
195
@override
192
196
sass.AstNode ? visitNullExpression (sass.NullExpression node) {
193
- return _process (node);
197
+ return super . visitNullExpression (node) ?? _process (node);
194
198
}
195
199
196
200
@override
197
201
sass.AstNode ? visitNumberExpression (sass.NumberExpression node) {
198
- return _process (node);
202
+ return super . visitNumberExpression (node) ?? _process (node);
199
203
}
200
204
201
205
@override
202
206
sass.AstNode ? visitParenthesizedExpression (
203
207
sass.ParenthesizedExpression node) {
204
- return _process (node);
208
+ return super . visitParenthesizedExpression (node) ?? _process (node);
205
209
}
206
210
207
211
@override
208
212
sass.AstNode ? visitReturnRule (sass.ReturnRule node) {
209
- return _process (node);
213
+ return super . visitReturnRule (node) ?? _process (node);
210
214
}
211
215
212
216
@override
213
217
sass.AstNode ? visitSelectorExpression (sass.SelectorExpression node) {
214
- return _process (node);
218
+ return super . visitSelectorExpression (node) ?? _process (node);
215
219
}
216
220
217
221
@override
218
222
sass.AstNode ? visitSilentComment (sass.SilentComment node) {
219
- return _process (node);
223
+ return super . visitSilentComment (node) ?? _process (node);
220
224
}
221
225
222
226
@override
223
227
sass.AstNode ? visitStringExpression (sass.StringExpression node) {
224
- return _process (node);
228
+ return super . visitStringExpression (node) ?? _process (node);
225
229
}
226
230
227
231
@override
228
232
sass.AstNode ? visitStyleRule (sass.StyleRule node) {
229
- return _process (node);
233
+ return super . visitStyleRule (node) ?? _process (node);
230
234
}
231
235
232
236
@override
233
237
sass.AstNode ? visitStylesheet (sass.Stylesheet node) {
234
- return _process (node);
238
+ return super . visitStylesheet (node) ?? _process (node);
235
239
}
236
240
237
241
@override
238
242
sass.AstNode ? visitSupportsCondition (sass.SupportsCondition condition) {
239
- return _process (condition);
243
+ return super . visitSupportsCondition (condition) ?? _process (condition);
240
244
}
241
245
242
246
@override
243
247
sass.AstNode ? visitSupportsExpression (sass.SupportsExpression node) {
244
- return _process (node);
248
+ return super . visitSupportsExpression (node) ?? _process (node);
245
249
}
246
250
247
251
@override
248
252
sass.AstNode ? visitSupportsRule (sass.SupportsRule node) {
249
- return _process (node);
253
+ return super . visitSupportsRule (node) ?? _process (node);
250
254
}
251
255
252
256
@override
253
257
sass.AstNode ? visitUnaryOperationExpression (
254
258
sass.UnaryOperationExpression node) {
255
- return _process (node);
259
+ return super . visitUnaryOperationExpression (node) ?? _process (node);
256
260
}
257
261
258
262
@override
259
263
sass.AstNode ? visitUseRule (sass.UseRule node) {
260
- return _process (node);
264
+ return super . visitUseRule (node) ?? _process (node);
261
265
}
262
266
263
267
@override
264
268
sass.AstNode ? visitValueExpression (sass.ValueExpression node) {
265
- return _process (node);
269
+ return super . visitValueExpression (node) ?? _process (node);
266
270
}
267
271
268
272
@override
269
273
sass.AstNode ? visitVariableDeclaration (sass.VariableDeclaration node) {
270
- return _process (node);
274
+ return super . visitVariableDeclaration (node) ?? _process (node);
271
275
}
272
276
273
277
@override
274
278
sass.AstNode ? visitVariableExpression (sass.VariableExpression node) {
275
- return _process (node);
279
+ return super . visitVariableExpression (node) ?? _process (node);
276
280
}
277
281
278
282
@override
279
283
sass.AstNode ? visitWarnRule (sass.WarnRule node) {
280
- return _process (node);
284
+ return super . visitWarnRule (node) ?? _process (node);
281
285
}
282
286
283
287
@override
284
288
sass.AstNode ? visitWhileRule (sass.WhileRule node) {
285
- return _process (node);
289
+ return super . visitWhileRule (node) ?? _process (node);
286
290
}
287
291
}
0 commit comments