Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
91e83d48
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,发现更多精彩内容 >>
提交
91e83d48
编写于
6月 28, 2017
作者:
C
Christof Marti
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fallback to warn on label
上级
23ac6d45
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
19 deletion
+29
-19
extensions/extension-editing/src/extensionLinter.ts
extensions/extension-editing/src/extensionLinter.ts
+29
-19
未找到文件。
extensions/extension-editing/src/extensionLinter.ts
浏览文件 @
91e83d48
...
...
@@ -147,7 +147,7 @@ export class ExtensionLinter {
const
text
=
document
.
getText
();
const
tokens
=
this
.
markdownIt
.
parse
(
text
,
{});
const
tokensAndPositions
=
(
function
toTokensAndPositions
(
tokens
:
MarkdownIt
.
Token
[],
begin
=
0
,
end
=
text
.
length
):
TokenAndPosition
[]
{
const
tokensAndPositions
=
(
function
toTokensAndPositions
(
t
his
:
ExtensionLinter
,
t
okens
:
MarkdownIt
.
Token
[],
begin
=
0
,
end
=
text
.
length
):
TokenAndPosition
[]
{
const
tokensAndPositions
=
tokens
.
map
<
TokenAndPosition
>
(
token
=>
{
if
(
token
.
map
)
{
const
tokenBegin
=
document
.
offsetAt
(
new
Position
(
token
.
map
[
0
],
0
));
...
...
@@ -158,22 +158,9 @@ export class ExtensionLinter {
end
:
tokenEnd
};
}
const
content
=
token
.
type
===
'
image
'
&&
token
.
attrGet
(
'
src
'
)
||
token
.
content
;
if
(
content
)
{
const
tokenBegin
=
text
.
indexOf
(
content
,
begin
);
if
(
tokenBegin
!==
-
1
)
{
const
tokenEnd
=
tokenBegin
+
content
.
length
;
if
(
tokenEnd
<=
end
)
{
begin
=
tokenEnd
;
return
{
token
,
begin
:
tokenBegin
,
end
:
tokenEnd
};
}
}
}
return
{
const
image
=
token
.
type
===
'
image
'
&&
this
.
locateToken
(
text
,
begin
,
end
,
token
,
token
.
attrGet
(
'
src
'
));
const
other
=
image
||
this
.
locateToken
(
text
,
begin
,
end
,
token
,
token
.
content
);
return
other
||
{
token
,
begin
,
end
:
begin
...
...
@@ -181,9 +168,9 @@ export class ExtensionLinter {
});
return
tokensAndPositions
.
concat
(
...
tokensAndPositions
.
filter
(
tnp
=>
tnp
.
token
.
children
&&
tnp
.
token
.
children
.
length
)
.
map
(
tnp
=>
toTokensAndPositions
(
tnp
.
token
.
children
,
tnp
.
begin
,
tnp
.
end
))
.
map
(
tnp
=>
toTokensAndPositions
.
call
(
this
,
tnp
.
token
.
children
,
tnp
.
begin
,
tnp
.
end
))
);
})
(
tokens
);
})
.
call
(
this
,
tokens
);
const
diagnostics
:
Diagnostic
[]
=
[];
...
...
@@ -193,6 +180,12 @@ export class ExtensionLinter {
const
begin
=
text
.
indexOf
(
src
,
inp
.
begin
);
if
(
begin
!==
-
1
&&
begin
<
inp
.
end
)
{
this
.
addDiagnostics
(
diagnostics
,
document
,
begin
,
begin
+
src
.
length
,
src
,
Context
.
MARKDOWN
,
info
);
}
else
{
const
content
=
inp
.
token
.
content
;
const
begin
=
text
.
indexOf
(
content
,
inp
.
begin
);
if
(
begin
!==
-
1
&&
begin
<
inp
.
end
)
{
this
.
addDiagnostics
(
diagnostics
,
document
,
begin
,
begin
+
content
.
length
,
src
,
Context
.
MARKDOWN
,
info
);
}
}
});
...
...
@@ -231,6 +224,23 @@ export class ExtensionLinter {
};
}
private
locateToken
(
text
:
string
,
begin
:
number
,
end
:
number
,
token
:
MarkdownIt
.
Token
,
content
:
string
)
{
if
(
content
)
{
const
tokenBegin
=
text
.
indexOf
(
content
,
begin
);
if
(
tokenBegin
!==
-
1
)
{
const
tokenEnd
=
tokenBegin
+
content
.
length
;
if
(
tokenEnd
<=
end
)
{
begin
=
tokenEnd
;
return
{
token
,
begin
:
tokenBegin
,
end
:
tokenEnd
};
}
}
}
}
private
readPackageJsonInfo
(
folder
:
Uri
,
tree
:
JsonNode
)
{
const
engine
=
tree
&&
findNodeAtLocation
(
tree
,
[
'
engines
'
,
'
vscode
'
]);
const
repo
=
tree
&&
findNodeAtLocation
(
tree
,
[
'
repository
'
,
'
url
'
]);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录