Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
42966a0c
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
42966a0c
编写于
3月 30, 2016
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
be prepared for missing services
上级
87c1d235
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
21 deletion
+28
-21
src/vs/languages/typescript/common/mode.ts
src/vs/languages/typescript/common/mode.ts
+26
-20
src/vs/languages/typescript/common/worker/workerManager.ts
src/vs/languages/typescript/common/worker/workerManager.ts
+2
-1
未找到文件。
src/vs/languages/typescript/common/mode.ts
浏览文件 @
42966a0c
...
...
@@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/
'
use strict
'
;
import
Modes
=
require
(
'
vs/editor/common/modes
'
)
;
import
lifecycle
=
require
(
'
vs/base/common/lifecycle
'
)
;
import
tokenization
=
require
(
'
vs/languages/typescript/common/tokenization
'
)
;
import
*
as
modes
from
'
vs/editor/common/modes
'
;
import
*
as
lifecycle
from
'
vs/base/common/lifecycle
'
;
import
{
createTokenizationSupport
,
Language
}
from
'
vs/languages/typescript/common/tokenization
'
;
import
{
AbstractMode
,
createWordRegExp
}
from
'
vs/editor/common/modes/abstractMode
'
;
import
{
RichEditSupport
}
from
'
vs/editor/common/modes/supports/richEditSupport
'
;
import
{
IModelService
}
from
'
vs/editor/common/services/modelService
'
;
...
...
@@ -16,25 +16,31 @@ import {LanguageServiceDefaults, typeScriptDefaults, javaScriptDefaults} from '.
export
abstract
class
Mode
extends
AbstractMode
implements
lifecycle
.
IDisposable
{
public
tokenizationSupport
:
M
odes
.
ITokenizationSupport
;
public
richEditSupport
:
M
odes
.
IRichEditSupport
;
public
tokenizationSupport
:
m
odes
.
ITokenizationSupport
;
public
richEditSupport
:
m
odes
.
IRichEditSupport
;
private
_disposables
:
lifecycle
.
IDisposable
[]
=
[];
constructor
(
descriptor
:
M
odes
.
IModeDescriptor
,
descriptor
:
m
odes
.
IModeDescriptor
,
defaults
:
LanguageServiceDefaults
,
@
IThreadService
threadService
:
IThreadService
,
@
IModelService
private
_
modelService
:
IModelService
,
@
IMarkerService
private
_
markerService
:
IMarkerService
@
IModelService
modelService
:
IModelService
,
@
IMarkerService
markerService
:
IMarkerService
)
{
super
(
descriptor
.
id
);
if
(
threadService
.
isInMainThread
)
{
// this is needed as long as this mode is also instantiated in the
// worker
if
(
threadService
.
isInMainThread
&&
modelService
&&
markerService
)
{
const
initData
=
{
selector
:
this
.
getId
(),
defaults
,
modelService
,
markerService
,
};
// this is needed as long as this mode is also instantiated in the worker
require
([
'
vs/languages/typescript/common/worker/workerManager
'
],
manager
=>
{
this
.
_disposables
.
push
(
manager
.
create
(
this
.
getId
(),
defaults
,
this
.
_modelService
,
this
.
_markerService
));
this
.
_disposables
.
push
(
manager
.
create
(
initData
));
},
err
=>
{
console
.
error
(
err
);
});
...
...
@@ -59,22 +65,22 @@ export abstract class Mode extends AbstractMode implements lifecycle.IDisposable
// e.g. /** | */
beforeText
:
/^
\s
*
\/\*\*(?!\/)([^\*]
|
\*(?!\/))
*$/
,
afterText
:
/^
\s
*
\*\/
$/
,
action
:
{
indentAction
:
M
odes
.
IndentAction
.
IndentOutdent
,
appendText
:
'
*
'
}
action
:
{
indentAction
:
m
odes
.
IndentAction
.
IndentOutdent
,
appendText
:
'
*
'
}
},
{
// e.g. /** ...|
beforeText
:
/^
\s
*
\/\*\*(?!\/)([^\*]
|
\*(?!\/))
*$/
,
action
:
{
indentAction
:
M
odes
.
IndentAction
.
None
,
appendText
:
'
*
'
}
action
:
{
indentAction
:
m
odes
.
IndentAction
.
None
,
appendText
:
'
*
'
}
},
{
// e.g. * ...|
beforeText
:
/^
(\t
|
(\ \ ))
*
\ \*(\ ([^\*]
|
\*(?!\/))
*
)?
$/
,
action
:
{
indentAction
:
M
odes
.
IndentAction
.
None
,
appendText
:
'
*
'
}
action
:
{
indentAction
:
m
odes
.
IndentAction
.
None
,
appendText
:
'
*
'
}
},
{
// e.g. */|
beforeText
:
/^
(\t
|
(\ \ ))
*
\ \*\/\s
*$/
,
action
:
{
indentAction
:
M
odes
.
IndentAction
.
None
,
removeText
:
1
}
action
:
{
indentAction
:
m
odes
.
IndentAction
.
None
,
removeText
:
1
}
}
],
...
...
@@ -103,27 +109,27 @@ export abstract class Mode extends AbstractMode implements lifecycle.IDisposable
export
class
TypeScriptMode
extends
Mode
{
constructor
(
descriptor
:
M
odes
.
IModeDescriptor
,
descriptor
:
m
odes
.
IModeDescriptor
,
@
IThreadService
threadService
:
IThreadService
,
@
IModelService
modelService
:
IModelService
,
@
IMarkerService
markerService
:
IMarkerService
)
{
super
(
descriptor
,
typeScriptDefaults
,
threadService
,
modelService
,
markerService
);
this
.
tokenizationSupport
=
tokenization
.
createTokenizationSupport
(
this
,
tokenization
.
Language
.
TypeScript
);
this
.
tokenizationSupport
=
createTokenizationSupport
(
this
,
Language
.
TypeScript
);
}
}
export
class
JavaScriptMode
extends
Mode
{
constructor
(
descriptor
:
M
odes
.
IModeDescriptor
,
descriptor
:
m
odes
.
IModeDescriptor
,
@
IThreadService
threadService
:
IThreadService
,
@
IModelService
modelService
:
IModelService
,
@
IMarkerService
markerService
:
IMarkerService
)
{
super
(
descriptor
,
javaScriptDefaults
,
threadService
,
modelService
,
markerService
);
this
.
tokenizationSupport
=
tokenization
.
createTokenizationSupport
(
this
,
tokenization
.
Language
.
EcmaScript5
);
this
.
tokenizationSupport
=
createTokenizationSupport
(
this
,
Language
.
EcmaScript5
);
}
}
\ No newline at end of file
src/vs/languages/typescript/common/worker/workerManager.ts
浏览文件 @
42966a0c
...
...
@@ -75,8 +75,9 @@ class Client {
}
}
export
function
create
(
selector
:
string
,
defaults
:
LanguageServiceDefaults
,
modelService
:
IModelService
,
markerService
:
IMarkerService
)
{
export
function
create
(
data
:
{
selector
:
string
,
defaults
:
LanguageServiceDefaults
,
modelService
:
IModelService
,
markerService
:
IMarkerService
}
)
{
const
{
selector
,
defaults
,
modelService
,
markerService
}
=
data
;
const
client
=
new
Client
(
modelService
,
defaults
);
const
registration
=
register
(
modelService
,
markerService
,
selector
,
defaults
,
(
first
:
URI
,
...
more
:
URI
[])
=>
client
.
get
([
first
].
concat
(
more
)));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录