Merge VS Code 1.23.1 (#1520)

This commit is contained in:
Matt Irvine
2018-06-05 11:24:51 -07:00
committed by GitHub
parent e3baf5c443
commit 0c58f09e59
3651 changed files with 74249 additions and 48599 deletions

View File

@@ -6,16 +6,16 @@
'use strict';
import 'vs/css!./parameterHints';
import nls = require('vs/nls');
import * as nls from 'vs/nls';
import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle';
import { TPromise } from 'vs/base/common/winjs.base';
import * as dom from 'vs/base/browser/dom';
import aria = require('vs/base/browser/ui/aria/aria');
import * as aria from 'vs/base/browser/ui/aria/aria';
import { SignatureHelp, SignatureInformation, SignatureHelpProviderRegistry } from 'vs/editor/common/modes';
import { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition } from 'vs/editor/browser/editorBrowser';
import { RunOnceScheduler } from 'vs/base/common/async';
import { onUnexpectedError } from 'vs/base/common/errors';
import Event, { Emitter, chain } from 'vs/base/common/event';
import { Event, Emitter, chain } from 'vs/base/common/event';
import { domEvent, stop } from 'vs/base/browser/event';
import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { Context, provideSignatureHelp } from 'vs/editor/contrib/parameterHints/provideSignatureHelp';
@@ -50,6 +50,7 @@ export class ParameterHintsModel extends Disposable {
private triggerCharactersListeners: IDisposable[];
private active: boolean;
private throttledDelayer: RunOnceScheduler;
private provideSignatureHelpRequest?: TPromise<boolean, any>;
constructor(editor: ICodeEditor) {
super();
@@ -80,6 +81,11 @@ export class ParameterHintsModel extends Disposable {
if (!silent) {
this._onCancel.fire(void 0);
}
if (this.provideSignatureHelpRequest) {
this.provideSignatureHelpRequest.cancel();
this.provideSignatureHelpRequest = undefined;
}
}
trigger(delay = ParameterHintsModel.DELAY): void {
@@ -92,7 +98,11 @@ export class ParameterHintsModel extends Disposable {
}
private doTrigger(): void {
provideSignatureHelp(this.editor.getModel(), this.editor.getPosition())
if (this.provideSignatureHelpRequest) {
this.provideSignatureHelpRequest.cancel();
}
this.provideSignatureHelpRequest = provideSignatureHelp(this.editor.getModel(), this.editor.getPosition())
.then(null, onUnexpectedError)
.then(result => {
if (!result || !result.signatures || result.signatures.length === 0) {
@@ -173,6 +183,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
private static readonly ID = 'editor.widget.parameterHintsWidget';
private markdownRenderer: MarkdownRenderer;
private renderDisposeables: IDisposable[];
private model: ParameterHintsModel;
private keyVisible: IContextKey<boolean>;
private keyMultipleSignatures: IContextKey<boolean>;
@@ -337,6 +348,9 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
this.renderParameters(code, signature, this.hints.activeParameter);
}
dispose(this.renderDisposeables);
this.renderDisposeables = [];
const activeParameter = signature.parameters[this.hints.activeParameter];
if (activeParameter && activeParameter.documentation) {
@@ -346,7 +360,9 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
documentation.textContent = activeParameter.documentation;
} else {
dom.addClass(this.docs, 'markdown-docs');
documentation.appendChild(this.markdownRenderer.render(activeParameter.documentation));
const renderedContents = this.markdownRenderer.render(activeParameter.documentation);
this.renderDisposeables.push(renderedContents);
documentation.appendChild(renderedContents.element);
}
dom.append(this.docs, $('p', null, documentation));
}
@@ -356,7 +372,9 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
if (typeof signature.documentation === 'string') {
dom.append(this.docs, $('p', null, signature.documentation));
} else {
dom.append(this.docs, this.markdownRenderer.render(signature.documentation));
const renderedContents = this.markdownRenderer.render(signature.documentation);
this.renderDisposeables.push(renderedContents);
dom.append(this.docs, renderedContents.element);
}
let currentOverload = String(this.currentSignature + 1);
@@ -498,8 +516,12 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
dispose(): void {
this.disposables = dispose(this.disposables);
this.model.dispose();
this.model = null;
this.renderDisposeables = dispose(this.renderDisposeables);
if (this.model) {
this.model.dispose();
this.model = null;
}
}
}