Skip to content

Commit ff2a1b8

Browse files
committed
model is never mutated
1 parent f68737b commit ff2a1b8

1 file changed

Lines changed: 12 additions & 24 deletions

File tree

src/vs/editor/contrib/parameterHints/parameterHintsWidget.ts

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { domEvent, stop } from 'vs/base/browser/event';
88
import * as aria from 'vs/base/browser/ui/aria/aria';
99
import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';
1010
import { Event } from 'vs/base/common/event';
11-
import { IDisposable, Disposable, DisposableStore, MutableDisposable } from 'vs/base/common/lifecycle';
11+
import { IDisposable, Disposable, DisposableStore } from 'vs/base/common/lifecycle';
1212
import 'vs/css!./parameterHints';
1313
import { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition } from 'vs/editor/browser/editorBrowser';
1414
import { ConfigurationChangedEvent, EditorOption } from 'vs/editor/common/config/editorOptions';
@@ -31,7 +31,7 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
3131

3232
private readonly markdownRenderer: MarkdownRenderer;
3333
private readonly renderDisposeables = this._register(new DisposableStore());
34-
private readonly model = this._register(new MutableDisposable<ParameterHintsModel>());
34+
private readonly model: ParameterHintsModel;
3535
private readonly keyVisible: IContextKey<boolean>;
3636
private readonly keyMultipleSignatures: IContextKey<boolean>;
3737

@@ -57,11 +57,11 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
5757
) {
5858
super();
5959
this.markdownRenderer = this._register(new MarkdownRenderer(editor, modeService, openerService));
60-
this.model.value = new ParameterHintsModel(editor);
60+
this.model = this._register(new ParameterHintsModel(editor));
6161
this.keyVisible = Context.Visible.bindTo(contextKeyService);
6262
this.keyMultipleSignatures = Context.MultipleSignatures.bindTo(contextKeyService);
6363

64-
this._register(this.model.value.onChangedHints(newParameterHints => {
64+
this._register(this.model.onChangedHints(newParameterHints => {
6565
if (newParameterHints) {
6666
this.show();
6767
this.render(newParameterHints);
@@ -134,7 +134,7 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
134134
}
135135

136136
private show(): void {
137-
if (!this.model || this.visible) {
137+
if (this.visible) {
138138
return;
139139
}
140140

@@ -153,7 +153,7 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
153153
}
154154

155155
private hide(): void {
156-
if (!this.model || !this.visible) {
156+
if (!this.visible) {
157157
return;
158158
}
159159

@@ -189,7 +189,6 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
189189
this.domNodes.docs.innerHTML = '';
190190

191191
const signature = hints.signatures[hints.activeSignature];
192-
193192
if (!signature) {
194193
return;
195194
}
@@ -204,7 +203,6 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
204203
if (!hasParameters) {
205204
const label = dom.append(code, $('span'));
206205
label.textContent = signature.label;
207-
208206
} else {
209207
this.renderParameters(code, signature, hints.activeParameter);
210208
}
@@ -242,7 +240,6 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
242240
dom.toggleClass(this.domNodes.docs, 'empty', !hasDocs);
243241

244242
let currentOverload = String(hints.activeSignature + 1);
245-
246243
if (hints.signatures.length < 10) {
247244
currentOverload += `/${hints.signatures.length}`;
248245
}
@@ -281,7 +278,6 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
281278
}
282279

283280
private renderParameters(parent: HTMLElement, signature: modes.SignatureInformation, currentParameter: number): void {
284-
285281
const [start, end] = this.getParameterLabelOffsets(signature, currentParameter);
286282

287283
const beforeSpan = document.createElement('span');
@@ -321,23 +317,17 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
321317
}
322318

323319
next(): void {
324-
if (this.model.value) {
325-
this.editor.focus();
326-
this.model.value.next();
327-
}
320+
this.editor.focus();
321+
this.model.next();
328322
}
329323

330324
previous(): void {
331-
if (this.model.value) {
332-
this.editor.focus();
333-
this.model.value.previous();
334-
}
325+
this.editor.focus();
326+
this.model.previous();
335327
}
336328

337329
cancel(): void {
338-
if (this.model.value) {
339-
this.model.value.cancel();
340-
}
330+
this.model.cancel();
341331
}
342332

343333
getDomNode(): HTMLElement {
@@ -352,9 +342,7 @@ export class ParameterHintsWidget extends Disposable implements IContentWidget,
352342
}
353343

354344
trigger(context: TriggerContext): void {
355-
if (this.model.value) {
356-
this.model.value.trigger(context, 0);
357-
}
345+
this.model.trigger(context, 0);
358346
}
359347

360348
private updateMaxHeight(): void {

0 commit comments

Comments
 (0)