提交 4685ffaa 编写于 作者: J Joao Moreno

Revert "scale suggest widget with editor's font size"

This reverts commit 50807c9e.
上级 697cb96a
......@@ -6,7 +6,7 @@
/* Suggest */
.monaco-editor .suggest-widget {
background-color: #F3F3F3;
font-size: 90%;
font-size: 12px;
border: 1px solid rgb(200, 200, 200);
z-index: 40;
}
......@@ -18,6 +18,10 @@
transition: left .05s ease-in-out;
}
.monaco-editor.mac .suggest-widget {
font-size: 11px;
}
.monaco-editor.mac .suggest-widget .text {
line-height: 1.3em;
}
......@@ -79,7 +83,6 @@
.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .docs,
.monaco-editor .suggest-widget .monaco-list .monaco-list-row .docs {
color: #A21B1B;
font-size: 0.9em;
}
.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .docs,
......
......@@ -120,6 +120,28 @@ class Renderer implements IRenderer<CompletionItem, ISuggestionTemplateData> {
}
}
const FocusHeight = 35;
const UnfocusedHeight = 19;
class Delegate implements IDelegate<CompletionItem> {
constructor(private listProvider: () => List<CompletionItem>) { }
getHeight(element: CompletionItem): number {
const focus = this.listProvider().getFocus()[0];
if (element.suggestion.documentationLabel && element === focus) {
return FocusHeight;
}
return UnfocusedHeight;
}
getTemplateId(element: CompletionItem): string {
return 'suggestion';
}
}
function computeScore(suggestion: string, currentWord: string, currentWordLowerCase: string): number {
const suggestionLowerCase = suggestion.toLowerCase();
let score = 0;
......@@ -244,7 +266,7 @@ class SuggestionDetails {
}
}
export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>, IDisposable {
export class SuggestWidget implements IContentWidget, IDisposable {
static ID: string = 'editor.widget.suggestWidget';
static WIDTH: number = 438;
......@@ -252,7 +274,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
static LOADING_MESSAGE: string = nls.localize('suggestWidget.loading', "Loading...");
static NO_SUGGESTIONS_MESSAGE: string = nls.localize('suggestWidget.noSuggestions', "No suggestions.");
allowEditorOverflow: boolean = true; // Editor.IContentWidget.allowEditorOverflow
public allowEditorOverflow: boolean = true; // Editor.IContentWidget.allowEditorOverflow
private state: State;
private isAuto: boolean;
......@@ -271,6 +293,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
private messageElement: HTMLElement;
private listElement: HTMLElement;
private details: SuggestionDetails;
private delegate: IDelegate<CompletionItem>;
private list: List<CompletionItem>;
private editorBlurTimeout: TPromise<void>;
......@@ -278,7 +301,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
private toDispose: IDisposable[];
private _onDidVisibilityChange: Emitter<boolean> = new Emitter();
get onDidVisibilityChange(): Event<boolean> { return this._onDidVisibilityChange.event; }
public get onDidVisibilityChange(): Event<boolean> { return this._onDidVisibilityChange.event; }
constructor(
private editor: ICodeEditor,
......@@ -309,7 +332,8 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
let renderer: IRenderer<CompletionItem, any> = instantiationService.createInstance(Renderer, this);
this.list = new List(this.listElement, this, [renderer]);
this.delegate = new Delegate(() => this.list);
this.list = new List(this.listElement, this.delegate, [renderer]);
this.toDispose = [
editor.addListener2(EventType.ModelChanged, () => this.onModelModeChanged()),
......@@ -617,7 +641,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
}
}
selectNextPage(): boolean {
public selectNextPage(): boolean {
switch (this.state) {
case State.Hidden:
return false;
......@@ -632,7 +656,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
}
}
selectNext(): boolean {
public selectNext(): boolean {
switch (this.state) {
case State.Hidden:
return false;
......@@ -647,7 +671,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
}
}
selectPreviousPage(): boolean {
public selectPreviousPage(): boolean {
switch (this.state) {
case State.Hidden:
return false;
......@@ -662,7 +686,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
}
}
selectPrevious(): boolean {
public selectPrevious(): boolean {
switch (this.state) {
case State.Hidden:
return false;
......@@ -677,7 +701,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
}
}
acceptSelectedSuggestion(): boolean {
public acceptSelectedSuggestion(): boolean {
switch (this.state) {
case State.Hidden:
return false;
......@@ -694,7 +718,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
}
}
toggleDetails(): void {
public toggleDetails(): void {
if (this.state === State.Details) {
this.setState(State.Open);
this.editor.focus();
......@@ -729,7 +753,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
removeClass(this.element, 'visible');
}
cancel(): void {
public cancel(): void {
if (this.state === State.Details) {
this.toggleDetails();
} else {
......@@ -737,7 +761,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
}
}
getPosition(): IContentWidgetPosition {
public getPosition(): IContentWidgetPosition {
if (this.state === State.Hidden) {
return null;
}
......@@ -748,11 +772,11 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
};
}
getDomNode(): HTMLElement {
public getDomNode(): HTMLElement {
return this.element;
}
getId(): string {
public getId(): string {
return SuggestWidget.ID;
}
......@@ -765,16 +789,16 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
let height = 0;
if (this.state === State.Empty || this.state === State.Loading) {
height = this.lineHeight;
height = UnfocusedHeight;
} else if (this.state === State.Details) {
height = 12 * this.lineHeight;
height = 12 * UnfocusedHeight;
} else {
const focus = this.list.getFocus()[0];
const focusHeight = focus ? this.getHeight(focus) : this.lineHeight;
const focusHeight = focus ? this.delegate.getHeight(focus) : UnfocusedHeight;
height = focusHeight;
const suggestionCount = (this.list.contentHeight - focusHeight) / this.lineHeight;
height += Math.min(suggestionCount, 11) * this.lineHeight;
const suggestionCount = (this.list.contentHeight - focusHeight) / UnfocusedHeight;
height += Math.min(suggestionCount, 11) * UnfocusedHeight;
}
this.element.style.height = height + 'px';
......@@ -792,28 +816,7 @@ export class SuggestWidget implements IContentWidget, IDelegate<CompletionItem>,
}
}
// IDelegate
private get lineHeight(): number {
const { fontSize } = this.editor.getConfiguration();
return Math.floor(fontSize * 1.7);
}
getHeight(element: CompletionItem): number {
const focus = this.list.getFocus()[0];
if (element.suggestion.documentationLabel && element === focus) {
return Math.floor(this.lineHeight * 1.7);
}
return this.lineHeight;
}
getTemplateId(element: CompletionItem): string {
return 'suggestion';
}
dispose(): void {
public dispose(): void {
this.state = null;
this.suggestionSupportsAutoAccept = null;
this.currentSuggestionDetails = null;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册