@@ -659,14 +659,23 @@ extension SwiftLanguageServer {
659659 return completion ( . failure( . unknown( msg) ) )
660660 }
661661
662+ let helperDocumentName = " DocumentSymbols: " + snapshot. document. uri. pseudoPath
662663 let skreq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
663664 skreq [ keys. request] = self . requests. editor_open
664- skreq [ keys. name] = " DocumentSymbols: " + snapshot . document . uri . pseudoPath
665+ skreq [ keys. name] = helperDocumentName
665666 skreq [ keys. sourcetext] = snapshot. text
666667 skreq [ keys. syntactic_only] = 1
667668
668669 let handle = self . sourcekitd. send ( skreq, self . queue) { [ weak self] result in
669670 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+
670679 guard let dict = result. success else {
671680 return completion ( . failure( ResponseError ( result. failure!) ) )
672681 }
@@ -756,14 +765,23 @@ extension SwiftLanguageServer {
756765 return
757766 }
758767
768+ let helperDocumentName = " DocumentColor: " + snapshot. document. uri. pseudoPath
759769 let skreq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
760770 skreq [ keys. request] = self . requests. editor_open
761- skreq [ keys. name] = " DocumentColor: " + snapshot . document . uri . pseudoPath
771+ skreq [ keys. name] = helperDocumentName
762772 skreq [ keys. sourcetext] = snapshot. text
763773 skreq [ keys. syntactic_only] = 1
764774
765775 let handle = self . sourcekitd. send ( skreq, self . queue) { [ weak self] result in
766776 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+
767785 guard let dict = result. success else {
768786 req. reply ( . failure( ResponseError ( result. failure!) ) )
769787 return
@@ -962,14 +980,23 @@ extension SwiftLanguageServer {
962980 return
963981 }
964982
983+ let helperDocumentName = " FoldingRanges: " + snapshot. document. uri. pseudoPath
965984 let skreq = SKDRequestDictionary ( sourcekitd: self . sourcekitd)
966985 skreq [ keys. request] = self . requests. editor_open
967- skreq [ keys. name] = " FoldingRanges: " + snapshot . document . uri . pseudoPath
986+ skreq [ keys. name] = helperDocumentName
968987 skreq [ keys. sourcetext] = snapshot. text
969988 skreq [ keys. syntactic_only] = 1
970989
971990 let handle = self . sourcekitd. send ( skreq, self . queue) { [ weak self] result in
972991 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+
9731000 guard let dict = result. success else {
9741001 req. reply ( . failure( ResponseError ( result. failure!) ) )
9751002 return
0 commit comments