diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-28 22:18:09 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-28 22:18:09 +0200 | 
| commit | 27903c5b8656c796564ef073c1ebe77a2f0154e1 (patch) | |
| tree | 2b0a3a14494d7976fb79a7517706e25d2a95d080 /indent/pov.vim | |
| parent | d5e38fa97bc50a93a66473d6cd7072fbcbadda57 (diff) | |
| download | vim-polyglot-27903c5b8656c796564ef073c1ebe77a2f0154e1.tar.gz vim-polyglot-27903c5b8656c796564ef073c1ebe77a2f0154e1.zip | |
Revert inlining basic language packv3.0.0
Diffstat (limited to 'indent/pov.vim')
| -rw-r--r-- | indent/pov.vim | 88 | 
1 files changed, 0 insertions, 88 deletions
| diff --git a/indent/pov.vim b/indent/pov.vim deleted file mode 100644 index 90f2cafb..00000000 --- a/indent/pov.vim +++ /dev/null @@ -1,88 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 -   -" Vim indent file -" Language: PoV-Ray Scene Description Language -" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz> -" Last Change: 2017 Jun 13 -" URI: http://trific.ath.cx/Ftp/vim/indent/pov.vim - -" Only load this indent file when no other was loaded. -if exists("b:did_indent") -  finish -endif -let b:did_indent = 1 - -" Some preliminary settings. -setlocal nolisp " Make sure lisp indenting doesn't supersede us. - -setlocal indentexpr=GetPoVRayIndent() -setlocal indentkeys+==else,=end,0] - -" Only define the function once. -if exists("*GetPoVRayIndent") -  finish -endif - -" Counts matches of a regexp <rexp> in line number <line>. -" Doesn't count matches inside strings and comments (as defined by current -" syntax). -function! s:MatchCount(line, rexp) -  let str = getline(a:line) -  let i = 0 -  let n = 0 -  while i >= 0 -    let i = matchend(str, a:rexp, i) -    if i >= 0 && synIDattr(synID(a:line, i, 0), "name") !~? "string\|comment" -      let n = n + 1 -    endif -  endwhile -  return n -endfunction - -" The main function.  Returns indent amount. -function GetPoVRayIndent() -  " If we are inside a comment (may be nested in obscure ways), give up -  if synIDattr(synID(v:lnum, indent(v:lnum)+1, 0), "name") =~? "string\|comment" -    return -1 -  endif - -  " Search backwards for the frist non-empty, non-comment line. -  let plnum = prevnonblank(v:lnum - 1) -  let plind = indent(plnum) -  while plnum > 0 && synIDattr(synID(plnum, plind+1, 0), "name") =~? "comment" -    let plnum = prevnonblank(plnum - 1) -    let plind = indent(plnum) -  endwhile - -  " Start indenting from zero -  if plnum == 0 -    return 0 -  endif - -  " Analyse previous nonempty line. -  let chg = 0 -  let chg = chg + s:MatchCount(plnum, '[[{(]') -  let chg = chg + s:MatchCount(plnum, '#\s*\%(if\|ifdef\|ifndef\|switch\|while\|macro\|else\)\>') -  let chg = chg - s:MatchCount(plnum, '#\s*end\>') -  let chg = chg - s:MatchCount(plnum, '[]})]') -  " Dirty hack for people writing #if and #else on the same line. -  let chg = chg - s:MatchCount(plnum, '#\s*\%(if\|ifdef\|ifndef\|switch\)\>.*#\s*else\>') -  " When chg > 0, then we opened groups and we should indent more, but when -  " chg < 0, we closed groups and this already affected the previous line, -  " so we should not dedent.  And when everything else fails, scream. -  let chg = chg > 0 ? chg : 0 - -  " Analyse current line -  " FIXME: If we have to dedent, we should try to find the indentation of the -  " opening line. -  let cur = s:MatchCount(v:lnum, '^\s*\%(#\s*\%(end\|else\)\>\|[]})]\)') -  if cur > 0 -    let final = plind + (chg - cur) * shiftwidth() -  else -    let final = plind + chg * shiftwidth() -  endif - -  return final < 0 ? 0 : final -endfunction - -endif | 
