@@ -421,16 +421,88 @@ $map: (
421
421
ls.cache.clear ();
422
422
});
423
423
424
- test ('finds references in the same document' , () async {
425
- // TODO
424
+ test ('finds global references' , () async {
425
+ var document = fs.createDocument (r'''
426
+ @mixin hello()
427
+ content: 'hello'
428
+
429
+ .a::after
430
+ @include hello
431
+ ''' , uri: 'styles.sass' );
432
+ var result =
433
+ await ls.findReferences (document, at (line: 0 , char: 8 ), context);
434
+
435
+ expect (result, hasLength (2 ));
436
+
437
+ var [first, second] = result;
438
+ expect (first.range, StartsAtLine (0 ));
439
+ expect (first.range, EndsAtLine (0 ));
440
+ expect (first.range, StartsAtCharacter (7 ));
441
+ expect (first.range, EndsAtCharacter (12 ));
442
+
443
+ expect (second.range, StartsAtLine (4 ));
444
+ expect (second.range, EndsAtLine (4 ));
445
+ expect (second.range, StartsAtCharacter (11 ));
446
+ expect (second.range, EndsAtCharacter (16 ));
426
447
});
427
448
428
449
test ('finds references across workspace' , () async {
429
- // TODO
450
+ fs.createDocument (r'''
451
+ @mixin hello()
452
+ content: 'hello'
453
+ ''' , uri: 'shared.sass' );
454
+ var document = fs.createDocument (r'''
455
+ @use "shared"
456
+
457
+ .a::after
458
+ @include shared.hello()
459
+ ''' , uri: 'styles.sass' );
460
+ var result =
461
+ await ls.findReferences (document, at (line: 3 , char: 19 ), context);
462
+
463
+ expect (result, hasLength (2 ));
464
+
465
+ var [first, second] = result;
466
+
467
+ expect (first.uri.toString (), endsWith ('styles.sass' ));
468
+ expect (first.range, StartsAtLine (3 ));
469
+ expect (first.range, EndsAtLine (3 ));
470
+ expect (first.range, StartsAtCharacter (18 ));
471
+ expect (first.range, EndsAtCharacter (23 ));
472
+
473
+ expect (second.uri.toString (), endsWith ('shared.sass' ));
474
+ expect (second.range, StartsAtLine (0 ));
475
+ expect (second.range, EndsAtLine (0 ));
476
+ expect (second.range, StartsAtCharacter (7 ));
477
+ expect (second.range, EndsAtCharacter (12 ));
430
478
});
431
479
432
480
test ('finds references in visibility modifier' , () async {
433
- // TODO
481
+ fs.createDocument (r'''
482
+ @mixin hello()
483
+ content: 'hello'
484
+ ''' , uri: 'shared.sass' );
485
+ var document = fs.createDocument (r'''
486
+ @forward "shared" hide hello;
487
+ ''' , uri: 'styles.scss' );
488
+ var result =
489
+ await ls.findReferences (document, at (line: 0 , char: 24 ), context);
490
+
491
+ expect (result, hasLength (2 ));
492
+
493
+ var [first, second] = result;
494
+
495
+ expect (first.uri.toString (), endsWith ('styles.scss' ));
496
+ expect (first.range, StartsAtLine (0 ));
497
+ expect (first.range, EndsAtLine (0 ));
498
+ expect (first.range, StartsAtCharacter (23 ));
499
+ expect (first.range, EndsAtCharacter (28 ));
500
+
501
+ expect (second.uri.toString (), endsWith ('shared.sass' ));
502
+ expect (second.range, StartsAtLine (0 ));
503
+ expect (second.range, EndsAtLine (0 ));
504
+ expect (second.range, StartsAtCharacter (7 ));
505
+ expect (second.range, EndsAtCharacter (12 ));
434
506
});
435
507
});
436
508
0 commit comments