diff options
Diffstat (limited to 'indent/logtalk.vim')
-rw-r--r-- | indent/logtalk.vim | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/indent/logtalk.vim b/indent/logtalk.vim deleted file mode 100644 index a7c0a3a0..00000000 --- a/indent/logtalk.vim +++ /dev/null @@ -1,65 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Maintainer: Paulo Moura <pmoura@logtalk.org> -" Revised on: 2008.06.02 -" Language: Logtalk - -" This Logtalk indent file is a modified version of the Prolog -" indent file written by Gergely Kontra - -" Only load this indent file when no other was loaded. -if exists("b:did_indent") - finish -endif - -let b:did_indent = 1 - -setlocal indentexpr=GetLogtalkIndent() -setlocal indentkeys-=:,0# -setlocal indentkeys+=0%,-,0;,>,0) - -" Only define the function once. -if exists("*GetLogtalkIndent") - finish -endif - -function! GetLogtalkIndent() - " Find a non-blank line above the current line. - let pnum = prevnonblank(v:lnum - 1) - " Hit the start of the file, use zero indent. - if pnum == 0 - return 0 - endif - let line = getline(v:lnum) - let pline = getline(pnum) - - let ind = indent(pnum) - " Previous line was comment -> use previous line's indent - if pline =~ '^\s*%' - retu ind - endif - " Check for entity opening directive on previous line - if pline =~ '^\s*:-\s\(object\|protocol\|category\)\ze(.*,$' - let ind = ind + shiftwidth() - " Check for clause head on previous line - elseif pline =~ ':-\s*\(%.*\)\?$' - let ind = ind + shiftwidth() - " Check for entity closing directive on previous line - elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$' - let ind = ind - shiftwidth() - " Check for end of clause on previous line - elseif pline =~ '\.\s*\(%.*\)\?$' - let ind = ind - shiftwidth() - endif - " Check for opening conditional on previous line - if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)' - let ind = ind + shiftwidth() - endif - " Check for closing an unclosed paren, or middle ; or -> - if line =~ '^\s*\([);]\|->\)' - let ind = ind - shiftwidth() - endif - return ind -endfunction - -endif |