Files
macvim-mirror/runtime/indent/postscr.vim
Christian Brabandt 62d8f3dab5 runtime: Revert several "mark invalid contact addresses" commits
This reverts commits:
- 6b652a7850
- 2f689d5abd
- a025a46d41

Several email addresses that are known to be valid caused bounces
due to an issue with my email setup. The previous commits incorrectly
marked these addresses as invalid. So revert the whole thing again.

Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-01-01 15:14:14 +00:00

70 lines
1.6 KiB
VimL

" PostScript indent file
" Language: PostScript
" Maintainer: Mike Williams <mrw@eandem.co.uk>
" Last Change: 2022 Apr 06
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=PostscrIndentGet(v:lnum)
setlocal indentkeys+=0],0=>>,0=%%,0=end,0=restore,0=grestore indentkeys-=:,0#,e
let b:undo_indent = "setl inde< indk<"
" Catch multiple instantiations
if exists("*PostscrIndentGet")
finish
endif
function! PostscrIndentGet(lnum)
" Find a non-empty non-comment line above the current line.
" Note: ignores DSC comments as well!
let lnum = a:lnum - 1
while lnum != 0
let lnum = prevnonblank(lnum)
if getline(lnum) !~ '^\s*%.*$'
break
endif
let lnum = lnum - 1
endwhile
" Hit the start of the file, use user indent.
if lnum == 0
return -1
endif
" Start with the indent of the previous line
let ind = indent(lnum)
let pline = getline(lnum)
" Indent for dicts, arrays, and saves with possible trailing comment
if pline =~ '\(begin\|<<\|g\=save\|{\|[\)\s*\(%.*\)\=$'
let ind = ind + shiftwidth()
endif
" Remove indent for popped dicts, and restores.
if pline =~ '\(end\|g\=restore\)\s*$'
let ind = ind - shiftwidth()
" Else handle immediate dedents of dicts, restores, and arrays.
elseif getline(a:lnum) =~ '\(end\|>>\|g\=restore\|}\|]\)'
let ind = ind - shiftwidth()
" Else handle DSC comments - always start of line.
elseif getline(a:lnum) =~ '^\s*%%'
let ind = 0
endif
" For now catch excessive left indents if they occur.
if ind < 0
let ind = -1
endif
return ind
endfunction
" vim:sw=2