Lint ispc on disk to solve include imprecisions

This commit is contained in:
Martino Pilia 2018-11-12 00:54:24 +01:00
parent 0b4507ed56
commit 9e8f2b0840
No known key found for this signature in database
GPG Key ID: CDEE463095565E17
4 changed files with 9 additions and 18 deletions

View File

@ -140,7 +140,7 @@ formatting.
| HCL | [terraform-fmt](https://github.com/hashicorp/terraform) |
| HTML | [alex](https://github.com/wooorm/alex) !!, [HTMLHint](http://htmlhint.com/), [proselint](http://proselint.com/), [tidy](http://www.html-tidy.org/), [prettier](https://github.com/prettier/prettier), [write-good](https://github.com/btford/write-good) |
| Idris | [idris](http://www.idris-lang.org/) |
| ISPC | [ispc](https://ispc.github.io/) |
| ISPC | [ispc](https://ispc.github.io/) !! |
| Java | [checkstyle](http://checkstyle.sourceforge.net), [javac](http://www.oracle.com/technetwork/java/javase/downloads/index.html), [google-java-format](https://github.com/google/google-java-format), [PMD](https://pmd.github.io/), [javalsp](https://github.com/georgewfraser/vscode-javac), [uncrustify](https://github.com/uncrustify/uncrustify) |
| JavaScript | [eslint](http://eslint.org/), [flow](https://flowtype.org/), [jscs](http://jscs.info/), [jshint](http://jshint.com/), [prettier](https://github.com/prettier/prettier), [prettier-eslint](https://github.com/prettier/prettier-eslint-cli), [prettier-standard](https://github.com/sheerun/prettier-standard), [standard](http://standardjs.com/), [xo](https://github.com/sindresorhus/xo)
| JSON | [fixjson](https://github.com/rhysd/fixjson), [jsonlint](http://zaa.ch/jsonlint/), [jq](https://stedolan.github.io/jq/), [prettier](https://github.com/prettier/prettier) |

View File

@ -4,14 +4,11 @@
call ale#Set('ispc_ispc_executable', 'ispc')
call ale#Set('ispc_ispc_options', '')
" ISPC has no equivalent of gcc's -iquote argument, so use a -I for headers
" in the same directory. Not perfect, since now local headers are accepted
" by #include<> while they should not, but better than nothing.
function! ale_linters#ispc#ispc#GetCommand(buffer) abort
return '%e '
\ . '-I ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
return '%e'
\ . ale#Pad(ale#c#IncludeOptions(ale#c#FindLocalHeaderPaths(a:buffer)))
\ . ale#Pad(ale#Var(a:buffer, 'ispc_ispc_options')) . ' -'
\ . ale#Pad(ale#Var(a:buffer, 'ispc_ispc_options'))
\ . ' %s'
endfunction
" Note that we ignore the two warnings in the beginning of the compiler output
@ -65,4 +62,5 @@ call ale#linter#Define('ispc', {
\ 'executable_callback': ale#VarFunc('ispc_ispc_executable'),
\ 'command_callback': 'ale_linters#ispc#ispc#GetCommand',
\ 'callback': 'ale_linters#ispc#ispc#Handle',
\ 'lint_file': 1,
\})

View File

@ -437,7 +437,7 @@ Notes:
* HCL: `terraform-fmt`
* HTML: `alex`!!, `HTMLHint`, `proselint`, `tidy`, `prettier`, `write-good`
* Idris: `idris`
* ISPC: `ispc`
* ISPC: `ispc`!!
* Java: `checkstyle`, `javac`, `google-java-format`, `PMD`, `javalsp`, `uncrustify`
* JavaScript: `eslint`, `flow`, `jscs`, `jshint`, `prettier`, `prettier-eslint`, `prettier-standard`, `standard`, `xo`
* JSON: `fixjson`, `jsonlint`, `jq`, `prettier`

View File

@ -6,22 +6,15 @@ After:
Execute(The executable should be configurable):
AssertLinter 'ispc',
\ ale#Escape('ispc')
\ . ' -I ' . ale#Escape(getcwd())
\ . ' -'
\ ale#Escape('ispc') . ' %s'
let b:ale_ispc_ispc_executable = 'foo'
AssertLinter 'foo',
\ ale#Escape('foo')
\ . ' -I ' . ale#Escape(getcwd())
\ . ' -'
\ ale#Escape('foo') . ' %s'
Execute(The options should be configurable):
let g:ale_ispc_ispc_options = '--foo'
AssertLinter 'ispc',
\ ale#Escape('ispc')
\ . ' -I ' . ale#Escape(getcwd())
\ . ' --foo'
\ . ' -'
\ ale#Escape('ispc') . ' --foo' . ' %s'