Skip to content

Commit 04e6cb4

Browse files
authored
feat: add supplemental context api (#672)
## Problem Part of the work needed to let VS Code IDE get supplemental context from the language server ## Solution <!--- REMINDER: - Read CONTRIBUTING.md first. - Add test coverage for your changes. - Link to related issues/commits. - Testing: how did you test your changes? - Screenshots if applicable --> ## License By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 6570d12 commit 04e6cb4

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

runtimes/protocol/inlineCompletionWithReferences.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ interface FileContextParams {
3333
fileContextOverride?: FileContext
3434
}
3535

36+
export interface SupplementalContextItem {
37+
content: string
38+
filePath: string
39+
score?: number
40+
}
41+
42+
export interface GetSupplementalContextParams {
43+
filePath: string
44+
}
45+
3646
export type InlineCompletionWithReferencesParams = InlineCompletionParams &
3747
PartialResultParams &
3848
DocumentChangeParams &
@@ -51,3 +61,11 @@ export const logInlineCompletionSessionResultsNotificationType = new ProtocolNot
5161
LogInlineCompletionSessionResultsParams,
5262
void
5363
>('aws/logInlineCompletionSessionResults')
64+
65+
export const getSupplementalContextRequestType = new ProtocolRequestType<
66+
GetSupplementalContextParams,
67+
SupplementalContextItem[],
68+
SupplementalContextItem[],
69+
void,
70+
void
71+
>('aws/textDocument/getProjectContext')

runtimes/runtimes/base-runtime.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ import {
6262
listAvailableModelsRequestType,
6363
subscriptionDetailsNotificationType,
6464
subscriptionUpgradeNotificationType,
65+
getSupplementalContextRequestType,
6566
} from '../protocol'
6667
import { createConnection } from 'vscode-languageserver/browser'
6768
import {
@@ -256,6 +257,7 @@ export const baseRuntime = (connections: { reader: MessageReader; writer: Messag
256257
onCompletion: handler => lspConnection.onCompletion(handler),
257258
onInlineCompletion: handler => lspConnection.onRequest(inlineCompletionRequestType, handler),
258259
onEditCompletion: handler => lspConnection.onRequest(editCompletionRequestType, handler),
260+
onGetSupplementalContext: handler => lspConnection.onRequest(getSupplementalContextRequestType, handler),
259261
didChangeConfiguration: lspServer.setDidChangeConfigurationHandler,
260262
onDidFormatDocument: handler => lspConnection.onDocumentFormatting(handler),
261263
onDidOpenTextDocument: handler => documentsObserver.callbacks.onDidOpenTextDocument(handler),
@@ -295,6 +297,8 @@ export const baseRuntime = (connections: { reader: MessageReader; writer: Messag
295297
onInlineCompletionWithReferences: handler =>
296298
lspConnection.onRequest(inlineCompletionWithReferencesRequestType, handler),
297299
onEditCompletion: handler => lspConnection.onRequest(editCompletionRequestType, handler),
300+
onGetSupplementalContext: handler =>
301+
lspConnection.onRequest(getSupplementalContextRequestType, handler),
298302
onLogInlineCompletionSessionResults: handler => {
299303
lspConnection.onNotification(logInlineCompletionSessionResultsNotificationType, handler)
300304
},

runtimes/runtimes/standalone.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import {
3636
getMfaCodeRequestType,
3737
CheckDiagnosticsParams,
3838
OpenWorkspaceFileParams,
39+
getSupplementalContextRequestType,
3940
} from '../protocol'
4041
import { ProposedFeatures, createConnection } from 'vscode-languageserver/node'
4142
import {
@@ -388,6 +389,8 @@ export const standalone = (props: RuntimeProps) => {
388389
onCompletion: handler => lspConnection.onCompletion(handler),
389390
onInlineCompletion: handler => lspConnection.onRequest(inlineCompletionRequestType, handler),
390391
onEditCompletion: handler => lspConnection.onRequest(editCompletionRequestType, handler),
392+
onGetSupplementalContext: handler =>
393+
lspConnection.onRequest(getSupplementalContextRequestType, handler),
391394
didChangeConfiguration: lspServer.setDidChangeConfigurationHandler,
392395
onDidFormatDocument: handler => lspConnection.onDocumentFormatting(handler),
393396
onDidOpenTextDocument: handler => documentsObserver.callbacks.onDidOpenTextDocument(handler),
@@ -444,6 +447,9 @@ export const standalone = (props: RuntimeProps) => {
444447
onDidChangeDependencyPaths(handler) {
445448
lspConnection.onNotification(didChangeDependencyPathsNotificationType, handler)
446449
},
450+
onGetSupplementalContext: handler => {
451+
lspConnection.onRequest(getSupplementalContextRequestType, handler)
452+
},
447453
},
448454
}
449455

runtimes/server-interface/lsp.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ import {
6565
CheckDiagnosticsResult,
6666
OpenWorkspaceFileParams,
6767
OpenWorkspaceFileResult,
68+
GetSupplementalContextParams,
69+
SupplementalContextItem,
6870
} from '../protocol'
6971

7072
// Re-export whole surface of LSP protocol used in Runtimes.
@@ -129,6 +131,9 @@ export type Lsp = {
129131
void
130132
>
131133
) => void
134+
onGetSupplementalContext: (
135+
handler: RequestHandler<GetSupplementalContextParams, SupplementalContextItem[] | undefined | null, void>
136+
) => void
132137
onCompletion: (
133138
handler: RequestHandler<CompletionParams, CompletionItem[] | CompletionList | undefined | null, void>
134139
) => void
@@ -188,5 +193,8 @@ export type Lsp = {
188193
) => void
189194
onGetConfigurationFromServer: (handler: RequestHandler<GetConfigurationFromServerParams, LSPAny, void>) => void
190195
onDidChangeDependencyPaths: (handler: NotificationHandler<DidChangeDependencyPathsParams>) => void
196+
onGetSupplementalContext: (
197+
handler: RequestHandler<GetSupplementalContextParams, SupplementalContextItem[] | undefined | null, void>
198+
) => void
191199
}
192200
}

0 commit comments

Comments
 (0)