Skip to content

Commit 813b28f

Browse files
committed
fix: Adapt code to new lib apis
1 parent 29f1f3b commit 813b28f

File tree

2 files changed

+40
-10
lines changed

2 files changed

+40
-10
lines changed

src/extensions.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { monaco, registerTextModelContentProvider } from '@codingame/monaco-editor-wrapper'
22
import {
33
Disposable,
4-
ServerCapabilities, DocumentSelector, MonacoLanguageClient, StaticFeature, Services,
4+
ServerCapabilities, DocumentSelector, MonacoLanguageClient, Services,
55
TextDocumentSyncOptions, TextDocument, DidSaveTextDocumentNotification, Emitter, DisposableCollection
66
} from 'monaco-languageclient'
7+
import { StaticFeature, FeatureState } from 'vscode-languageclient'
78
import { updateFile, willShutdownNotificationType, WillShutdownParams } from './customRequests'
89
import { Infrastructure } from './infrastructure'
910
import { LanguageClient, LanguageClientManager } from './languageClient'
@@ -45,6 +46,12 @@ export class InitializeTextDocumentFeature implements StaticFeature {
4546
Services.get().workspace.textDocuments.forEach(saveFile)
4647
}
4748

49+
getState (): FeatureState {
50+
return {
51+
kind: 'static'
52+
}
53+
}
54+
4855
dispose (): void {
4956
this.didOpenTextDocumentDisposable?.dispose()
5057
}
@@ -73,6 +80,12 @@ class CobolResolveSubroutineFeature implements StaticFeature {
7380
})
7481
}
7582

83+
getState (): FeatureState {
84+
return {
85+
kind: 'static'
86+
}
87+
}
88+
7689
dispose (): void {
7790
this.onRequestDisposable?.dispose()
7891
}
@@ -93,6 +106,12 @@ export class WillDisposeFeature implements StaticFeature {
93106
})
94107
}
95108

109+
getState (): FeatureState {
110+
return {
111+
kind: 'static'
112+
}
113+
}
114+
96115
dispose (): void {}
97116
}
98117

@@ -125,6 +144,12 @@ export class FileSystemFeature implements StaticFeature {
125144
this.disposable = this.registerFileHandlers()
126145
}
127146

147+
getState (): FeatureState {
148+
return {
149+
kind: 'static'
150+
}
151+
}
152+
128153
dispose (): void {
129154
this.disposable?.dispose()
130155
this.disposable = undefined

src/languageClient.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,13 @@ export class LanguageClientManager implements LanguageClient {
9797

9898
private handleClose = () => {
9999
if (this.isDisposed()) {
100-
return CloseAction.DoNotRestart
100+
return {
101+
action: CloseAction.DoNotRestart
102+
}
103+
}
104+
return {
105+
action: CloseAction.Restart
101106
}
102-
103-
return CloseAction.Restart
104107
}
105108

106109
private handleError = (error: Error) => {
@@ -110,7 +113,9 @@ export class LanguageClientManager implements LanguageClient {
110113
this.onErrorEmitter.fire(error)
111114
this.updateStatus('error')
112115

113-
return ErrorAction.Continue
116+
return {
117+
action: ErrorAction.Continue
118+
}
114119
}
115120

116121
public async start (): Promise<void> {
@@ -126,7 +131,7 @@ export class LanguageClientManager implements LanguageClient {
126131
}
127132
}
128133

129-
private _start (): void {
134+
private async _start (): Promise<void> {
130135
const onServerResponse = new Emitter<void>()
131136

132137
const languageClient = createLanguageClient(
@@ -207,7 +212,7 @@ export class LanguageClientManager implements LanguageClient {
207212
switch (state.newState) {
208213
case State.Starting: {
209214
this.updateStatus('connecting')
210-
readyPromise = languageClient.onReady().then(async () => {
215+
readyPromise = Promise.resolve().then(async () => {
211216
const disposableCollection = new DisposableCollection()
212217

213218
let readyPromise: Promise<void>
@@ -261,11 +266,11 @@ export class LanguageClientManager implements LanguageClient {
261266
this.languageClient.registerFeature(new InitializeTextDocumentFeature(this))
262267
}
263268

264-
this.languageClient.start()
269+
await this.languageClient.start()
265270
}
266271

267-
sendNotification<P> (type: NotificationType<P>, params?: P): void {
268-
this.languageClient!.sendNotification(type, params)
272+
async sendNotification<P> (type: NotificationType<P>, params?: P): Promise<void> {
273+
await this.languageClient!.sendNotification(type, params)
269274
}
270275

271276
sendRequest<P, R, E> (type: RequestType<P, R, E>, params: P): Promise<R> {

0 commit comments

Comments
 (0)