提交 ebe8680a 编写于 作者: R Rob Lourens

Fix debug console not setting up completion provider

Fix #133930
上级 a7f87cbc
......@@ -143,7 +143,76 @@ export class Repl extends ViewPane implements IHistoryNavigationWidget {
}
private registerListeners(): void {
this._register(this.debugService.getViewModel().onDidFocusSession(async session => {
if (this.debugService.getViewModel().focusedSession) {
this.onDidFocusSession(this.debugService.getViewModel().focusedSession);
}
this._register(this.debugService.getViewModel().onDidFocusSession(async session => this.onDidFocusSession(session)));
this._register(this.debugService.onWillNewSession(async newSession => {
// Need to listen to output events for sessions which are not yet fully initialised
const input = this.tree.getInput();
if (!input || input.state === State.Inactive) {
await this.selectSession(newSession);
}
this.multiSessionRepl.set(this.isMultiSessionView);
}));
this._register(this.themeService.onDidColorThemeChange(() => {
this.refreshReplElements(false);
if (this.isVisible()) {
this.updateInputDecoration();
}
}));
this._register(this.onDidChangeBodyVisibility(visible => {
if (visible) {
if (!this.model) {
this.model = this.modelService.getModel(Repl.URI) || this.modelService.createModel('', null, Repl.URI, true);
}
this.setMode();
this.replInput.setModel(this.model);
this.updateInputDecoration();
this.refreshReplElements(true);
this.layoutBody(this.dimension.height, this.dimension.width);
}
}));
this._register(this.configurationService.onDidChangeConfiguration(e => {
if (e.affectsConfiguration('debug.console.wordWrap')) {
this.tree.dispose();
this.treeContainer.innerText = '';
dom.clearNode(this.treeContainer);
this.createReplTree();
} else if (e.affectsConfiguration('debug.console.lineHeight') || e.affectsConfiguration('debug.console.fontSize') || e.affectsConfiguration('debug.console.fontFamily')) {
this.onDidStyleChange();
}
if (e.affectsConfiguration('debug.console.acceptSuggestionOnEnter')) {
const config = this.configurationService.getValue<IDebugConfiguration>('debug');
this.replInput.updateOptions({
acceptSuggestionOnEnter: config.console.acceptSuggestionOnEnter === 'on' ? 'on' : 'off'
});
}
}));
this._register(this.themeService.onDidColorThemeChange(e => {
this.onDidStyleChange();
}));
this._register(this.viewDescriptorService.onDidChangeLocation(e => {
if (e.views.some(v => v.id === this.id)) {
this.onDidStyleChange();
}
}));
this._register(this.editorService.onDidActiveEditorChange(() => {
this.setMode();
}));
this._register(this.filterState.onDidChange(() => {
this.filter.filterQuery = this.filterState.filterText;
this.tree.refilter();
revealLastElement(this.tree);
}));
}
private async onDidFocusSession(session: IDebugSession | undefined): Promise<void> {
if (session) {
sessionsToIgnore.delete(session);
if (this.completionItemProvider) {
......@@ -214,69 +283,6 @@ export class Repl extends ViewPane implements IHistoryNavigationWidget {
}
await this.selectSession();
}));
this._register(this.debugService.onWillNewSession(async newSession => {
// Need to listen to output events for sessions which are not yet fully initialised
const input = this.tree.getInput();
if (!input || input.state === State.Inactive) {
await this.selectSession(newSession);
}
this.multiSessionRepl.set(this.isMultiSessionView);
}));
this._register(this.themeService.onDidColorThemeChange(() => {
this.refreshReplElements(false);
if (this.isVisible()) {
this.updateInputDecoration();
}
}));
this._register(this.onDidChangeBodyVisibility(visible => {
if (visible) {
if (!this.model) {
this.model = this.modelService.getModel(Repl.URI) || this.modelService.createModel('', null, Repl.URI, true);
}
this.setMode();
this.replInput.setModel(this.model);
this.updateInputDecoration();
this.refreshReplElements(true);
this.layoutBody(this.dimension.height, this.dimension.width);
}
}));
this._register(this.configurationService.onDidChangeConfiguration(e => {
if (e.affectsConfiguration('debug.console.wordWrap')) {
this.tree.dispose();
this.treeContainer.innerText = '';
dom.clearNode(this.treeContainer);
this.createReplTree();
} else if (e.affectsConfiguration('debug.console.lineHeight') || e.affectsConfiguration('debug.console.fontSize') || e.affectsConfiguration('debug.console.fontFamily')) {
this.onDidStyleChange();
}
if (e.affectsConfiguration('debug.console.acceptSuggestionOnEnter')) {
const config = this.configurationService.getValue<IDebugConfiguration>('debug');
this.replInput.updateOptions({
acceptSuggestionOnEnter: config.console.acceptSuggestionOnEnter === 'on' ? 'on' : 'off'
});
}
}));
this._register(this.themeService.onDidColorThemeChange(e => {
this.onDidStyleChange();
}));
this._register(this.viewDescriptorService.onDidChangeLocation(e => {
if (e.views.some(v => v.id === this.id)) {
this.onDidStyleChange();
}
}));
this._register(this.editorService.onDidActiveEditorChange(() => {
this.setMode();
}));
this._register(this.filterState.onDidChange(() => {
this.filter.filterQuery = this.filterState.filterText;
this.tree.refilter();
revealLastElement(this.tree);
}));
}
getFilterStats(): { total: number, filtered: number } {
......@@ -379,7 +385,7 @@ export class Repl extends ViewPane implements IHistoryNavigationWidget {
}
async selectSession(session?: IDebugSession): Promise<void> {
const treeInput = this.tree.getInput();
const treeInput = this.tree && this.tree.getInput();
if (!session) {
const focusedSession = this.debugService.getViewModel().focusedSession;
// If there is a focusedSession focus on that one, otherwise just show any other not ignored session
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册