All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
1 " Author: Martino Pilia <martino.pilia@gmail.com>
2 " Description: Lint ispc files with the Intel(R) SPMD Program Compiler
4 call ale#Set('ispc_ispc_executable', 'ispc')
5 call ale#Set('ispc_ispc_options', '')
7 function! ale_linters#ispc#ispc#GetCommand(buffer) abort
8 " --nowrap: do not wrap message lines
10 \ . ale#Pad(ale#c#IncludeOptions(ale#c#FindLocalHeaderPaths(a:buffer)))
11 \ . ale#Pad(ale#Var(a:buffer, 'ispc_ispc_options'))
15 " Note that we ignore the two warnings in the beginning of the compiler output
16 " ('no output file specified' and 'no --target specified'), since they have
17 " nothing to do with linting.
18 function! ale_linters#ispc#ispc#Handle(buffer, lines) abort
19 " Message format: <filename>:<lnum>:<col> <type>: <text>
20 " As far as I know, <type> can be any of:
21 " 'error', 'Error', 'fatal error', 'Warning', 'Performance Warning'
22 let l:re = '\v.+:([0-9]+):([0-9]+):\s+([^:]+):\s+(.+)'
25 for l:match in ale#util#GetMatches(a:lines, l:re)
28 \ 'lnum': str2nr(l:match[1]),
29 \ 'col': str2nr(l:match[2]),
30 \ 'type': l:match[3] =~? 'error' ? 'E' : 'W',
38 call ale#linter#Define('ispc', {
40 \ 'output_stream': 'stderr',
41 \ 'executable': {b -> ale#Var(b, 'ispc_ispc_executable')},
42 \ 'command': function('ale_linters#ispc#ispc#GetCommand'),
43 \ 'callback': 'ale_linters#ispc#ispc#Handle',