Skip to content

Commit 5de48b2

Browse files
committed
fix: Destroy services and recreate them
1 parent bb97f8d commit 5de48b2

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

src/services.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,26 +55,22 @@ function autoSaveModels (services: CgMonacoServices): Disposable {
5555
return disposableCollection
5656
}
5757

58-
let services: CgMonacoServices | null = null
5958
let serviceDisposable: Disposable | null = null
6059
let serviceReferenceCount = 0
6160
function installServices (infrastructure: Infrastructure): Disposable {
62-
if (services == null) {
63-
// FIXME: we can't recreate services because MonacoWorkspace can't be disposed without memory leaks
64-
// fix me as soon as https://github.com/TypeFox/monaco-languageclient/pull/330/files is released
61+
if (serviceReferenceCount === 0) {
62+
const disposableCollection = new DisposableCollection()
63+
6564
const m2p = new MonacoToProtocolConverter(monaco)
6665
const p2m = new ProtocolToMonacoConverter(monaco)
67-
services = {
66+
const services = {
6867
commands: new MonacoCommands(monaco),
6968
languages: new MonacoLanguages(monaco, p2m, m2p),
7069
workspace: new CodinGameMonacoWorkspace(p2m, m2p, infrastructure.rootUri, infrastructure.workspaceFolders),
7170
window: new WatchableConsoleWindow()
7271
}
73-
}
74-
75-
if (serviceReferenceCount === 0) {
76-
const disposableCollection = new DisposableCollection()
7772

73+
disposableCollection.push(services.workspace)
7874
disposableCollection.push(installCommands(services))
7975
disposableCollection.push(Services.install(services))
8076

0 commit comments

Comments
 (0)