Skip to content

Commit 0a1a01c

Browse files
committed
feat(amazonq): handle context command and open file for chat with lsp
1 parent a264377 commit 0a1a01c

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

package-lock.json

Lines changed: 0 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/amazonq/src/lsp/client.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66
import vscode, { env, version } from 'vscode'
77
import * as nls from 'vscode-nls'
88
import * as crypto from 'crypto'
9-
import { LanguageClient, LanguageClientOptions } from 'vscode-languageclient'
9+
import { LanguageClient, LanguageClientOptions, ResponseError } from 'vscode-languageclient'
1010
import { InlineCompletionManager } from '../app/inline/completion'
1111
import { AmazonQLspAuth, encryptionKey, notificationTypes } from './auth'
1212
import { AuthUtil } from 'aws-core-vscode/codewhisperer'
13-
import { ConnectionMetadata } from '@aws/language-server-runtimes/protocol'
13+
import {
14+
ConnectionMetadata,
15+
ShowDocumentParams,
16+
ShowDocumentRequest,
17+
ShowDocumentResult,
18+
} from '@aws/language-server-runtimes/protocol'
1419
import { Settings, oidcClientName, createServerOptions, globals, Experiments, Commands } from 'aws-core-vscode/shared'
1520
import { activate } from './chat/activation'
1621
import { AmazonQResourcePaths } from './lspInstaller'
@@ -101,7 +106,17 @@ export async function startLanguageServer(
101106
},
102107
}
103108
})
109+
104110
await auth.refreshConnection()
111+
client.onRequest<ShowDocumentParams, ShowDocumentResult>(
112+
ShowDocumentRequest.method,
113+
async (params: ShowDocumentParams): Promise<ShowDocumentParams | ResponseError<ShowDocumentResult>> => {
114+
const uri = vscode.Uri.parse(params.uri)
115+
const doc = await vscode.workspace.openTextDocument(uri)
116+
await vscode.window.showTextDocument(doc, { preview: false })
117+
return params
118+
}
119+
)
105120

106121
if (Experiments.instance.get('amazonqLSPInline', false)) {
107122
const inlineManager = new InlineCompletionManager(client)

0 commit comments

Comments
 (0)