Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
ae85999e
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,发现更多精彩内容 >>
提交
ae85999e
编写于
8月 13, 2019
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Split MarkdownRenderOptions from FormattedTextRenderOptions
上级
82601dca
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
37 addition
and
34 deletion
+37
-34
src/vs/base/browser/formattedTextRenderer.ts
src/vs/base/browser/formattedTextRenderer.ts
+26
-5
src/vs/base/browser/htmlContentRenderer.ts
src/vs/base/browser/htmlContentRenderer.ts
+7
-25
src/vs/base/browser/ui/inputbox/inputBox.ts
src/vs/base/browser/ui/inputbox/inputBox.ts
+2
-2
src/vs/editor/contrib/markdown/markdownRenderer.ts
src/vs/editor/contrib/markdown/markdownRenderer.ts
+2
-2
未找到文件。
src/vs/base/browser/formattedTextRenderer.ts
浏览文件 @
ae85999e
...
...
@@ -4,20 +4,41 @@
*--------------------------------------------------------------------------------------------*/
import
*
as
DOM
from
'
vs/base/browser/dom
'
;
import
{
createElement
,
IContentActionHandler
,
RenderOptions
}
from
'
vs/base/browser/htmlContentRenderer
'
;
import
{
IMouseEvent
}
from
'
vs/base/browser/mouseEvent
'
;
import
{
DisposableStore
}
from
'
vs/base/common/lifecycle
'
;
export
function
renderText
(
text
:
string
,
options
:
RenderOptions
=
{}):
HTMLElement
{
export
interface
IContentActionHandler
{
callback
:
(
content
:
string
,
event
?:
IMouseEvent
)
=>
void
;
readonly
disposeables
:
DisposableStore
;
}
export
interface
FormattedTextRenderOptions
{
readonly
className
?:
string
;
readonly
inline
?:
boolean
;
readonly
actionHandler
?:
IContentActionHandler
;
}
export
function
renderText
(
text
:
string
,
options
:
FormattedTextRenderOptions
=
{}):
HTMLElement
{
const
element
=
createElement
(
options
);
element
.
textContent
=
text
;
return
element
;
}
export
function
renderFormattedText
(
formattedText
:
string
,
options
:
RenderOptions
=
{}):
HTMLElement
{
export
function
renderFormattedText
(
formattedText
:
string
,
options
:
FormattedText
RenderOptions
=
{}):
HTMLElement
{
const
element
=
createElement
(
options
);
_renderFormattedText
(
element
,
parseFormattedText
(
formattedText
),
options
.
actionHandler
);
return
element
;
}
export
function
createElement
(
options
:
FormattedTextRenderOptions
):
HTMLElement
{
const
tagName
=
options
.
inline
?
'
span
'
:
'
div
'
;
const
element
=
document
.
createElement
(
tagName
);
if
(
options
.
className
)
{
element
.
className
=
options
.
className
;
}
return
element
;
}
class
StringStream
{
private
source
:
string
;
private
index
:
number
;
...
...
@@ -64,7 +85,7 @@ interface IFormatParseTree {
children
?:
IFormatParseTree
[];
}
export
function
_renderFormattedText
(
element
:
Node
,
treeNode
:
IFormatParseTree
,
actionHandler
?:
IContentActionHandler
)
{
function
_renderFormattedText
(
element
:
Node
,
treeNode
:
IFormatParseTree
,
actionHandler
?:
IContentActionHandler
)
{
let
child
:
Node
|
undefined
;
if
(
treeNode
.
type
===
FormatType
.
Text
)
{
...
...
@@ -98,7 +119,7 @@ export function _renderFormattedText(element: Node, treeNode: IFormatParseTree,
}
}
export
function
parseFormattedText
(
content
:
string
):
IFormatParseTree
{
function
parseFormattedText
(
content
:
string
):
IFormatParseTree
{
const
root
:
IFormatParseTree
=
{
type
:
FormatType
.
Root
,
...
...
src/vs/base/browser/htmlContentRenderer.ts
浏览文件 @
ae85999e
...
...
@@ -4,43 +4,25 @@
*--------------------------------------------------------------------------------------------*/
import
*
as
DOM
from
'
vs/base/browser/dom
'
;
import
{
createElement
,
FormattedTextRenderOptions
}
from
'
vs/base/browser/formattedTextRenderer
'
;
import
{
onUnexpectedError
}
from
'
vs/base/common/errors
'
;
import
{
IMarkdownString
,
parseHrefAndDimensions
,
removeMarkdownEscapes
}
from
'
vs/base/common/htmlContent
'
;
import
{
defaultGenerator
}
from
'
vs/base/common/idGenerator
'
;
import
{
escape
}
from
'
vs/base/common/strings
'
;
import
{
removeMarkdownEscapes
,
IMarkdownString
,
parseHrefAndDimensions
}
from
'
vs/base/common/htmlContent
'
;
import
*
as
marked
from
'
vs/base/common/marked/marked
'
;
import
{
IMouseEvent
}
from
'
vs/base/browser/mouseEvent
'
;
import
{
DisposableStore
}
from
'
vs/base/common/lifecycle
'
;
import
{
onUnexpectedError
}
from
'
vs/base/common/errors
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
parse
}
from
'
vs/base/common/marshalling
'
;
import
{
cloneAndChange
}
from
'
vs/base/common/objects
'
;
import
{
escape
}
from
'
vs/base/common/strings
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
export
interface
IContentActionHandler
{
callback
:
(
content
:
string
,
event
?:
IMouseEvent
)
=>
void
;
readonly
disposeables
:
DisposableStore
;
}
export
interface
RenderOptions
{
className
?:
string
;
inline
?:
boolean
;
actionHandler
?:
IContentActionHandler
;
export
interface
MarkdownRenderOptions
extends
FormattedTextRenderOptions
{
codeBlockRenderer
?:
(
modeId
:
string
,
value
:
string
)
=>
Promise
<
string
>
;
codeBlockRenderCallback
?:
()
=>
void
;
}
export
function
createElement
(
options
:
RenderOptions
):
HTMLElement
{
const
tagName
=
options
.
inline
?
'
span
'
:
'
div
'
;
const
element
=
document
.
createElement
(
tagName
);
if
(
options
.
className
)
{
element
.
className
=
options
.
className
;
}
return
element
;
}
/**
* Create html nodes for the given content element.
*/
export
function
renderMarkdown
(
markdown
:
IMarkdownString
,
options
:
RenderOptions
=
{}):
HTMLElement
{
export
function
renderMarkdown
(
markdown
:
IMarkdownString
,
options
:
Markdown
RenderOptions
=
{}):
HTMLElement
{
const
element
=
createElement
(
options
);
const
_uriMassage
=
function
(
part
:
string
):
string
{
...
...
src/vs/base/browser/ui/inputbox/inputBox.ts
浏览文件 @
ae85999e
...
...
@@ -8,7 +8,7 @@ import 'vs/css!./inputBox';
import
*
as
nls
from
'
vs/nls
'
;
import
*
as
Bal
from
'
vs/base/browser/browser
'
;
import
*
as
dom
from
'
vs/base/browser/dom
'
;
import
{
RenderOptions
}
from
'
vs/base/browser/htmlContentRenderer
'
;
import
{
Markdown
RenderOptions
}
from
'
vs/base/browser/htmlContentRenderer
'
;
import
{
renderFormattedText
,
renderText
}
from
'
vs/base/browser/formattedTextRenderer
'
;
import
*
as
aria
from
'
vs/base/browser/ui/aria/aria
'
;
import
{
IAction
}
from
'
vs/base/common/actions
'
;
...
...
@@ -439,7 +439,7 @@ export class InputBox extends Widget {
div
=
dom
.
append
(
container
,
$
(
'
.monaco-inputbox-container
'
));
layout
();
const
renderOptions
:
RenderOptions
=
{
const
renderOptions
:
Markdown
RenderOptions
=
{
inline
:
true
,
className
:
'
monaco-inputbox-message
'
};
...
...
src/vs/editor/contrib/markdown/markdownRenderer.ts
浏览文件 @
ae85999e
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
{
IMarkdownString
}
from
'
vs/base/common/htmlContent
'
;
import
{
renderMarkdown
,
RenderOptions
}
from
'
vs/base/browser/htmlContentRenderer
'
;
import
{
renderMarkdown
,
Markdown
RenderOptions
}
from
'
vs/base/browser/htmlContentRenderer
'
;
import
{
IOpenerService
,
NullOpenerService
}
from
'
vs/platform/opener/common/opener
'
;
import
{
IModeService
}
from
'
vs/editor/common/services/modeService
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
...
...
@@ -33,7 +33,7 @@ export class MarkdownRenderer extends Disposable {
super
();
}
private
getOptions
(
disposeables
:
DisposableStore
):
RenderOptions
{
private
getOptions
(
disposeables
:
DisposableStore
):
Markdown
RenderOptions
{
return
{
codeBlockRenderer
:
(
languageAlias
,
value
)
=>
{
// In markdown,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录