diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2023-06-11 23:21:38 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2023-06-11 23:21:38 +0200 |
| commit | 252cea169185f5a57acb6913f622950bb27458f8 (patch) | |
| tree | 33bc09c6a5abd5bd46faec09c10de226a9993a5c /vim/ftplugin/puppet.vim | |
| parent | e19087bc292678a526a8c780bbdc58b38dcecc2c (diff) | |
Drop support for vim, cleanup nvim config
Diffstat (limited to 'vim/ftplugin/puppet.vim')
| -rw-r--r-- | vim/ftplugin/puppet.vim | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/vim/ftplugin/puppet.vim b/vim/ftplugin/puppet.vim deleted file mode 100644 index 1b00868..0000000 --- a/vim/ftplugin/puppet.vim +++ /dev/null @@ -1,137 +0,0 @@ -" Vim filetype plugin -" Language: Puppet -" Maintainer: Todd Zullinger <tmz@pobox.com> -" Last Change: 2009 Aug 19 -" vim: set sw=4 sts=4: - -if exists("b:did_ftplugin") - finish -endif -let b:did_ftplugin = 1 - -if !exists("no_plugin_maps") && !exists("no_puppet_maps") - if !hasmapto("<Plug>AlignRange") - map <buffer> <LocalLeader>= <Plug>AlignRange - endif -endif - -noremap <buffer> <unique> <script> <Plug>AlignArrows :call <SID>AlignArrows()<CR> -noremap <buffer> <unique> <script> <Plug>AlignRange :call <SID>AlignRange()<CR> - -iabbrev => =><C-R>=<SID>AlignArrows('=>')<CR> -iabbrev +> +><C-R>=<SID>AlignArrows('+>')<CR> - -if exists('*s:AlignArrows') - finish -endif - -let s:arrow_re = '[=+]>' -let s:selector_re = '[=+]>\s*\$.*\s*?\s*{\s*$' - -" set keywordprg to 'pi' (alias for puppet describe) -" this lets K invoke pi for word under cursor -setlocal keywordprg=puppet\ describe - -function! s:AlignArrows(op) - let cursor_pos = getpos('.') - let lnum = line('.') - let line = getline(lnum) - if line !~ s:arrow_re - return - endif - let pos = stridx(line, a:op) - let start = lnum - let end = lnum - let pnum = lnum - 1 - while 1 - let pline = getline(pnum) - if pline !~ s:arrow_re || pline =~ s:selector_re - break - endif - let start = pnum - let pnum -= 1 - endwhile - let cnum = end - while 1 - let cline = getline(cnum) - if cline !~ s:arrow_re || - \ (indent(cnum) != indent(cnum+1) && getline(cnum+1) !~ '\s*}') - break - endif - let end = cnum - let cnum += 1 - endwhile - call s:AlignSection(start, end) - let cursor_pos[2] = stridx(getline('.'), a:op) + strlen(a:op) + 1 - call setpos('.', cursor_pos) - return '' -endfunction - -function! s:AlignRange() range - call s:AlignSection(a:firstline, a:lastline) -endfunction - -" AlignSection and AlignLine are from the vim wiki: -" http://vim.wikia.com/wiki/Regex-based_text_alignment -function! s:AlignSection(start, end) - let extra = 1 - let sep = s:arrow_re - let maxpos = 0 - let section = getline(a:start, a:end) - for line in section - let pos = match(line, ' *'.sep) - if maxpos < pos - let maxpos = pos - endif - endfor - call map(section, 's:AlignLine(v:val, sep, maxpos, extra)') - call setline(a:start, section) -endfunction - -function! s:AlignLine(line, sep, maxpos, extra) - let m = matchlist(a:line, '\(.\{-}\) \{-}\('.a:sep.'.*\)') - if empty(m) - return a:line - endif - let spaces = repeat(' ', a:maxpos - strlen(m[1]) + a:extra) - return m[1] . spaces . m[2] -endfunction - -" detect if we are in a module and set variables for classpath (autoloader), -" modulename, modulepath, and classname -" useful to use in templates -function! s:SetModuleVars() - - " set these to any dirs you want to stop searching on - " useful to stop vim from spinning disk looking all over for init.pp - " probably only a macosx problem with /tmp since it's really /private/tmp - " but it's here if you find vim spinning on new files in certain places - if !exists("g:puppet_stop_dirs") - let g:puppet_stop_dirs = '/tmp;/private/tmp' - endif - - " search path for init.pp - let b:search_path = './**' - let b:search_path = b:search_path . ';' . getcwd() . ';' . g:puppet_stop_dirs - - " find what we assume to be our module dir - let b:initpp = findfile("init.pp", b:search_path) " find an init.pp up or down - let b:module_path = fnamemodify(b:initpp, ":p:h:h") " full path to module name - let b:module_name = fnamemodify(b:module_path, ":t") " just the module name - - " sub out the full path to the module with the name and replace slashes with :: - let b:classpath = fnamemodify(expand("%:p:r"), ':s#' . b:module_path . '/manifests#' . b:module_name . '#'. ":gs?/?::?") - let b:classname = expand("%:t:r") - - " if we don't start with a word we didn't replace the module_path - " probably b/c we couldn't find an init.pp / not a module - " so we assume that root of the filename is the class (sane for throwaway - " manifests - if b:classpath =~ '^::' - let b:classpath = b:classname - endif -endfunction - -if exists("g:puppet_module_detect") - call s:SetModuleVars() -endif |