mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 09:08:48 +01:00
fixes #52964
This commit is contained in:
@@ -24,7 +24,7 @@ import { registerEditorAction, ServicesAccessor, EditorAction, EditorCommand, re
|
||||
import { IModelService } from 'vs/editor/common/services/modelService';
|
||||
import { MenuId } from 'vs/platform/actions/common/actions';
|
||||
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
|
||||
import { IContextKeyService, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { IContextKeyService, ContextKeyExpr, IContextKey } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { IInstantiationService, createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||
@@ -84,6 +84,7 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
|
||||
private dimension: dom.Dimension;
|
||||
private replInputHeight: number;
|
||||
private model: ITextModel;
|
||||
private historyNavigationEnablement: IContextKey<boolean>;
|
||||
|
||||
constructor(
|
||||
@IDebugService private debugService: IDebugService,
|
||||
@@ -164,6 +165,7 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
|
||||
this.replInputContainer = dom.append(container, $('.repl-input-wrapper'));
|
||||
|
||||
const { scopedContextKeyService, historyNavigationEnablement } = createAndBindHistoryNavigationWidgetScopedContextKeyService(this.contextKeyService, { target: this.replInputContainer, historyNavigator: this });
|
||||
this.historyNavigationEnablement = historyNavigationEnablement;
|
||||
this.toUnbind.push(scopedContextKeyService);
|
||||
CONTEXT_IN_DEBUG_REPL.bindTo(scopedContextKeyService).set(true);
|
||||
|
||||
@@ -175,7 +177,7 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
|
||||
triggerCharacters: ['.'],
|
||||
provideCompletionItems: (model: ITextModel, position: Position, _context: modes.SuggestContext, token: CancellationToken): Thenable<modes.ISuggestResult> => {
|
||||
// Disable history navigation because up and down are used to navigate through the suggest widget
|
||||
historyNavigationEnablement.set(false);
|
||||
this.historyNavigationEnablement.set(false);
|
||||
const word = this.replInput.getModel().getWordAtPosition(position);
|
||||
const overwriteBefore = word ? word.word.length : 0;
|
||||
const text = this.replInput.getModel().getLineContent(position.lineNumber);
|
||||
@@ -197,7 +199,7 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
|
||||
this.layout(this.dimension);
|
||||
}));
|
||||
this.toUnbind.push(this.replInput.onDidChangeModelContent(() => {
|
||||
historyNavigationEnablement.set(this.replInput.getModel().getLineCount() === 1);
|
||||
this.historyNavigationEnablement.set(this.replInput.getModel().getValue() === '');
|
||||
}));
|
||||
|
||||
this.toUnbind.push(dom.addStandardDisposableListener(this.replInputContainer, dom.EventType.FOCUS, () => dom.addClass(this.replInputContainer, 'synthetic-focus')));
|
||||
@@ -210,6 +212,7 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
|
||||
this.replInput.setValue(historyInput);
|
||||
// always leave cursor at the end.
|
||||
this.replInput.setPosition({ lineNumber: 1, column: historyInput.length + 1 });
|
||||
this.historyNavigationEnablement.set(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user