提交 2dc0a00c 编写于 作者: I isidor

fixes #52964

上级 7dee464e
......@@ -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);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册