Apache/2.4.7 (Ubuntu) Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) safemode : OFF MySQL: ON | Perl: ON | cURL: OFF | WGet: ON > / usr / share / vim / vim74 / indent / | server ip : 104.21.89.46 your ip : 172.70.127.59 H O M E |
Filename | /usr/share/vim/vim74/indent/logtalk.vim |
Size | 1.65 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 27-Apr-2025 09:56 |
Last modified | 03-Jan-2014 03:40 |
Last accessed | 06-Jul-2025 12:47 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
" Maintainer: Paulo Moura <[email protected]>
" 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 + &sw
" Check for clause head on previous line
elseif pline =~ ':-\s*\(%.*\)\?$'
let ind = ind + &sw
" Check for entity closing directive on previous line
elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$'
let ind = ind - &sw
" Check for end of clause on previous line
elseif pline =~ '\.\s*\(%.*\)\?$'
let ind = ind - &sw
endif
" Check for opening conditional on previous line
if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)'
let ind = ind + &sw
endif
" Check for closing an unclosed paren, or middle ; or ->
if line =~ '^\s*\([);]\|->\)'
let ind = ind - &sw
endif
return ind
endfunction
" 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 + &sw
" Check for clause head on previous line
elseif pline =~ ':-\s*\(%.*\)\?$'
let ind = ind + &sw
" Check for entity closing directive on previous line
elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$'
let ind = ind - &sw
" Check for end of clause on previous line
elseif pline =~ '\.\s*\(%.*\)\?$'
let ind = ind - &sw
endif
" Check for opening conditional on previous line
if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)'
let ind = ind + &sw
endif
" Check for closing an unclosed paren, or middle ; or ->
if line =~ '^\s*\([);]\|->\)'
let ind = ind - &sw
endif
return ind
endfunction