From 72b4084ad32951a58bed8cacdb964dea3976adaf Mon Sep 17 00:00:00 2001 From: Giftpflanze Date: Tue, 23 Aug 2022 19:33:21 +0000 Subject: [PATCH] Add vim indent --- misc/vim/indent/factor.vim | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 misc/vim/indent/factor.vim diff --git a/misc/vim/indent/factor.vim b/misc/vim/indent/factor.vim new file mode 100644 index 0000000000..0224e59237 --- /dev/null +++ b/misc/vim/indent/factor.vim @@ -0,0 +1,36 @@ +" 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 -- 2.34.1