PHP 8.2.30
Preview: pov.vim Size: 2.60 KB
/proc/self/root/usr/share/vim/vim80/indent/pov.vim

" 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

Directory Contents

Dirs: 0 × Files: 123

Name Size Perms Modified Actions
265 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
10.97 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
290 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
243 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
7.59 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
346 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.89 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.43 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
325 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
4.15 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
470 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.11 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
264 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
10.20 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.62 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
8.11 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.13 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
752 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
329 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
327 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.75 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.62 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
305 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
510 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
337 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
338 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
336 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
11.59 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
451 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.64 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
3.24 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
45.29 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.74 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
668 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
13.72 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
7.27 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
816 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
841 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.25 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.63 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.16 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.39 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.85 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
32.47 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
273 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.58 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.83 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.77 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
4.19 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
15.00 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
4.32 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
462 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.75 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
243 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
637 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.85 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
353 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.70 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.88 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
308 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
3.41 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.92 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
156 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.18 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
11.06 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
3.18 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.61 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
8.94 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
4.53 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
5.52 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
5.76 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
3.46 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
21.91 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.61 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.60 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.46 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
326 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
5.61 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
13.58 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
711 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.60 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.77 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.17 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.06 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.82 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.17 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.37 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
22.43 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
6.35 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
5.01 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
950 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
18.97 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
372 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
191 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.73 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
5.58 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
6.33 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.18 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
12.86 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
205 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
8.38 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.59 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.24 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.33 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
13.18 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.51 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1012 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
707 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.04 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
7.97 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
14.32 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.92 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
379 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
709 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
269 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
1.20 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
2.78 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
253 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
297 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
781 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download
5.34 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
3.84 KB lrw-r--r-- 2026-03-12 10:09:58
Edit Download
411 B lrw-r--r-- 2026-03-12 10:09:58
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).