Skip to content

Commit 5f6ee4e

Browse files
authored
Merge pull request #7277 from jpinkney-aws/closingBrackets
## Problem For some reason inline suggestions won't auto complete in function args e.g. ``` def getName( ``` or ``` def getName(firstName, ``` if you don't provide a range ## Solution provide a range similar to what the old implementation was doing
1 parent 9a793ee commit 5f6ee4e

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
window,
1818
TextEditor,
1919
InlineCompletionTriggerKind,
20+
Range,
2021
} from 'vscode'
2122
import { LanguageClient } from 'vscode-languageclient'
2223
import {
@@ -228,10 +229,13 @@ export class AmazonQInlineCompletionItemProvider implements InlineCompletionItem
228229
// get active item from session for displaying
229230
const items = this.sessionManager.getActiveRecommendation()
230231
const session = this.sessionManager.getActiveSession()
231-
if (!session || !items.length) {
232+
const editor = window.activeTextEditor
233+
if (!session || !items.length || !editor) {
232234
return []
233235
}
234-
const editor = window.activeTextEditor
236+
237+
const start = document.validatePosition(editor.selection.active)
238+
const end = position
235239
for (const item of items) {
236240
item.command = {
237241
command: 'aws.amazonq.acceptInline',
@@ -245,6 +249,7 @@ export class AmazonQInlineCompletionItemProvider implements InlineCompletionItem
245249
session.firstCompletionDisplayLatency,
246250
],
247251
}
252+
item.range = new Range(start, end)
248253
ReferenceInlineProvider.instance.setInlineReference(
249254
position.line,
250255
item.insertText as string,

packages/amazonq/test/unit/amazonq/apps/inline/completion.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55
import sinon from 'sinon'
6-
import { CancellationToken, commands, languages, Position } from 'vscode'
6+
import { CancellationToken, commands, languages, Position, window } from 'vscode'
77
import assert from 'assert'
88
import { LanguageClient } from 'vscode-languageclient'
99
import { AmazonQInlineCompletionItemProvider, InlineCompletionManager } from '../../../../../src/app/inline/completion'
@@ -291,6 +291,7 @@ describe('InlineCompletionManager', () => {
291291
getActiveRecommendationStub.returns(mockSuggestions)
292292
getAllRecommendationsStub = sandbox.stub(recommendationService, 'getAllRecommendations')
293293
getAllRecommendationsStub.resolves()
294+
sandbox.stub(window, 'activeTextEditor').value(createMockTextEditor())
294295
}),
295296
it('should call recommendation service to get new suggestions for new sessions', async () => {
296297
provider = new AmazonQInlineCompletionItemProvider(

0 commit comments

Comments
 (0)