summaryrefslogtreecommitdiff
path: root/ale_linters/puppet
diff options
context:
space:
mode:
authorTim Byrne <sultan@locehilios.com>2018-08-27 12:59:38 -0500
committerTim Byrne <sultan@locehilios.com>2018-08-27 12:59:38 -0500
commit192f211a0ee63c716d0d5887755d1e139a82ace8 (patch)
tree1c6079597f874a5d35c67ef4aa84b2f41ad16b4b /ale_linters/puppet
parent3c85c7ef65242cf80279cf9dcf843523f6d7875b (diff)
downloadale-192f211a0ee63c716d0d5887755d1e139a82ace8.zip
Support options for puppet parser validate
It can be necessary to pass options to the puppet parser validation. The most glaring example of this is when using Puppet 3, with the `parser = future` option enabled. This update allows adding `--parser=future` to the options passed to Puppet.
Diffstat (limited to 'ale_linters/puppet')
-rw-r--r--ale_linters/puppet/puppet.vim13
1 files changed, 11 insertions, 2 deletions
diff --git a/ale_linters/puppet/puppet.vim b/ale_linters/puppet/puppet.vim
index 4ca0dd55..1ed268d1 100644
--- a/ale_linters/puppet/puppet.vim
+++ b/ale_linters/puppet/puppet.vim
@@ -1,5 +1,8 @@
" Author: Alexander Olofsson <alexander.olofsson@liu.se>
+call ale#Set('puppet_puppet_executable', 'puppet')
+call ale#Set('puppet_puppet_options', '--color=false')
+
function! ale_linters#puppet#puppet#Handle(buffer, lines) abort
" Matches patterns like the following:
" Error: Could not parse for environment production: Syntax error at ':' at /root/puppetcode/modules/nginx/manifests/init.pp:43:12
@@ -20,10 +23,16 @@ function! ale_linters#puppet#puppet#Handle(buffer, lines) abort
return l:output
endfunction
+function! ale_linters#puppet#puppet#GetCommand(buffer) abort
+ return '%e parser validate '
+ \ . ale#Pad(ale#Var(a:buffer, 'puppet_puppet_options'))
+ \ . ' %t'
+endfunction
+
call ale#linter#Define('puppet', {
\ 'name': 'puppet',
-\ 'executable': 'puppet',
+\ 'executable_callback': ale#VarFunc('puppet_puppet_executable'),
\ 'output_stream': 'stderr',
-\ 'command': 'puppet parser validate --color=false %t',
+\ 'command_callback': 'ale_linters#puppet#puppet#GetCommand',
\ 'callback': 'ale_linters#puppet#puppet#Handle',
\})