提交 f5ac2586 编写于 作者: J Johannes Rieken

log/telemetry for completion durations, https://github.com/microsoft/vscode/issues/29126

上级 50f78a66
......@@ -42,7 +42,7 @@ export class SuggestDetailsWidget {
private readonly _markdownRenderer: MarkdownRenderer;
private _renderDisposeable?: IDisposable;
private _borderWidth: number = 1;
private _size = new dom.Dimension(330, 50);
private _size = new dom.Dimension(330, 0);
constructor(
private readonly _editor: ICodeEditor,
......@@ -101,15 +101,19 @@ export class SuggestDetailsWidget {
this._close.style.width = lineHeightPx;
}
private _lineHeight(): number {
return this._editor.getOption(EditorOption.suggestLineHeight) || this._editor.getOption(EditorOption.fontInfo).lineHeight;
getLayoutInfo() {
const lineHeight = this._editor.getOption(EditorOption.suggestLineHeight) || this._editor.getOption(EditorOption.fontInfo).lineHeight;
const borderWidth = this._borderWidth;
const borderHeight = borderWidth * 2;
return { lineHeight, borderWidth, borderHeight };
}
renderLoading(): void {
this._type.textContent = nls.localize('loading', "Loading...");
this._docs.textContent = '';
this.domNode.classList.remove('no-docs');
this.layout(this.size.width, this._lineHeight() * 2);
this.layout(this.size.width, this.getLayoutInfo().lineHeight * 2);
this._onDidChangeContents.fire(this);
}
......@@ -174,7 +178,7 @@ export class SuggestDetailsWidget {
};
this._body.scrollTop = 0;
this.layout(this._size.width, this._lineHeight() * (2 + (documentation ? 5 : 0)));
this.layout(this._size.width, this.getLayoutInfo().lineHeight * (2 + (documentation ? 5 : 0)));
this._onDidChangeContents.fire(this);
}
......@@ -295,11 +299,12 @@ export class SuggestDetailsOverlay implements IOverlayWidget {
_placeAtAnchor(anchorBox: dom.IDomNodePagePosition, size: dom.Dimension) {
const bodyBox = dom.getClientArea(document.body);
const borderHeight = 2 * this.widget.borderWidth;
const { borderWidth, borderHeight, lineHeight } = this.widget.getLayoutInfo();
let maxSizeTop: dom.Dimension;
let maxSizeBottom: dom.Dimension;
let minSize = new dom.Dimension(220, this._editor.getOption(EditorOption.suggestLineHeight) || this._editor.getOption(EditorOption.fontInfo).lineHeight);
let minSize = new dom.Dimension(220, 2 * lineHeight);
let left = 0;
let top = anchorBox.top;
......@@ -307,7 +312,7 @@ export class SuggestDetailsOverlay implements IOverlayWidget {
// position: EAST, west, south
let width = bodyBox.width - (anchorBox.left + anchorBox.width);
left = -this.widget.borderWidth + anchorBox.left + anchorBox.width;
left = -borderWidth + anchorBox.left + anchorBox.width;
maxSizeTop = new dom.Dimension(bodyBox.width - (anchorBox.left + anchorBox.width), bodyBox.height - anchorBox.top);
maxSizeBottom = maxSizeTop.with(undefined, anchorBox.top + anchorBox.height);
......@@ -315,7 +320,7 @@ export class SuggestDetailsOverlay implements IOverlayWidget {
if (anchorBox.left > width) {
// pos = SuggestDetailsPosition.West;
width = anchorBox.left;
left = Math.max(0, anchorBox.left - (size.width + this.widget.borderWidth));
left = Math.max(0, anchorBox.left - (size.width + borderWidth));
maxSizeTop = new dom.Dimension(anchorBox.left, bodyBox.height - anchorBox.top);
maxSizeBottom = maxSizeTop.with(undefined, maxSizeBottom.height);
}
......@@ -324,7 +329,7 @@ export class SuggestDetailsOverlay implements IOverlayWidget {
if (anchorBox.width > width * 1.3 && bodyBox.height - (anchorBox.top + anchorBox.height) > anchorBox.height) {
width = anchorBox.width;
left = anchorBox.left;
top = -this.widget.borderWidth + anchorBox.top + anchorBox.height;
top = -borderWidth + anchorBox.top + anchorBox.height;
maxSizeTop = new dom.Dimension(anchorBox.width - borderHeight, bodyBox.height - (anchorBox.top + anchorBox.height));
maxSizeBottom = maxSizeTop.with(undefined, anchorBox.top);
minSize = minSize.with(maxSizeTop.width);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册