Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7eaa094

Browse files
committed
dockerfile: hadolint: add postprocessing
This handles different types via parsing of the message text, andslightly adjusts the entry's text maybe.
1 parentf6e3cd3 commit7eaa094

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed

‎autoload/neomake/makers/ft/dockerfile.vim‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,31 @@ function! neomake#makers#ft#dockerfile#hadolint() abort
88
\'uses_stdin':1,
99
\'args': ['--format','tty','--no-color'],
1010
\'errorformat':'%f:%l %m',
11+
\'postprocess': [
12+
\function('neomake#makers#ft#dockerfile#HadolintProcess'),
13+
\],
1114
\}
1215
endfunction
16+
17+
function!neomake#makers#ft#dockerfile#HadolintProcess(entry)abort
18+
letm=matchlist(a:entry.text,'\v^(DL|SC)(\d+) (warning|info|\w+): (.*)')
19+
if!empty(m)
20+
leta:entry.nr=str2nr(m[2])
21+
let matched_type=''
22+
ifm[3]==#'warning'
23+
let matched_type='W'
24+
elseifm[3]==#'info'
25+
let matched_type='I'
26+
endif
27+
ifempty(matched_type)
28+
" Guess, but do not adjust text.
29+
leta:entry.type=m[3][0]
30+
else
31+
leta:entry.type= matched_type
32+
" Remove type ("warning"/"info") from text.
33+
leta:entry.text=printf('%s%s: %s',m[1],m[2],m[4])
34+
endif
35+
endif
36+
endfunction
37+
1338
" vim:ts=4sw=4et

‎tests/ft_dockerfile.vader‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Include: include/setup.vader
2+
3+
Execute (dockerfile: hadolint):
4+
let maker = NeomakeTestsGetMakerWithOutput(neomake#makers#ft#dockerfile#hadolint(), [
5+
\ 'Dockerfile:1 DL3018 warning: Pin versions in apk add. …',
6+
\ 'Dockerfile:2 DL3059 info: Multiple consecutive `RUN` instructions. …',
7+
\ 'Dockerfile:3 SC2086 info: Double quote to prevent globbing and word splitting.',
8+
\ 'Dockerfile:45 DL123 error: invented.',
9+
\ ])
10+
let maker.name = 'hadolint'
11+
new
12+
let bufnr = bufnr('%')
13+
file Dockerfile
14+
CallNeomake 1, [maker]
15+
AssertEqualQf [getloclist(0)][0], [
16+
\ {'lnum': 1, 'bufnr': bufnr, 'nr': 3018, 'type': 'W', 'col': 0,
17+
\ 'text': 'DL3018: Pin versions in apk add. …'},
18+
\ {'lnum': 2, 'bufnr': bufnr, 'nr': 3059, 'type': 'I', 'col': 0,
19+
\ 'text': 'DL3059: Multiple consecutive `RUN` instructions. …'},
20+
\ {'lnum': 3, 'bufnr': bufnr, 'nr': 2086, 'type': 'I', 'col': 0,
21+
\ 'text': 'SC2086: Double quote to prevent globbing and word splitting.'},
22+
\ {'lnum': 45, 'bufnr': bufnr, 'nr': 123, 'type': 'e', 'col': 0,
23+
\ 'text': 'DL123 error: invented.'},
24+
\ ]
25+
bwipe

‎tests/main.vader‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Include (Asciidoc): ft_asciidoc.vader
5454
Include (Clojure): ft_clojure.vader
5555
Include (Cs): ft_cs.vader
5656
Include (Css): ft_css.vader
57+
Include (Dockerfile): ft_dockerfile.vader
5758
Include (Elixir): ft_elixir.vader
5859
Include (Elm): ft_elm.vader
5960
Include (Erlang): ft_erlang.vader

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp