Fixes #130973: Accepting suggestions or inline suggestion now triggers an inline suggestion session.

This commit is contained in:
Henning Dieterichs 2021-08-17 15:42:04 +02:00
parent 58b670c6ff
commit 23fa383f8b
No known key found for this signature in database
GPG key ID: 771381EFFDB9EC06
3 changed files with 18 additions and 8 deletions

View file

@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
export const inlineSuggestCommitId = 'editor.action.inlineSuggest.commit';

View file

@ -16,6 +16,7 @@ import { ContextKeyExpr, IContextKeyService, RawContextKey } from 'vs/platform/c
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { GhostTextModel } from 'vs/editor/contrib/inlineCompletions/ghostTextModel';
import { KeybindingsRegistry } from 'vs/platform/keybinding/common/keybindingsRegistry';
import { inlineSuggestCommitId } from 'vs/editor/contrib/inlineCompletions/consts';
export class GhostTextController extends Disposable {
public static readonly inlineSuggestionVisible = new RawContextKey<boolean>('inlineSuggestionVisible', false, nls.localize('inlineSuggestionVisible', "Whether an inline suggestion is visible"));
@ -168,7 +169,7 @@ export class ActiveGhostTextController extends Disposable {
const GhostTextCommand = EditorCommand.bindToContribution(GhostTextController.get);
export const commitInlineSuggestionAction = new GhostTextCommand({
id: 'editor.action.inlineSuggest.commit',
id: inlineSuggestCommitId,
precondition: GhostTextController.inlineSuggestionVisible,
handler(x) {
x.commit();

View file

@ -5,22 +5,23 @@
import { CancelablePromise, createCancelablePromise, RunOnceScheduler } from 'vs/base/common/async';
import { CancellationToken } from 'vs/base/common/cancellation';
import { IDiffChange, LcsDiff } from 'vs/base/common/diff/diff';
import { onUnexpectedError, onUnexpectedExternalError } from 'vs/base/common/errors';
import { Emitter } from 'vs/base/common/event';
import { Disposable, IDisposable, MutableDisposable, toDisposable } from 'vs/base/common/lifecycle';
import * as strings from 'vs/base/common/strings';
import { CoreEditingCommands } from 'vs/editor/browser/controller/coreCommands';
import { IActiveCodeEditor } from 'vs/editor/browser/editorBrowser';
import { RedoCommand, UndoCommand } from 'vs/editor/browser/editorExtensions';
import { EditorOption } from 'vs/editor/common/config/editorOptions';
import { EditOperation } from 'vs/editor/common/core/editOperation';
import { Position } from 'vs/editor/common/core/position';
import { Range } from 'vs/editor/common/core/range';
import { ITextModel } from 'vs/editor/common/model';
import { InlineCompletion, InlineCompletionContext, InlineCompletions, InlineCompletionsProvider, InlineCompletionsProviderRegistry, InlineCompletionTriggerKind } from 'vs/editor/common/modes';
import { EditOperation } from 'vs/editor/common/core/editOperation';
import { ICommandService } from 'vs/platform/commands/common/commands';
import { EditorOption } from 'vs/editor/common/config/editorOptions';
import { RedoCommand, UndoCommand } from 'vs/editor/browser/editorExtensions';
import { CoreEditingCommands } from 'vs/editor/browser/controller/coreCommands';
import { IDiffChange, LcsDiff } from 'vs/base/common/diff/diff';
import { GhostTextWidgetModel, GhostText, BaseGhostTextWidgetModel, GhostTextPart } from 'vs/editor/contrib/inlineCompletions/ghostText';
import { inlineSuggestCommitId } from './consts';
import { BaseGhostTextWidgetModel, GhostText, GhostTextPart, GhostTextWidgetModel } from './ghostText';
export class InlineCompletionsModel extends Disposable implements GhostTextWidgetModel {
protected readonly onDidChangeEmitter = new Emitter<void>();
@ -44,7 +45,9 @@ export class InlineCompletionsModel extends Disposable implements GhostTextWidge
RedoCommand.id,
CoreEditingCommands.Tab.id,
CoreEditingCommands.DeleteLeft.id,
CoreEditingCommands.DeleteRight.id
CoreEditingCommands.DeleteRight.id,
inlineSuggestCommitId,
'acceptSelectedSuggestion'
]);
if (commands.has(e.commandId) && editor.hasTextFocus()) {
this.handleUserInput();