Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
af47c6c2
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,发现更多精彩内容 >>
提交
af47c6c2
编写于
9月 19, 2019
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Convert to async
上级
8d9d072e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
41 addition
and
40 deletion
+41
-40
src/vs/workbench/contrib/extensions/browser/extensionEditor.ts
...s/workbench/contrib/extensions/browser/extensionEditor.ts
+41
-40
未找到文件。
src/vs/workbench/contrib/extensions/browser/extensionEditor.ts
浏览文件 @
af47c6c2
...
...
@@ -574,47 +574,48 @@ export class ExtensionEditor extends BaseEditor {
return
Promise
.
resolve
(
null
);
}
private
openMarkdown
(
cacheResult
:
CacheResult
<
string
>
,
noContentCopy
:
string
,
template
:
IExtensionEditorTemplate
):
Promise
<
IActiveElement
>
{
return
this
.
loadContents
(()
=>
cacheResult
,
template
)
.
then
(
contents
=>
renderMarkdownDocument
(
contents
,
this
.
extensionService
,
this
.
modeService
))
.
then
(
content
=>
this
.
renderBody
(
content
))
.
then
(
removeEmbeddedSVGs
)
.
then
(
body
=>
{
const
webviewElement
=
this
.
webviewService
.
createWebviewEditorOverlay
(
'
extensionEditor
'
,
{
enableFindWidget
:
true
,
},
{});
webviewElement
.
claim
(
this
);
webviewElement
.
layoutWebviewOverElement
(
template
.
content
);
this
.
contentDisposables
.
add
(
webviewElement
.
onDidFocus
(()
=>
this
.
fireOnDidFocus
()));
const
removeLayoutParticipant
=
arrays
.
insert
(
this
.
layoutParticipants
,
{
layout
:
()
=>
{
webviewElement
.
layout
();
webviewElement
.
layoutWebviewOverElement
(
template
.
content
);
}
});
this
.
contentDisposables
.
add
(
toDisposable
(
removeLayoutParticipant
));
webviewElement
.
html
=
body
;
this
.
contentDisposables
.
add
(
webviewElement
.
onDidClickLink
(
link
=>
{
if
(
!
link
)
{
return
;
}
// Whitelist supported schemes for links
if
([
Schemas
.
http
,
Schemas
.
https
,
Schemas
.
mailto
].
indexOf
(
link
.
scheme
)
>=
0
||
(
link
.
scheme
===
'
command
'
&&
link
.
path
===
ShowCurrentReleaseNotesActionId
))
{
this
.
openerService
.
open
(
link
);
}
},
null
,
this
.
contentDisposables
));
this
.
contentDisposables
.
add
(
webviewElement
);
return
webviewElement
;
})
.
then
(
undefined
,
()
=>
{
const
p
=
append
(
template
.
content
,
$
(
'
p.nocontent
'
));
p
.
textContent
=
noContentCopy
;
return
p
;
private
async
openMarkdown
(
cacheResult
:
CacheResult
<
string
>
,
noContentCopy
:
string
,
template
:
IExtensionEditorTemplate
):
Promise
<
IActiveElement
>
{
try
{
const
contents
=
await
this
.
loadContents
(()
=>
cacheResult
,
template
);
const
content
=
await
renderMarkdownDocument
(
contents
,
this
.
extensionService
,
this
.
modeService
);
const
documentContent
=
await
this
.
renderBody
(
content
);
const
body
=
removeEmbeddedSVGs
(
documentContent
);
const
webviewElement
=
this
.
contentDisposables
.
add
(
this
.
webviewService
.
createWebviewEditorOverlay
(
'
extensionEditor
'
,
{
enableFindWidget
:
true
,
},
{}));
webviewElement
.
claim
(
this
);
webviewElement
.
layoutWebviewOverElement
(
template
.
content
);
this
.
contentDisposables
.
add
(
webviewElement
.
onDidFocus
(()
=>
this
.
fireOnDidFocus
()));
const
removeLayoutParticipant
=
arrays
.
insert
(
this
.
layoutParticipants
,
{
layout
:
()
=>
{
webviewElement
.
layout
();
webviewElement
.
layoutWebviewOverElement
(
template
.
content
);
}
});
this
.
contentDisposables
.
add
(
toDisposable
(
removeLayoutParticipant
));
webviewElement
.
html
=
body
;
this
.
contentDisposables
.
add
(
webviewElement
.
onDidClickLink
(
link
=>
{
if
(
!
link
)
{
return
;
}
// Whitelist supported schemes for links
if
([
Schemas
.
http
,
Schemas
.
https
,
Schemas
.
mailto
].
indexOf
(
link
.
scheme
)
>=
0
||
(
link
.
scheme
===
'
command
'
&&
link
.
path
===
ShowCurrentReleaseNotesActionId
))
{
this
.
openerService
.
open
(
link
);
}
},
null
,
this
.
contentDisposables
));
return
webviewElement
;
}
catch
(
e
)
{
const
p
=
append
(
template
.
content
,
$
(
'
p.nocontent
'
));
p
.
textContent
=
noContentCopy
;
return
p
;
}
}
private
async
renderBody
(
body
:
string
):
Promise
<
string
>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录