Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徽霖
Vscode
提交
0848fd85
V
Vscode
项目概览
徽霖
/
Vscode
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
Vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0848fd85
编写于
6月 16, 2016
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add `createData` option for web workers, clean up monaco.worker API
上级
8c2fb779
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
42 addition
and
14 deletion
+42
-14
build/monaco/monaco.d.ts.recipe
build/monaco/monaco.d.ts.recipe
+1
-7
src/vs/editor/browser/standalone/standaloneEditor.ts
src/vs/editor/browser/standalone/standaloneEditor.ts
+9
-1
src/vs/editor/common/services/editorSimpleWorker.ts
src/vs/editor/common/services/editorSimpleWorker.ts
+23
-5
src/vs/monaco.d.ts
src/vs/monaco.d.ts
+9
-1
未找到文件。
build/monaco/monaco.d.ts.recipe
浏览文件 @
0848fd85
...
...
@@ -77,12 +77,6 @@ declare module monaco.languages {
declare module monaco.worker {
export interface IMirrorModel {
uri: Uri;
version: number;
getText(): string;
}
export var mirrorModels: IMirrorModel[];
#includeAll(vs/editor/common/services/editorSimpleWorker;):
}
\ No newline at end of file
src/vs/editor/browser/standalone/standaloneEditor.ts
浏览文件 @
0848fd85
...
...
@@ -262,6 +262,7 @@ export interface MonacoWebWorker<T> {
export
class
MonacoWebWorkerImpl
<
T
>
extends
EditorWorkerClient
implements
MonacoWebWorker
<
T
>
{
private
_foreignModuleId
:
string
;
private
_foreignModuleCreateData
:
any
;
private
_foreignProxy
:
TPromise
<
T
>
;
/**
...
...
@@ -270,13 +271,16 @@ export class MonacoWebWorkerImpl<T> extends EditorWorkerClient implements Monaco
constructor
(
modelService
:
IModelService
,
opts
:
IWebWorkerOptions
)
{
super
(
modelService
);
this
.
_foreignModuleId
=
opts
.
moduleId
;
this
.
_foreignModuleCreateData
=
opts
.
createData
||
null
;
this
.
_foreignProxy
=
null
;
}
private
_getForeignProxy
():
TPromise
<
T
>
{
if
(
!
this
.
_foreignProxy
)
{
this
.
_foreignProxy
=
new
ShallowCancelThenPromise
(
this
.
_getProxy
().
then
((
proxy
)
=>
{
return
proxy
.
loadForeignModule
(
this
.
_foreignModuleId
).
then
((
foreignMethods
)
=>
{
return
proxy
.
loadForeignModule
(
this
.
_foreignModuleId
,
this
.
_foreignModuleCreateData
).
then
((
foreignMethods
)
=>
{
this
.
_foreignModuleId
=
null
;
this
.
_foreignModuleCreateData
=
null
;
let
proxyMethodRequest
=
(
method
:
string
,
args
:
any
[]):
TPromise
<
any
>
=>
{
return
proxy
.
fmr
(
method
,
args
);
...
...
@@ -316,6 +320,10 @@ export interface IWebWorkerOptions {
* It should export a function `create` that should return the exported proxy.
*/
moduleId
:
string
;
/**
* The data to send over when calling create on the module.
*/
createData
?:
any
;
}
/**
...
...
src/vs/editor/common/services/editorSimpleWorker.ts
浏览文件 @
0848fd85
...
...
@@ -20,6 +20,15 @@ import {IRawModelData} from 'vs/editor/common/services/editorSimpleWorkerCommon'
import
{
getWordAtText
,
ensureValidWordDefinition
}
from
'
vs/editor/common/model/wordHelper
'
;
import
{
createMonacoBaseAPI
}
from
'
vs/editor/common/standalone/standaloneBase
'
;
export
interface
IMirrorModel
{
uri
:
URI
;
version
:
number
;
getText
():
string
;
}
/**
* @internal
*/
export
class
MirrorModel
extends
MirrorModel2
{
public
get
uri
():
URI
{
...
...
@@ -134,6 +143,9 @@ export class MirrorModel extends MirrorModel2 {
}
}
/**
* @internal
*/
export
class
EditorSimpleWorkerImpl
implements
IRequestHandler
{
_requestHandlerTrait
:
any
;
...
...
@@ -288,11 +300,11 @@ export class EditorSimpleWorkerImpl implements IRequestHandler {
// ---- BEGIN foreign module support --------------------------------------------------------------------------
public
loadForeignModule
(
moduleId
:
string
):
TPromise
<
string
[]
>
{
public
loadForeignModule
(
moduleId
:
string
,
createData
:
any
):
TPromise
<
string
[]
>
{
return
new
TPromise
<
any
>
((
c
,
e
)
=>
{
// Use the global require to be sure to get the global config
(
<
any
>
self
).
require
([
moduleId
],
(
foreignModule
)
=>
{
this
.
_foreignModule
=
foreignModule
.
create
();
this
.
_foreignModule
=
foreignModule
.
create
(
createData
);
let
methods
:
string
[]
=
[];
for
(
let
prop
in
this
.
_foreignModule
)
{
...
...
@@ -325,8 +337,16 @@ export class EditorSimpleWorkerImpl implements IRequestHandler {
const
instance
=
new
EditorSimpleWorkerImpl
();
/**
* Get all available mirror models in this worker.
*/
export
function
getMirrorModels
():
IMirrorModel
[]
{
return
instance
.
getModels
();
}
/**
* Called on the worker side
* @internal
*/
export
function
create
():
IRequestHandler
{
return
instance
;
...
...
@@ -334,9 +354,7 @@ export function create(): IRequestHandler {
function
createMonacoWorkerAPI
():
typeof
monaco
.
worker
{
return
{
get
mirrorModels
()
{
return
instance
.
getModels
();
}
getMirrorModels
:
getMirrorModels
};
}
...
...
src/vs/monaco.d.ts
浏览文件 @
0848fd85
...
...
@@ -830,6 +830,10 @@ declare module monaco.editor {
* It should export a function `create` that should return the exported proxy.
*/
moduleId
:
string
;
/**
* The data to send over when calling create on the module.
*/
createData
?:
any
;
}
/**
...
...
@@ -4669,12 +4673,16 @@ declare module monaco.languages {
declare
module
monaco
.
worker
{
export
interface
IMirrorModel
{
uri
:
Uri
;
version
:
number
;
getText
():
string
;
}
export
var
mirrorModels
:
IMirrorModel
[];
/**
* Get all available mirror models in this worker.
*/
export
function
getMirrorModels
():
IMirrorModel
[];
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录