Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Annlix
ShellCheck
提交
46a3019e
S
ShellCheck
项目概览
Annlix
/
ShellCheck
与 Fork 源项目一致
Fork自
镜像 / koalaman / ShellCheck
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
ShellCheck
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
46a3019e
编写于
1月 17, 2018
作者:
V
Vidar Holen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix annotations for here documents (fixes #1071)
上级
81978d15
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
15 deletion
+21
-15
CHANGELOG.md
CHANGELOG.md
+3
-0
ShellCheck/Parser.hs
ShellCheck/Parser.hs
+18
-15
未找到文件。
CHANGELOG.md
浏览文件 @
46a3019e
...
...
@@ -4,6 +4,9 @@
-
SC2223: Quote warning specific to
`: ${var=value}`
-
SC1127: Warn about C-style comments
### Fixed
-
Annotations intended for a command's here documents now work
### Changed
-
SC1073: 'else if' is now parsed correctly and not like 'elif'
...
...
ShellCheck/Parser.hs
浏览文件 @
46a3019e
...
...
@@ -143,7 +143,7 @@ data Context =
deriving
(
Show
)
data
HereDocContext
=
HereDocPending
Token
-- on linefeed, read this T_HereDoc
HereDocPending
Token
[
Context
]
-- on linefeed, read this T_HereDoc
deriving
(
Show
)
data
UserState
=
UserState
{
...
...
@@ -194,9 +194,10 @@ addToHereDocMap id list = do
addPendingHereDoc
t
=
do
state
<-
getState
context
<-
getCurrentContexts
let
docs
=
pendingHereDocs
state
putState
$
state
{
pendingHereDocs
=
HereDocPending
t
:
docs
pendingHereDocs
=
HereDocPending
t
context
:
docs
}
popPendingHereDocs
=
do
...
...
@@ -205,9 +206,7 @@ popPendingHereDocs = do
putState
$
state
{
pendingHereDocs
=
[]
}
return
.
map
extract
.
reverse
$
pendingHereDocs
state
where
extract
(
HereDocPending
t
)
=
t
return
.
reverse
$
pendingHereDocs
state
getMap
=
positionMap
<$>
getState
getParseNotes
=
parseNotes
<$>
getState
...
...
@@ -372,15 +371,16 @@ acceptButWarn parser level code note =
parseProblemAt
pos
level
code
note
)
withContext
entry
p
=
do
pushContext
entry
do
v
<-
p
popContext
return
v
<|>
do
-- p failed without consuming input, abort context
v
<-
popContext
fail
""
parsecBracket
before
after
op
=
do
val
<-
before
(
op
val
<*
optional
(
after
val
))
<|>
(
after
val
*>
fail
""
)
swapContext
contexts
p
=
parsecBracket
(
getCurrentContexts
<*
setCurrentContexts
contexts
)
setCurrentContexts
(
const
p
)
withContext
entry
p
=
parsecBracket
(
pushContext
entry
)
(
const
popContext
)
(
const
p
)
called
s
p
=
do
pos
<-
getPosition
...
...
@@ -1594,6 +1594,8 @@ prop_readHereDoc14= isWarning readScript "cat << foo\nbar\nfoo \n"
prop_readHereDoc15
=
isWarning
readScript
"cat <<foo
\n
bar
\n
foo bar
\n
"
prop_readHereDoc16
=
isOk
readScript
"cat <<- ' foo'
\n
bar
\n
foo
\n
"
prop_readHereDoc17
=
isWarning
readScript
"cat <<- ' foo'
\n
bar
\n
foo
\n
"
prop_readHereDoc18
=
isWarning
readScript
"cat << foo
\n
Loose
\\
t
\n
foo"
prop_readHereDoc19
=
isOk
readScript
"# shellcheck disable=SC1117
\n
cat << foo
\n
Loose
\\
t
\n
foo"
readHereDoc
=
called
"here document"
$
do
fid
<-
getNextId
pos
<-
getPosition
...
...
@@ -1625,7 +1627,8 @@ readPendingHereDocs = do
docs
<-
popPendingHereDocs
mapM_
readDoc
docs
where
readDoc
(
T_HereDoc
id
dashed
quoted
endToken
_
)
=
do
readDoc
(
HereDocPending
(
T_HereDoc
id
dashed
quoted
endToken
_
)
ctx
)
=
swapContext
ctx
$
do
pos
<-
getPosition
hereData
<-
concat
<$>
rawLine
`
reluctantlyTill
`
do
linewhitespace
`
reluctantlyTill
`
string
endToken
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录