diff --git a/src/autocomplete/InlineCompletionRouter.ts b/src/autocomplete/InlineCompletionRouter.ts index b2b7e3fc..b6593f3a 100644 --- a/src/autocomplete/InlineCompletionRouter.ts +++ b/src/autocomplete/InlineCompletionRouter.ts @@ -1,4 +1,4 @@ -import { InlineCompletionList, InlineCompletionParams } from 'vscode-languageserver-protocol'; +import { InlineCompletionList, InlineCompletionParams, InlineCompletionItem } from 'vscode-languageserver-protocol'; import { ContextManager } from '../context/ContextManager'; import { Closeable, Configurable, ServerComponents } from '../server/ServerComponents'; import { @@ -11,6 +11,7 @@ import { import { LoggerFactory } from '../telemetry/LoggerFactory'; export type InlineCompletionProviderType = 'ResourceBlock' | 'PropertyBlock' | 'TemplateSection' | 'AIGenerated'; +type ReturnType = InlineCompletionList | InlineCompletionItem[] | null | undefined; export class InlineCompletionRouter implements Configurable, Closeable { private completionSettings: CompletionSettings = DefaultSettings.completion; @@ -21,9 +22,7 @@ export class InlineCompletionRouter implements Configurable, Closeable { constructor(private readonly contextManager: ContextManager) {} - getInlineCompletions( - params: InlineCompletionParams, - ): Promise | InlineCompletionList | undefined { + getInlineCompletions(params: InlineCompletionParams): Promise | ReturnType { if (!this.completionSettings.enabled) return; const context = this.contextManager.getContext(params); diff --git a/src/handlers/InlineCompletionHandler.ts b/src/handlers/InlineCompletionHandler.ts index 432df150..06ddd3d0 100644 --- a/src/handlers/InlineCompletionHandler.ts +++ b/src/handlers/InlineCompletionHandler.ts @@ -1,5 +1,5 @@ -import { ServerRequestHandler } from 'vscode-languageserver/lib/common/server'; -import { InlineCompletionParams, InlineCompletionList } from 'vscode-languageserver-protocol'; +import { RequestHandler } from 'vscode-languageserver/node'; +import { InlineCompletionParams, InlineCompletionList, InlineCompletionItem } from 'vscode-languageserver-protocol'; import { ServerComponents } from '../server/ServerComponents'; import { LoggerFactory } from '../telemetry/LoggerFactory'; @@ -7,8 +7,8 @@ const log = LoggerFactory.getLogger('InlineCompletionHandler'); export function inlineCompletionHandler( components: ServerComponents, -): ServerRequestHandler { - return (params, _token, _workDoneProgress, _resultProgress) => { +): RequestHandler { + return (params, _token) => { log.debug({ Handler: 'InlineCompletion', Document: params.textDocument.uri, diff --git a/src/protocol/LspAuthHandlers.ts b/src/protocol/LspAuthHandlers.ts index 3b5802b9..56ddf51c 100644 --- a/src/protocol/LspAuthHandlers.ts +++ b/src/protocol/LspAuthHandlers.ts @@ -1,4 +1,4 @@ -import { Connection, RequestHandler, NotificationHandler } from 'vscode-languageserver/node'; +import { Connection, RequestHandler, NotificationHandler } from 'vscode-languageserver'; import { IamCredentialsUpdateRequest, BearerCredentialsUpdateRequest, diff --git a/src/protocol/LspCommunication.ts b/src/protocol/LspCommunication.ts index 5910d37b..30f44a47 100644 --- a/src/protocol/LspCommunication.ts +++ b/src/protocol/LspCommunication.ts @@ -1,4 +1,4 @@ -import { Connection, ShowMessageRequestParams, RemoteConsole } from 'vscode-languageserver/node'; +import { Connection, ShowMessageRequestParams, RemoteConsole } from 'vscode-languageserver'; import { LogMessageParams, MessageActionItem, @@ -6,7 +6,7 @@ import { ShowMessageNotification, ShowMessageRequest, LogMessageNotification, -} from 'vscode-languageserver-protocol/lib/common/protocol'; +} from 'vscode-languageserver-protocol'; export class LspCommunication { public readonly console: RemoteConsole; diff --git a/src/protocol/LspDocuments.ts b/src/protocol/LspDocuments.ts index 39fe4408..33415997 100644 --- a/src/protocol/LspDocuments.ts +++ b/src/protocol/LspDocuments.ts @@ -1,4 +1,4 @@ -import { TextDocumentChangeEvent } from 'vscode-languageserver/lib/common/textDocuments'; +import { TextDocumentChangeEvent } from 'vscode-languageserver'; import { TextDocuments, Connection } from 'vscode-languageserver/node'; import { DidChangeTextDocumentParams, NotificationHandler } from 'vscode-languageserver-protocol'; import { TextDocument } from 'vscode-languageserver-textdocument'; diff --git a/src/protocol/LspHandlers.ts b/src/protocol/LspHandlers.ts index 1a3cf07b..907226be 100644 --- a/src/protocol/LspHandlers.ts +++ b/src/protocol/LspHandlers.ts @@ -1,4 +1,4 @@ -import { ServerRequestHandler } from 'vscode-languageserver/lib/common/server'; +import { ServerRequestHandler } from 'vscode-languageserver'; import { Connection, NotificationHandler, @@ -30,6 +30,8 @@ import { InlineCompletionList, InlineCompletionParams, SignatureHelpParams, + InlineCompletionRequest, + InlineCompletionItem, } from 'vscode-languageserver-protocol'; export class LspHandlers { @@ -115,9 +117,13 @@ export class LspHandlers { } onInlineCompletion( - handler: ServerRequestHandler, + handler: RequestHandler< + InlineCompletionParams, + InlineCompletionList | InlineCompletionItem[] | null | undefined, + void + >, ) { - this.connection.onRequest('textDocument/inlineCompletion', handler); + this.connection.onRequest(InlineCompletionRequest.type, handler); } onDidChangeConfiguration(handler: NotificationHandler) { diff --git a/tst/unit/handlers/InlineCompletionHandler.test.ts b/tst/unit/handlers/InlineCompletionHandler.test.ts index 42b3a80e..2d37baca 100644 --- a/tst/unit/handlers/InlineCompletionHandler.test.ts +++ b/tst/unit/handlers/InlineCompletionHandler.test.ts @@ -36,7 +36,7 @@ describe('InlineCompletionHandler', () => { mockServices.inlineCompletionRouter.getInlineCompletions.returns(mockInlineCompletions); const handler = inlineCompletionHandler(mockServices); - const result = handler(mockParams, CancellationToken.None, undefined as any, undefined as any); + const result = handler(mockParams, CancellationToken.None); expect(mockServices.inlineCompletionRouter.getInlineCompletions.calledOnce).toBe(true); expect(mockServices.inlineCompletionRouter.getInlineCompletions.calledWith(mockParams)).toBe(true); @@ -47,7 +47,7 @@ describe('InlineCompletionHandler', () => { mockServices.inlineCompletionRouter.getInlineCompletions.returns(undefined); const handler = inlineCompletionHandler(mockServices); - const result = handler(mockParams, CancellationToken.None, undefined as any, undefined as any); + const result = handler(mockParams, CancellationToken.None); expect(result).toBeUndefined(); }); @@ -68,7 +68,7 @@ describe('InlineCompletionHandler', () => { mockServices.inlineCompletionRouter.getInlineCompletions.returns(Promise.resolve(mockInlineCompletions)); const handler = inlineCompletionHandler(mockServices); - const result = await handler(mockParams, CancellationToken.None, undefined as any, undefined as any); + const result = await handler(mockParams, CancellationToken.None); expect(result).toEqual(mockInlineCompletions); }); @@ -84,7 +84,7 @@ describe('InlineCompletionHandler', () => { mockServices.inlineCompletionRouter.getInlineCompletions.returns({ items: [] }); const handler = inlineCompletionHandler(mockServices); - handler(automaticParams, CancellationToken.None, undefined as any, undefined as any); + handler(automaticParams, CancellationToken.None); expect(mockServices.inlineCompletionRouter.getInlineCompletions.calledWith(automaticParams)).toBe(true); }); @@ -98,7 +98,7 @@ describe('InlineCompletionHandler', () => { mockServices.inlineCompletionRouter.getInlineCompletions.returns({ items: [] }); const handler = inlineCompletionHandler(mockServices); - handler(jsonParams, CancellationToken.None, undefined as any, undefined as any); + handler(jsonParams, CancellationToken.None); expect(mockServices.inlineCompletionRouter.getInlineCompletions.calledWith(jsonParams)).toBe(true); }); @@ -112,7 +112,7 @@ describe('InlineCompletionHandler', () => { mockServices.inlineCompletionRouter.getInlineCompletions.returns({ items: [] }); const handler = inlineCompletionHandler(mockServices); - handler(positionParams, CancellationToken.None, undefined as any, undefined as any); + handler(positionParams, CancellationToken.None); expect(mockServices.inlineCompletionRouter.getInlineCompletions.calledWith(positionParams)).toBe(true); });