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

eng - less TPromise

上级 491f0d7b
...@@ -8,16 +8,16 @@ ...@@ -8,16 +8,16 @@
import * as DOM from 'vs/base/browser/dom'; import * as DOM from 'vs/base/browser/dom';
import { defaultGenerator } from 'vs/base/common/idGenerator'; import { defaultGenerator } from 'vs/base/common/idGenerator';
import { escape } from 'vs/base/common/strings'; import { escape } from 'vs/base/common/strings';
import { TPromise } from 'vs/base/common/winjs.base';
import { removeMarkdownEscapes, IMarkdownString } from 'vs/base/common/htmlContent'; import { removeMarkdownEscapes, IMarkdownString } from 'vs/base/common/htmlContent';
import { marked } from 'vs/base/common/marked/marked'; import { marked } from 'vs/base/common/marked/marked';
import { IMouseEvent } from 'vs/base/browser/mouseEvent'; import { IMouseEvent } from 'vs/base/browser/mouseEvent';
import { isThenable } from 'vs/base/common/async';
export interface RenderOptions { export interface RenderOptions {
className?: string; className?: string;
inline?: boolean; inline?: boolean;
actionCallback?: (content: string, event?: IMouseEvent) => void; actionCallback?: (content: string, event?: IMouseEvent) => void;
codeBlockRenderer?: (modeId: string, value: string) => string | TPromise<string>; codeBlockRenderer?: (modeId: string, value: string) => string | Thenable<string>;
} }
function createElement(options: RenderOptions): HTMLElement { function createElement(options: RenderOptions): HTMLElement {
...@@ -53,7 +53,7 @@ export function renderMarkdown(markdown: IMarkdownString, options: RenderOptions ...@@ -53,7 +53,7 @@ export function renderMarkdown(markdown: IMarkdownString, options: RenderOptions
// signal to code-block render that the // signal to code-block render that the
// element has been created // element has been created
let signalInnerHTML: Function; let signalInnerHTML: Function;
const withInnerHTML = new TPromise(c => signalInnerHTML = c); const withInnerHTML = new Promise(c => signalInnerHTML = c);
const renderer = new marked.Renderer(); const renderer = new marked.Renderer();
renderer.image = (href: string, title: string, text: string) => { renderer.image = (href: string, title: string, text: string) => {
...@@ -122,17 +122,17 @@ export function renderMarkdown(markdown: IMarkdownString, options: RenderOptions ...@@ -122,17 +122,17 @@ export function renderMarkdown(markdown: IMarkdownString, options: RenderOptions
return value; return value;
} }
if (TPromise.is(value)) { if (isThenable(value)) {
// when code-block rendering is async we return sync // when code-block rendering is async we return sync
// but update the node with the real result later. // but update the node with the real result later.
const id = defaultGenerator.nextId(); const id = defaultGenerator.nextId();
TPromise.join([value, withInnerHTML]).done(values => { Promise.all([value, withInnerHTML]).then(values => {
const strValue = values[0] as string; const strValue = values[0] as string;
const span = element.querySelector(`div[data-code="${id}"]`); const span = element.querySelector(`div[data-code="${id}"]`);
if (span) { if (span) {
span.innerHTML = strValue; span.innerHTML = strValue;
} }
}, err => { }).catch(err => {
// ignore // ignore
}); });
return `<div class="code" data-code="${id}">${escape(code)}</div>`; return `<div class="code" data-code="${id}">${escape(code)}</div>`;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
import { dispose } from 'vs/base/common/lifecycle'; import { dispose } from 'vs/base/common/lifecycle';
import { join } from 'path'; import { join } from 'path';
import { mkdirp, dirExists } from 'vs/base/node/pfs'; import { mkdirp, dirExists, realpath } from 'vs/base/node/pfs';
import Severity from 'vs/base/common/severity'; import Severity from 'vs/base/common/severity';
import { TPromise } from 'vs/base/common/winjs.base'; import { TPromise } from 'vs/base/common/winjs.base';
import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/node/extensionDescriptionRegistry'; import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/node/extensionDescriptionRegistry';
...@@ -18,7 +18,6 @@ import { IExtensionMemento, ExtensionsActivator, ActivatedExtension, IExtensionA ...@@ -18,7 +18,6 @@ import { IExtensionMemento, ExtensionsActivator, ActivatedExtension, IExtensionA
import { ExtHostThreadService } from 'vs/workbench/services/thread/node/extHostThreadService'; import { ExtHostThreadService } from 'vs/workbench/services/thread/node/extHostThreadService';
import { ExtHostConfiguration } from 'vs/workbench/api/node/extHostConfiguration'; import { ExtHostConfiguration } from 'vs/workbench/api/node/extHostConfiguration';
import { ExtHostWorkspace } from 'vs/workbench/api/node/extHostWorkspace'; import { ExtHostWorkspace } from 'vs/workbench/api/node/extHostWorkspace';
import { realpath } from 'fs';
import { TernarySearchTree } from 'vs/base/common/map'; import { TernarySearchTree } from 'vs/base/common/map';
import { Barrier } from 'vs/base/common/async'; import { Barrier } from 'vs/base/common/async';
import { ILogService } from 'vs/platform/log/common/log'; import { ILogService } from 'vs/platform/log/common/log';
...@@ -222,16 +221,8 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape { ...@@ -222,16 +221,8 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
if (!ext.main) { if (!ext.main) {
return undefined; return undefined;
} }
return new TPromise((resolve, reject) => { return realpath(ext.extensionFolderPath).then(value => tree.set(value, ext));
realpath(ext.extensionFolderPath, (err, path) => {
if (err) {
reject(err);
} else {
tree.set(path, ext);
resolve(void 0);
}
});
});
}); });
this._extensionPathIndex = TPromise.join(extensions).then(() => tree); this._extensionPathIndex = TPromise.join(extensions).then(() => tree);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册