@@ -659,14 +659,23 @@ extension SwiftLanguageServer {
659
659
return completion ( . failure( . unknown( msg) ) )
660
660
}
661
661
662
+ let helperDocumentName = " DocumentSymbols: " + snapshot. document. uri. pseudoPath
662
663
let skreq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
663
664
skreq [ keys. request] = self . requests. editor_open
664
- skreq [ keys. name] = " DocumentSymbols: " + snapshot . document . uri . pseudoPath
665
+ skreq [ keys. name] = helperDocumentName
665
666
skreq [ keys. sourcetext] = snapshot. text
666
667
skreq [ keys. syntactic_only] = 1
667
668
668
669
let handle = self . sourcekitd. send ( skreq, self . queue) { [ weak self] result in
669
670
guard let self = self else { return }
671
+
672
+ defer {
673
+ let closeHelperReq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
674
+ closeHelperReq [ self . keys. request] = self . requests. editor_close
675
+ closeHelperReq [ self . keys. name] = helperDocumentName
676
+ _ = self . sourcekitd. send ( closeHelperReq, . global( qos: . utility) , reply: { _ in } )
677
+ }
678
+
670
679
guard let dict = result. success else {
671
680
return completion ( . failure( ResponseError ( result. failure!) ) )
672
681
}
@@ -756,14 +765,23 @@ extension SwiftLanguageServer {
756
765
return
757
766
}
758
767
768
+ let helperDocumentName = " DocumentColor: " + snapshot. document. uri. pseudoPath
759
769
let skreq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
760
770
skreq [ keys. request] = self . requests. editor_open
761
- skreq [ keys. name] = " DocumentColor: " + snapshot . document . uri . pseudoPath
771
+ skreq [ keys. name] = helperDocumentName
762
772
skreq [ keys. sourcetext] = snapshot. text
763
773
skreq [ keys. syntactic_only] = 1
764
774
765
775
let handle = self . sourcekitd. send ( skreq, self . queue) { [ weak self] result in
766
776
guard let self = self else { return }
777
+
778
+ defer {
779
+ let closeHelperReq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
780
+ closeHelperReq [ keys. request] = self . requests. editor_close
781
+ closeHelperReq [ keys. name] = helperDocumentName
782
+ _ = self . sourcekitd. send ( closeHelperReq, . global( qos: . utility) , reply: { _ in } )
783
+ }
784
+
767
785
guard let dict = result. success else {
768
786
req. reply ( . failure( ResponseError ( result. failure!) ) )
769
787
return
@@ -962,14 +980,23 @@ extension SwiftLanguageServer {
962
980
return
963
981
}
964
982
983
+ let helperDocumentName = " FoldingRanges: " + snapshot. document. uri. pseudoPath
965
984
let skreq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
966
985
skreq [ keys. request] = self . requests. editor_open
967
- skreq [ keys. name] = " FoldingRanges: " + snapshot . document . uri . pseudoPath
986
+ skreq [ keys. name] = helperDocumentName
968
987
skreq [ keys. sourcetext] = snapshot. text
969
988
skreq [ keys. syntactic_only] = 1
970
989
971
990
let handle = self . sourcekitd. send ( skreq, self . queue) { [ weak self] result in
972
991
guard let self = self else { return }
992
+
993
+ defer {
994
+ let closeHelperReq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
995
+ closeHelperReq [ keys. request] = self . requests. editor_close
996
+ closeHelperReq [ keys. name] = helperDocumentName
997
+ _ = self . sourcekitd. send ( closeHelperReq, . global( qos: . utility) , reply: { _ in } )
998
+ }
999
+
973
1000
guard let dict = result. success else {
974
1001
req. reply ( . failure( ResponseError ( result. failure!) ) )
975
1002
return
0 commit comments