未验证 提交 c8b0433e 编写于 作者: J Johannes Rieken 提交者: GitHub

Merge pull request #78351 from YisraelV/showExplain

Make toggle-explain a SuggestCommand 
......@@ -370,6 +370,10 @@ export class SuggestController implements IEditorContribution {
this._widget.getValue().toggleDetails();
}
toggleExplainMode(): void {
this._widget.getValue().toggleExplainMode();
}
toggleSuggestionFocus(): void {
this._widget.getValue().toggleDetailsFocus();
}
......@@ -521,6 +525,16 @@ registerEditorCommand(new SuggestCommand({
}
}));
registerEditorCommand(new SuggestCommand({
id: 'toggleExplainMode',
precondition: SuggestContext.Visible,
handler: x => x.toggleExplainMode(),
kbOpts: {
weight: KeybindingWeight.EditorContrib,
primary: KeyMod.CtrlCmd | KeyCode.US_SLASH,
}
}));
registerEditorCommand(new SuggestCommand({
id: 'toggleSuggestionFocus',
precondition: SuggestContext.Visible,
......
......@@ -38,8 +38,6 @@ import { URI } from 'vs/base/common/uri';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { FileKind } from 'vs/platform/files/common/files';
import { MarkdownString } from 'vs/base/common/htmlContent';
import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
import { KeyMod, KeyCode } from 'vs/base/common/keyCodes';
const expandSuggestionDocsByDefault = false;
......@@ -231,17 +229,6 @@ const enum State {
}
let _explainMode = false;
KeybindingsRegistry.registerCommandAndKeybindingRule({
id: 'suggest.toggleExplainMode',
handler() {
_explainMode = !_explainMode;
},
when: SuggestContext.Visible,
weight: KeybindingWeight.EditorContrib,
primary: KeyMod.CtrlCmd | KeyCode.US_SLASH,
});
class SuggestionDetails {
private el: HTMLElement;
......@@ -300,13 +287,13 @@ class SuggestionDetails {
this.docs.textContent = '';
}
renderItem(item: CompletionItem): void {
renderItem(item: CompletionItem, explainMode: boolean): void {
this.renderDisposeable = dispose(this.renderDisposeable);
let { documentation, detail } = item.completion;
// --- documentation
if (_explainMode) {
if (explainMode) {
let md = '';
md += `score: ${item.score[0]}${item.word ? `, compared '${item.completion.filterText && (item.completion.filterText + ' (filterText)') || item.completion.label}' with '${item.word}'` : ' (no prefix)'}\n`;
md += `distance: ${item.distance}, see localityBonus-setting\n`;
......@@ -315,7 +302,7 @@ class SuggestionDetails {
detail = `Provider: ${item.provider._debugDisplayName}`;
}
if (!_explainMode && !canExpandCompletionItem(item)) {
if (!explainMode && !canExpandCompletionItem(item)) {
this.type.textContent = '';
this.docs.textContent = '';
addClass(this.el, 'no-docs');
......@@ -477,6 +464,7 @@ export class SuggestWidget implements IContentWidget, IListVirtualDelegate<Compl
private preferDocPositionTop: boolean = false;
private docsPositionPreviousWidgetY: number | null = null;
private explainMode: boolean = false;
constructor(
private readonly editor: ICodeEditor,
......@@ -977,7 +965,7 @@ export class SuggestWidget implements IContentWidget, IListVirtualDelegate<Compl
if (loading) {
this.details.renderLoading();
} else {
this.details.renderItem(this.list.getFocusedElements()[0]);
this.details.renderItem(this.list.getFocusedElements()[0], this.explainMode);
}
this.details.element.style.maxHeight = this.maxWidgetHeight + 'px';
......@@ -992,6 +980,13 @@ export class SuggestWidget implements IContentWidget, IListVirtualDelegate<Compl
this.editor.focus();
}
toggleExplainMode(): void {
if (this.list.getFocusedElements()[0] && this.expandDocsSettingFromStorage()) {
this.explainMode = !this.explainMode;
this.showDetails(false);
}
}
private show(): void {
const newHeight = this.updateListHeight();
if (newHeight !== this.listHeight) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册