summaryrefslogtreecommitdiff
path: root/ale_linters/d/dmd.vim
diff options
context:
space:
mode:
Diffstat (limited to 'ale_linters/d/dmd.vim')
-rw-r--r--ale_linters/d/dmd.vim22
1 files changed, 5 insertions, 17 deletions
diff --git a/ale_linters/d/dmd.vim b/ale_linters/d/dmd.vim
index c6f8f209..3805e024 100644
--- a/ale_linters/d/dmd.vim
+++ b/ale_linters/d/dmd.vim
@@ -56,24 +56,12 @@ function! ale_linters#d#dmd#Handle(buffer, lines) abort
let l:pattern = '^[^(]\+(\([0-9]\+\)\,\?\([0-9]*\)): \([^:]\+\): \(.\+\)'
let l:output = []
- for l:line in a:lines
- let l:match = matchlist(l:line, l:pattern)
-
- if len(l:match) == 0
- break
- endif
-
- let l:line = l:match[1] + 0
- let l:column = l:match[2] + 0
- let l:type = l:match[3]
- let l:text = l:match[4]
-
+ for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
- \ 'bufnr': bufnr('%'),
- \ 'lnum': l:line,
- \ 'col': l:column,
- \ 'text': l:text,
- \ 'type': l:type ==# 'Warning' ? 'W' : 'E',
+ \ 'lnum': l:match[1],
+ \ 'col': l:match[2],
+ \ 'type': l:match[3] ==# 'Warning' ? 'W' : 'E',
+ \ 'text': l:match[4],
\})
endfor