" Vim indent file " Language: Factor " Maintainer: Giftpflanze " Last Change: 2022 August 23 if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal indentexpr=GetFactorIndent(v:lnum) let b:undo_indent = 'setlocal indentexpr<' if exists("*GetFactorIndent") finish endif function! GetFactorIndent(lnum) let cline = getline(a:lnum) let pline = getline(a:lnum-1) let pind = indent(a:lnum-1) if pline =~ '^:' return pind + shiftwidth() endif if pline =~ ';$' return pind - shiftwidth() endif if pline =~ '[{[]$' return pind + shiftwidth() endif if cline =~ '^\s*[\]}]' return pind - shiftwidth() endif return pind endfunction