From 9e8f2b08401af5af83b181a0ca5419937f3fd0de Mon Sep 17 00:00:00 2001 From: Martino Pilia Date: Mon, 12 Nov 2018 00:54:24 +0100 Subject: Lint ispc on disk to solve include imprecisions --- README.md | 2 +- ale_linters/ispc/ispc.vim | 10 ++++------ doc/ale.txt | 2 +- .../command_callback/test_ispc_ispc_command_callbacks.vader | 13 +++---------- 4 files changed, 9 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 0c96b811..801d908f 100644 --- a/README.md +++ b/README.md @@ -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) | diff --git a/ale_linters/ispc/ispc.vim b/ale_linters/ispc/ispc.vim index 283cfdff..b5f33f5b 100644 --- a/ale_linters/ispc/ispc.vim +++ b/ale_linters/ispc/ispc.vim @@ -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, \}) diff --git a/doc/ale.txt b/doc/ale.txt index c610d0d9..6910ae6f 100644 --- a/doc/ale.txt +++ b/doc/ale.txt @@ -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` diff --git a/test/command_callback/test_ispc_ispc_command_callbacks.vader b/test/command_callback/test_ispc_ispc_command_callbacks.vader index e5a0dec2..012cdee2 100644 --- a/test/command_callback/test_ispc_ispc_command_callbacks.vader +++ b/test/command_callback/test_ispc_ispc_command_callbacks.vader @@ -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' -- cgit v1.2.3