Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
81e91db4
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
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,发现更多精彩内容 >>
提交
81e91db4
编写于
8月 03, 2016
作者:
A
Alex Dima
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Extract emmet loading boilerplate
上级
632f218e
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
56 addition
and
36 deletion
+56
-36
src/vs/workbench/parts/emmet/node/emmetActions.ts
src/vs/workbench/parts/emmet/node/emmetActions.ts
+56
-36
未找到文件。
src/vs/workbench/parts/emmet/node/emmetActions.ts
浏览文件 @
81e91db4
...
@@ -22,19 +22,37 @@ interface IEmmetConfiguration {
...
@@ -22,19 +22,37 @@ interface IEmmetConfiguration {
};
};
}
}
export
abstract
class
EmmetEditorAction
extends
EditorAction
{
class
LazyEmmet
{
protected
editorAccessor
:
EditorAccessor
;
private
static
_INSTANCE
=
new
LazyEmmet
();
private
configurationService
:
IConfigurationService
=
null
;
constructor
(
descriptor
:
IEditorActionDescriptorData
,
editor
:
ICommonCodeEditor
,
configurationService
:
IConfigurationService
)
{
public
static
withConfiguredEmmet
(
configurationService
:
IConfigurationService
,
callback
:(
_emmet
:
typeof
emmet
)
=>
void
):
TPromise
<
void
>
{
super
(
descriptor
,
editor
,
Behaviour
.
Writeable
);
return
LazyEmmet
.
_INSTANCE
.
withEmmetPreferences
(
configurationService
,
callback
);
this
.
editorAccessor
=
new
EditorAccessor
(
editor
);
}
this
.
configurationService
=
configurationService
;
private
_emmetPromise
:
TPromise
<
typeof
emmet
>
;
constructor
()
{
this
.
_emmetPromise
=
null
;
}
}
private
updateEmmetPreferences
(
_emmet
:
typeof
emmet
)
{
public
withEmmetPreferences
(
configurationService
:
IConfigurationService
,
callback
:(
_emmet
:
typeof
emmet
)
=>
void
):
TPromise
<
void
>
{
let
preferences
=
this
.
configurationService
.
getConfiguration
<
IEmmetConfiguration
>
().
emmet
.
preferences
;
return
this
.
_loadEmmet
().
then
((
_emmet
:
typeof
emmet
)
=>
{
this
.
_withEmmetPreferences
(
configurationService
,
_emmet
,
callback
);
});
}
private
_loadEmmet
():
TPromise
<
typeof
emmet
>
{
if
(
!
this
.
_emmetPromise
)
{
this
.
_emmetPromise
=
new
TPromise
<
typeof
emmet
>
((
c
,
e
)
=>
{
require
([
'
emmet
'
],
c
,
e
);
});
}
return
this
.
_emmetPromise
;
}
private
updateEmmetPreferences
(
configurationService
:
IConfigurationService
,
_emmet
:
typeof
emmet
)
{
let
preferences
=
configurationService
.
getConfiguration
<
IEmmetConfiguration
>
().
emmet
.
preferences
;
for
(
let
key
in
preferences
)
{
for
(
let
key
in
preferences
)
{
try
{
try
{
_emmet
.
preferences
.
set
(
key
,
preferences
[
key
]);
_emmet
.
preferences
.
set
(
key
,
preferences
[
key
]);
...
@@ -42,13 +60,13 @@ export abstract class EmmetEditorAction extends EditorAction {
...
@@ -42,13 +60,13 @@ export abstract class EmmetEditorAction extends EditorAction {
_emmet
.
preferences
.
define
(
key
,
preferences
[
key
]);
_emmet
.
preferences
.
define
(
key
,
preferences
[
key
]);
}
}
}
}
let
syntaxProfile
=
this
.
configurationService
.
getConfiguration
<
IEmmetConfiguration
>
().
emmet
.
syntaxProfiles
;
let
syntaxProfile
=
configurationService
.
getConfiguration
<
IEmmetConfiguration
>
().
emmet
.
syntaxProfiles
;
_emmet
.
profile
.
reset
();
_emmet
.
profile
.
reset
();
_emmet
.
loadProfiles
(
syntaxProfile
);
_emmet
.
loadProfiles
(
syntaxProfile
);
}
}
private
resetEmmetPreferences
(
_emmet
:
typeof
emmet
)
{
private
resetEmmetPreferences
(
configurationService
:
IConfigurationService
,
_emmet
:
typeof
emmet
)
{
let
preferences
=
this
.
configurationService
.
getConfiguration
<
IEmmetConfiguration
>
().
emmet
.
preferences
;
let
preferences
=
configurationService
.
getConfiguration
<
IEmmetConfiguration
>
().
emmet
.
preferences
;
for
(
let
key
in
preferences
)
{
for
(
let
key
in
preferences
)
{
try
{
try
{
_emmet
.
preferences
.
remove
(
key
);
_emmet
.
preferences
.
remove
(
key
);
...
@@ -57,42 +75,44 @@ export abstract class EmmetEditorAction extends EditorAction {
...
@@ -57,42 +75,44 @@ export abstract class EmmetEditorAction extends EditorAction {
}
}
}
}
private
_withEmmetPreferences
(
configurationService
:
IConfigurationService
,
_emmet
:
typeof
emmet
,
callback
:(
_emmet
:
typeof
emmet
)
=>
void
):
void
{
try
{
this
.
updateEmmetPreferences
(
configurationService
,
_emmet
);
callback
(
_emmet
);
}
finally
{
this
.
resetEmmetPreferences
(
configurationService
,
_emmet
);
}
}
}
export
abstract
class
EmmetEditorAction
extends
EditorAction
{
protected
editorAccessor
:
EditorAccessor
;
private
configurationService
:
IConfigurationService
=
null
;
constructor
(
descriptor
:
IEditorActionDescriptorData
,
editor
:
ICommonCodeEditor
,
configurationService
:
IConfigurationService
)
{
super
(
descriptor
,
editor
,
Behaviour
.
Writeable
);
this
.
editorAccessor
=
new
EditorAccessor
(
editor
);
this
.
configurationService
=
configurationService
;
}
abstract
runEmmetAction
(
_emmet
:
typeof
emmet
);
abstract
runEmmetAction
(
_emmet
:
typeof
emmet
);
protected
noExpansionOccurred
()
{
protected
noExpansionOccurred
()
{
// default do nothing
// default do nothing
}
}
public
run
():
TPromise
<
boolean
>
{
public
run
():
TPromise
<
void
>
{
if
(
!
this
.
editorAccessor
.
isEmmetEnabledMode
())
{
if
(
!
this
.
editorAccessor
.
isEmmetEnabledMode
())
{
this
.
noExpansionOccurred
();
this
.
noExpansionOccurred
();
return
;
return
;
}
}
return
this
.
_withEmmet
().
then
((
_emmet
)
=>
{
return
LazyEmmet
.
withConfiguredEmmet
(
this
.
configurationService
,
(
_emmet
)
=>
{
this
.
_withEmmetPreferences
(
_emmet
,
()
=>
{
this
.
editorAccessor
.
onBeforeEmmetAction
();
this
.
editorAccessor
.
onBeforeEmmetAction
();
this
.
runEmmetAction
(
_emmet
);
this
.
runEmmetAction
(
_emmet
);
this
.
editorAccessor
.
onAfterEmmetAction
();
this
.
editorAccessor
.
onAfterEmmetAction
();
});
});
return
true
;
});
}
private
_withEmmet
():
TPromise
<
typeof
emmet
>
{
return
new
TPromise
<
typeof
emmet
>
((
c
,
e
)
=>
{
require
([
'
emmet
'
],
c
,
e
);
});
}
private
_withEmmetPreferences
(
_emmet
:
typeof
emmet
,
callback
:()
=>
void
):
void
{
try
{
this
.
updateEmmetPreferences
(
_emmet
);
callback
();
}
finally
{
this
.
resetEmmetPreferences
(
_emmet
);
}
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录