@@ -22,12 +22,14 @@ import haxeLanguageServer.features.haxe.GotoDefinitionFeature;
22
22
import haxeLanguageServer .features .haxe .GotoImplementationFeature ;
23
23
import haxeLanguageServer .features .haxe .GotoTypeDefinitionFeature ;
24
24
import haxeLanguageServer .features .haxe .InlayHintFeature ;
25
+ import haxeLanguageServer .features .haxe .RefactorFeature ;
25
26
import haxeLanguageServer .features .haxe .RenameFeature ;
26
27
import haxeLanguageServer .features .haxe .SignatureHelpFeature ;
27
28
import haxeLanguageServer .features .haxe .WorkspaceSymbolsFeature ;
28
29
import haxeLanguageServer .features .haxe .codeAction .CodeActionFeature ;
29
30
import haxeLanguageServer .features .haxe .documentSymbols .DocumentSymbolsFeature ;
30
31
import haxeLanguageServer .features .haxe .foldingRange .FoldingRangeFeature ;
32
+ import haxeLanguageServer .features .haxe .refactoring .RefactorCache ;
31
33
import haxeLanguageServer .server .DisplayResult ;
32
34
import haxeLanguageServer .server .HaxeServer ;
33
35
import haxeLanguageServer .server .ServerRecording ;
@@ -64,6 +66,7 @@ class Context {
64
66
@:nullSafety (Off ) public var findReferences (default , null ): FindReferencesFeature ;
65
67
@:nullSafety (Off ) public var determinePackage (default , null ): DeterminePackageFeature ;
66
68
@:nullSafety (Off ) public var diagnostics (default , null ): DiagnosticsFeature ;
69
+ @:nullSafety (Off ) public var refactorCache (default , null ): RefactorCache ;
67
70
public var experimental (default , null ): Null <ExperimentalCapabilities >;
68
71
69
72
var activeEditor : Null <DocumentUri >;
@@ -376,7 +379,8 @@ class Context {
376
379
new GotoTypeDefinitionFeature (this );
377
380
findReferences = new FindReferencesFeature (this );
378
381
determinePackage = new DeterminePackageFeature (this );
379
- new RenameFeature (this );
382
+ refactorCache = new RefactorCache (this );
383
+ new RenameFeature (this , refactorCache );
380
384
diagnostics = new DiagnosticsFeature (this );
381
385
new CodeActionFeature (this );
382
386
new CodeLensFeature (this );
@@ -390,6 +394,7 @@ class Context {
390
394
} else {
391
395
haxeServer .restart (reason , function () {
392
396
onServerStarted ();
397
+ refactorCache .initClassPaths ();
393
398
if (activeEditor != null ) {
394
399
publishDiagnostics (activeEditor );
395
400
}
@@ -416,6 +421,7 @@ class Context {
416
421
serverRecording .onDidChangeTextDocument (event );
417
422
invalidateFile (uri );
418
423
documents .onDidChangeTextDocument (event );
424
+ refactorCache .invalidateFile (uri .toFsPath ().toString ());
419
425
}
420
426
}
421
427
@@ -432,6 +438,7 @@ class Context {
432
438
if (isUriSupported (uri )) {
433
439
publishDiagnostics (uri );
434
440
invalidated .remove (uri .toString ());
441
+ refactorCache .invalidateFile (uri .toFsPath ().toString ());
435
442
}
436
443
}
437
444
@@ -447,6 +454,9 @@ class Context {
447
454
invalidateFile (change .uri );
448
455
case _ :
449
456
}
457
+ if (change .uri .isHaxeFile ()) {
458
+ refactorCache .invalidateFile (change .uri .toFsPath ().toString ());
459
+ }
450
460
}
451
461
}
452
462
@@ -466,6 +476,9 @@ class Context {
466
476
}
467
477
468
478
function onDidChangeActiveTextEditor (params : {uri : DocumentUri }) {
479
+ if (! params .uri .isFile () || ! params .uri .isHaxeFile ()) {
480
+ return ;
481
+ }
469
482
activeEditor = params .uri ;
470
483
final document = documents .getHaxe (params .uri );
471
484
if (document == null ) {
0 commit comments