Skip to content

Commit bb97f8d

Browse files
committed
fix: Make workspace disposable
1 parent cc9eb3f commit bb97f8d

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

src/services/CodinGameMonacoWorkspace.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,11 @@ export default class CodinGameMonacoWorkspace extends MonacoWorkspace {
7272
}))
7373
}
7474
}
75+
76+
override dispose (): void {
77+
super.dispose()
78+
this.configurations.dispose()
79+
this.onWillSaveTextDocumentEmitter.dispose()
80+
this.onDidSaveTextDocumentEmitter.dispose()
81+
}
7582
}

src/services/Configuration.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {
2-
Configurations, ConfigurationChangeEvent, WorkspaceConfiguration, Event, Emitter
2+
Configurations, ConfigurationChangeEvent, WorkspaceConfiguration, Event, Emitter, Disposable, DisposableCollection
33
} from 'monaco-languageclient'
44
import * as monaco from 'monaco-editor'
55

@@ -38,8 +38,16 @@ class MemoryWorkspaceConfiguration implements WorkspaceConfiguration {
3838
}
3939

4040
const simpleConfigurationService = monaco.extra.StandaloneServices.get(monaco.extra.IConfigurationService) as monaco.extra.StandaloneConfigurationService
41-
class Configuration implements Configurations {
41+
class Configuration implements Configurations, Disposable {
4242
protected readonly onDidChangeConfigurationEmitter = new Emitter<ConfigurationChangeEvent>()
43+
private disposableCollection = new DisposableCollection()
44+
45+
constructor () {
46+
this.disposableCollection.push(this.onDidChangeConfigurationEmitter)
47+
this.disposableCollection.push(simpleConfigurationService.onDidChangeConfiguration((event) => {
48+
this.onDidChangeConfigurationEmitter.fire(event)
49+
}))
50+
}
4351

4452
getConfiguration (section?: string, resource?: string): MemoryWorkspaceConfiguration {
4553
return new MemoryWorkspaceConfiguration(this.getValue(section, resource))
@@ -56,7 +64,11 @@ class Configuration implements Configurations {
5664
}
5765

5866
get onDidChangeConfiguration (): Event<ConfigurationChangeEvent> {
59-
return simpleConfigurationService.onDidChangeConfiguration
67+
return this.onDidChangeConfigurationEmitter.event
68+
}
69+
70+
dispose (): void {
71+
this.disposableCollection.dispose()
6072
}
6173
}
6274

0 commit comments

Comments
 (0)