Skip to content

Commit c7fe726

Browse files
Merge branch 'master' into diagnostics
2 parents d047fa0 + 8e870bf commit c7fe726

File tree

6 files changed

+49
-12
lines changed

6 files changed

+49
-12
lines changed

package-lock.json

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Feature",
3+
"description": "Added image support to Amazon Q chat, users can now upload images from their local file system"
4+
}

packages/amazonq/src/app/inline/EditRendering/displayImage.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ export async function displaySvgDecoration(
315315
},
316316
totalSessionDisplayTime: Date.now() - session.requestStartTime,
317317
firstCompletionDisplayLatency: session.firstCompletionDisplayLatency,
318+
isInlineEdit: true,
318319
}
319320
languageClient.sendNotification('aws/logInlineCompletionSessionResults', params)
320321
if (inlineCompletionProvider) {
@@ -343,6 +344,7 @@ export async function displaySvgDecoration(
343344
discarded: false,
344345
},
345346
},
347+
isInlineEdit: true,
346348
}
347349
languageClient.sendNotification('aws/logInlineCompletionSessionResults', params)
348350
},

packages/amazonq/src/lsp/chat/messages.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
ChatPromptOptionAcknowledgedMessage,
1717
STOP_CHAT_RESPONSE,
1818
StopChatResponseMessage,
19+
OPEN_FILE_DIALOG,
1920
} from '@aws/chat-client-ui-types'
2021
import {
2122
ChatResult,
@@ -60,6 +61,10 @@ import {
6061
ruleClickRequestType,
6162
pinnedContextNotificationType,
6263
activeEditorChangedNotificationType,
64+
ShowOpenDialogRequestType,
65+
ShowOpenDialogParams,
66+
openFileDialogRequestType,
67+
OpenFileDialogResult,
6368
} from '@aws/language-server-runtimes/protocol'
6469
import { v4 as uuidv4 } from 'uuid'
6570
import * as vscode from 'vscode'
@@ -316,6 +321,19 @@ export function registerMessageListeners(
316321
}
317322
break
318323
}
324+
case OPEN_FILE_DIALOG: {
325+
// openFileDialog is the event emitted from webView to open
326+
// file system
327+
const result = await languageClient.sendRequest<OpenFileDialogResult>(
328+
openFileDialogRequestType.method,
329+
message.params
330+
)
331+
void provider.webview?.postMessage({
332+
command: openFileDialogRequestType.method,
333+
params: result,
334+
})
335+
break
336+
}
319337
case quickActionRequestType.method: {
320338
const quickActionPartialResultToken = uuidv4()
321339
const quickActionDisposable = languageClient.onProgress(
@@ -461,6 +479,24 @@ export function registerMessageListeners(
461479
}
462480
})
463481

482+
languageClient.onRequest(ShowOpenDialogRequestType.method, async (params: ShowOpenDialogParams) => {
483+
try {
484+
const uris = await vscode.window.showOpenDialog({
485+
canSelectFiles: params.canSelectFiles ?? true,
486+
canSelectFolders: params.canSelectFolders ?? false,
487+
canSelectMany: params.canSelectMany ?? false,
488+
filters: params.filters,
489+
defaultUri: params.defaultUri ? vscode.Uri.parse(params.defaultUri, false) : undefined,
490+
title: params.title,
491+
})
492+
const urisString = uris?.map((uri) => uri.fsPath)
493+
return { uris: urisString || [] }
494+
} catch (err) {
495+
languageClient.error(`[VSCode Client] Failed to open file dialog: ${(err as Error).message}`)
496+
return { uris: [] }
497+
}
498+
})
499+
464500
languageClient.onRequest<ShowDocumentParams, ShowDocumentResult>(
465501
ShowDocumentRequest.method,
466502
async (params: ShowDocumentParams): Promise<ShowDocumentParams | ResponseError<ShowDocumentResult>> => {

packages/amazonq/src/lsp/client.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
CreateFilesParams,
1313
DeleteFilesParams,
1414
DidChangeWorkspaceFoldersParams,
15-
DidSaveTextDocumentParams,
1615
GetConfigurationFromServerParams,
1716
RenameFilesParams,
1817
ResponseMessage,
@@ -163,6 +162,7 @@ export async function startLanguageServer(
163162
q: {
164163
developerProfiles: true,
165164
pinnedContextEnabled: true,
165+
imageContextEnabled: true,
166166
mcp: true,
167167
reroute: true,
168168
modelSelection: true,
@@ -333,13 +333,6 @@ async function onLanguageServerReady(
333333
}),
334334
} as RenameFilesParams)
335335
}),
336-
vscode.workspace.onDidSaveTextDocument((e) => {
337-
client.sendNotification('workspace/didSaveTextDocument', {
338-
textDocument: {
339-
uri: e.uri.fsPath,
340-
},
341-
} as DidSaveTextDocumentParams)
342-
}),
343336
vscode.workspace.onDidChangeWorkspaceFolders((e) => {
344337
client.sendNotification('workspace/didChangeWorkspaceFolder', {
345338
event: {

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@
470470
"devDependencies": {
471471
"@aws-sdk/types": "^3.13.1",
472472
"@aws/chat-client": "^0.1.4",
473-
"@aws/chat-client-ui-types": "^0.1.24",
473+
"@aws/chat-client-ui-types": "^0.1.47",
474474
"@aws/language-server-runtimes": "^0.2.101",
475475
"@aws/language-server-runtimes-types": "^0.1.42",
476476
"@cspotcode/source-map-support": "^0.8.1",

0 commit comments

Comments
 (0)