summaryrefslogtreecommitdiffstats
path: root/after/ftplugin/puppet.vim
blob: f976a457e4277cac2ed514e4dbbd996b8d63316e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if !exists('g:puppet_align_hashes')
    let g:puppet_align_hashes = 1
endif

if g:puppet_align_hashes && exists(':Tabularize')
    inoremap <buffer> <silent> > ><Esc>:call <SID>puppetalign()<CR>a
    function! s:puppetalign()
        let p = '^\s*\w+\s*[=+]>.*$'
        let column = strlen(substitute(getline('.')[0:col('.')],'\([^=]\|=[^>]\)','','g'))
        let position = strlen(matchstr(getline('.')[0:col('.')],'.*=>\s*\zs.*'))
        Tabularize /=>/l1
        normal! 0
        echo repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position)
        call search(repeat('\([^=]\|=[^>]\)*=>',column).'\s\{-\}'.repeat('.',position),'ce',line('.'))
    endfunction
endif