@@ -15,7 +15,26 @@ void main() {
15
15
ls.cache.clear ();
16
16
});
17
17
18
- test ('in a different document' , () async {
18
+ test ('global in the same document' , () async {
19
+ var document = fs.createDocument (r'''
20
+ $b: blue
21
+
22
+ .a
23
+ color: $b
24
+
25
+ ''' , uri: 'styles.sass' );
26
+ var result = await ls.goToDefinition (document, at (line: 3 , char: 10 ));
27
+
28
+ expect (result, isNotNull);
29
+ expect (result! .range, StartsAtLine (0 ));
30
+ expect (result.range, EndsAtLine (0 ));
31
+ expect (result.range, StartsAtCharacter (0 ));
32
+ expect (result.range, EndsAtCharacter (2 ));
33
+
34
+ expect (result.uri.toString (), endsWith ('styles.sass' ));
35
+ });
36
+
37
+ test ('global in a different document' , () async {
19
38
fs.createDocument (r'$b: #000;' , uri: 'colors.scss' );
20
39
21
40
var document = fs.createDocument (r'''
@@ -35,5 +54,42 @@ void main() {
35
54
36
55
expect (result.uri.toString (), endsWith ('colors.scss' ));
37
56
});
57
+
58
+ test ('scoped in the same document' , () async {
59
+ var document = fs.createDocument (r'''
60
+ .a
61
+ $b: blue
62
+ color: $b
63
+
64
+ ''' , uri: 'styles.sass' );
65
+ var result = await ls.goToDefinition (document, at (line: 2 , char: 10 ));
66
+
67
+ expect (result, isNotNull);
68
+ expect (result! .range, StartsAtLine (1 ));
69
+ expect (result.range, EndsAtLine (01 ));
70
+ expect (result.range, StartsAtCharacter (2 ));
71
+ expect (result.range, EndsAtCharacter (4 ));
72
+
73
+ expect (result.uri.toString (), endsWith ('styles.sass' ));
74
+ });
75
+
76
+ test ('no scoped in a different document' , () async {
77
+ fs.createDocument (r'''
78
+ .a
79
+ $b: blue
80
+ color: $b
81
+ ''' , uri: 'links.sass' );
82
+
83
+ var document = fs.createDocument (r'''
84
+ @use "links";
85
+
86
+ .a {
87
+ color: $b;
88
+ }
89
+ ''' );
90
+ var result = await ls.goToDefinition (document, at (line: 3 , char: 10 ));
91
+
92
+ expect (result, isNull);
93
+ });
38
94
});
39
95
}
0 commit comments