Skip to content

Commit d0735dd

Browse files
committed
Merge branch 'master' into kevin/telemetry
2 parents 1be28b5 + 6be9c43 commit d0735dd

File tree

36 files changed

+1272
-433
lines changed

36 files changed

+1272
-433
lines changed

.github/workflows/node.js.yml

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ jobs:
126126
matrix:
127127
node-version: [18.x]
128128
vscode-version: [minimum, stable, insiders]
129+
package: [amazonq, toolkit]
129130
env:
130131
VSCODE_TEST_VERSION: ${{ matrix.vscode-version }}
131132
NODE_OPTIONS: '--max-old-space-size=8192'
@@ -141,28 +142,17 @@ jobs:
141142
- name: Tests
142143
uses: coactions/setup-xvfb@v1
143144
with:
144-
run: npm test
145-
- name: Code coverage (Toolkit)
145+
run: npm run test -w packages/${{ matrix.package }}
146+
- name: Code coverage for ${{ matrix.package }}
146147
env:
147148
# Unset NODE_OPTIONS because of https://github.com/codecov/uploader/issues/475
148149
NODE_OPTIONS: ''
149150
if: ${{ github.repository == 'aws/aws-toolkit-vscode' && github.event_name == 'pull_request' && github.base_ref == 'master' }}
150151
uses: codecov/codecov-action@v5
151152
with:
152-
flags: macos-toolkit-unittests
153+
flags: macos-${{ matrix.package }}-unittests
153154
verbose: true
154-
file: ./coverage/toolkit/lcov.info
155-
token: ${{ secrets.CODECOV_TOKEN }}
156-
- name: Code coverage (Amazon Q)
157-
env:
158-
# Unset NODE_OPTIONS because of https://github.com/codecov/uploader/issues/475
159-
NODE_OPTIONS: ''
160-
if: ${{ github.repository == 'aws/aws-toolkit-vscode' && github.event_name == 'pull_request' && github.base_ref == 'master' }}
161-
uses: codecov/codecov-action@v5
162-
with:
163-
flags: macos-amazonq-unittests
164-
verbose: true
165-
file: ./coverage/amazonq/lcov.info
155+
file: ./coverage/${{ matrix.package }}/lcov.info
166156
token: ${{ secrets.CODECOV_TOKEN }}
167157

168158
web:
@@ -200,6 +190,7 @@ jobs:
200190
matrix:
201191
node-version: [18.x]
202192
vscode-version: [stable, insiders]
193+
package: [amazonq, toolkit]
203194
env:
204195
VSCODE_TEST_VERSION: ${{ matrix.vscode-version }}
205196
NODE_OPTIONS: '--max-old-space-size=8192'
@@ -211,15 +202,15 @@ jobs:
211202
node-version: ${{ matrix.node-version }}
212203
- run: npm ci
213204
- name: Tests
214-
run: npm test
215-
- name: Code coverage
205+
run: npm run test -w packages/${{ matrix.package }}
206+
- name: Code coverage for ${{ matrix.package }}
216207
env:
217208
# Unset NODE_OPTIONS because of https://github.com/codecov/uploader/issues/475
218209
NODE_OPTIONS: ''
219210
if: ${{ github.repository == 'aws/aws-toolkit-vscode' && github.event_name == 'pull_request' && github.base_ref == 'master' }}
220211
uses: codecov/codecov-action@v5
221212
with:
222-
flags: windows-unittests
213+
flags: windows-${{ matrix.package }}-unittests
223214
verbose: true
224-
file: ./coverage/lcov.info
215+
file: ./coverage/${{ matrix.package }}/lcov.info
225216
token: ${{ secrets.CODECOV_TOKEN }}

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"skippedTestReport": "ts-node ./scripts/skippedTestReport.ts ./packages/amazonq/test/e2e/"
4242
},
4343
"devDependencies": {
44-
"@aws-toolkits/telemetry": "^1.0.308",
44+
"@aws-toolkits/telemetry": "^1.0.311",
4545
"@playwright/browser-chromium": "^1.43.1",
4646
"@stylistic/eslint-plugin": "^2.11.0",
4747
"@types/he": "^1.2.3",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Bug Fix",
3+
"description": "Amazon Q Chat: Choosing a nested subfolder for `/doc` on Windows results in `The folder you chose did not contain any source files` error"
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Feature",
3+
"description": "Add support for Code search in Q chat"
4+
}

packages/amazonq/src/app/inline/completion.ts

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,22 @@ import {
1414
commands,
1515
languages,
1616
Disposable,
17+
window,
18+
TextEditor,
1719
} from 'vscode'
1820
import { LanguageClient } from 'vscode-languageclient'
19-
import { LogInlineCompletionSessionResultsParams } from '@aws/language-server-runtimes/protocol'
21+
import {
22+
InlineCompletionItemWithReferences,
23+
LogInlineCompletionSessionResultsParams,
24+
} from '@aws/language-server-runtimes/protocol'
2025
import { SessionManager } from './sessionManager'
2126
import { RecommendationService } from './recommendationService'
22-
import { CodeWhispererConstants } from 'aws-core-vscode/codewhisperer'
27+
import {
28+
CodeWhispererConstants,
29+
ReferenceHoverProvider,
30+
ReferenceInlineProvider,
31+
ReferenceLogViewProvider,
32+
} from 'aws-core-vscode/codewhisperer'
2333

2434
export class InlineCompletionManager implements Disposable {
2535
private disposable: Disposable
@@ -53,15 +63,16 @@ export class InlineCompletionManager implements Disposable {
5363
public registerInlineCompletion() {
5464
const onInlineAcceptance = async (
5565
sessionId: string,
56-
itemId: string,
66+
item: InlineCompletionItemWithReferences,
67+
editor: TextEditor,
5768
requestStartTime: number,
5869
firstCompletionDisplayLatency?: number
5970
) => {
6071
// TODO: also log the seen state for other suggestions in session
6172
const params: LogInlineCompletionSessionResultsParams = {
6273
sessionId: sessionId,
6374
completionSessionResult: {
64-
[itemId]: {
75+
[item.itemId]: {
6576
seen: true,
6677
accepted: true,
6778
discarded: false,
@@ -76,6 +87,15 @@ export class InlineCompletionManager implements Disposable {
7687
CodeWhispererConstants.platformLanguageIds,
7788
this.inlineCompletionProvider
7889
)
90+
if (item.references && item.references.length) {
91+
const referenceLog = ReferenceLogViewProvider.getReferenceLog(
92+
item.insertText as string,
93+
item.references,
94+
editor
95+
)
96+
ReferenceLogViewProvider.instance.addReferenceLog(referenceLog)
97+
ReferenceHoverProvider.instance.addCodeReferences(item.insertText as string, item.references)
98+
}
7999
}
80100
commands.registerCommand('aws.amazonq.acceptInline', onInlineAcceptance)
81101

@@ -170,17 +190,24 @@ export class AmazonQInlineCompletionItemProvider implements InlineCompletionItem
170190
if (!session || !items.length) {
171191
return []
172192
}
193+
const editor = window.activeTextEditor
173194
for (const item of items) {
174195
item.command = {
175196
command: 'aws.amazonq.acceptInline',
176197
title: 'On acceptance',
177198
arguments: [
178199
session.sessionId,
179-
item.itemId,
200+
item,
201+
editor,
180202
session.requestStartTime,
181203
session.firstCompletionDisplayLatency,
182204
],
183205
}
206+
ReferenceInlineProvider.instance.setInlineReference(
207+
position.line,
208+
item.insertText as string,
209+
item.references
210+
)
184211
}
185212
return items as InlineCompletionItem[]
186213
}

packages/amazonq/src/inlineChat/provider/inlineChatProvider.ts

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,40 @@ export class InlineChatProvider {
5555
})
5656
return this.generateResponse(
5757
{
58-
message: message.message,
58+
message: message.message ?? '',
5959
trigger: ChatTriggerType.InlineChatMessage,
6060
query: message.message,
6161
codeSelection: context?.focusAreaContext?.selectionInsideExtendedCodeBlock,
62-
fileText: context?.focusAreaContext?.extendedCodeBlock,
62+
fileText: context?.focusAreaContext?.extendedCodeBlock ?? '',
6363
fileLanguage: context?.activeFileContext?.fileLanguage,
6464
filePath: context?.activeFileContext?.filePath,
6565
matchPolicy: context?.activeFileContext?.matchPolicy,
6666
codeQuery: context?.focusAreaContext?.names,
6767
userIntent: this.userIntentRecognizer.getFromPromptChatMessage(message),
6868
customization: getSelectedCustomization(),
69+
context: [],
70+
relevantTextDocuments: [],
71+
additionalContents: [],
72+
documentReferences: [],
73+
useRelevantDocuments: false,
74+
contextLengths: {
75+
additionalContextLengths: {
76+
fileContextLength: 0,
77+
promptContextLength: 0,
78+
ruleContextLength: 0,
79+
},
80+
truncatedAdditionalContextLengths: {
81+
fileContextLength: 0,
82+
promptContextLength: 0,
83+
ruleContextLength: 0,
84+
},
85+
workspaceContextLength: 0,
86+
truncatedWorkspaceContextLength: 0,
87+
userInputContextLength: 0,
88+
truncatedUserInputContextLength: 0,
89+
focusFileContextLength: 0,
90+
truncatedFocusFileContextLength: 0,
91+
},
6992
},
7093
triggerID
7194
)
@@ -111,7 +134,10 @@ export class InlineChatProvider {
111134

112135
const request = triggerPayloadToChatRequest(triggerPayload)
113136
const session = this.sessionStorage.getSession(tabID)
114-
getLogger().info(`request from tab: ${tabID} conversationID: ${session.sessionIdentifier} request: %O`, request)
137+
getLogger().debug(
138+
`request from tab: ${tabID} conversationID: ${session.sessionIdentifier} request: %O`,
139+
request
140+
)
115141

116142
let response: GenerateAssistantResponseCommandOutput | undefined = undefined
117143
session.createNewTokenSource()

0 commit comments

Comments
 (0)