b374k
m1n1 1.01
Apache/2.2.15 (CentOS)
Linux obd60-6c49958d75-2q7cw 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 14:29:28 UTC 2024 x86_64
uid=48(apache) gid=48(apache) groups=48(apache)
server ip : 104.21.65.202 | your ip : 10.244.126.0
safemode OFF
 >  / usr / share / vim / vim74 / indent /
Filename/usr/share/vim/vim74/indent/bst.vim
Size1.87 kb
Permissionrw-r--r--
Ownerapache
Create time26-May-2024 11:06
Last modified17-Jul-2019 02:20
Last accessed17-Jul-2019 02:20
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
" Vim indent file
" Language: bst
" Author: Tim Pope <[email protected]>
" $Id: bst.vim,v 1.1 2007/05/05 18:11:12 vimboss Exp $

if exists("b:did_indent")
finish
endif
let b:did_indent = 1

setlocal expandtab
setlocal indentexpr=GetBstIndent(v:lnum)
"setlocal smartindent
setlocal cinkeys&
setlocal cinkeys-=0#
setlocal indentkeys&
"setlocal indentkeys+=0%

" Only define the function once.
if exists("*GetBstIndent")
finish
endif

function! s:prevgood(lnum)
" Find a non-blank line above the current line.
" Skip over comments.
let lnum = a:lnum
while lnum > 0
let lnum = prevnonblank(lnum - 1)
if getline(lnum) !~ '^\s*%.*$'
break
endif
endwhile
return lnum
endfunction

function! s:strip(lnum)
let line = getline(a:lnum)
let line = substitute(line,'"[^"]*"','""','g')
let line = substitute(line,'%.*','','')
let line = substitute(line,'^\s\+','','')
return line
endfunction

function! s:count(string,char)
let str = substitute(a:string,'[^'.a:char.']','','g')
return strlen(str)
endfunction

function! GetBstIndent(lnum) abort
if a:lnum == 1
return 0
endif
let lnum = s:prevgood(a:lnum)
if lnum <= 0
return indent(a:lnum - 1)
endif
let line = s:strip(lnum)
let cline = s:strip(a:lnum)
if cline =~ '^}' && exists("b:current_syntax")
call cursor(a:lnum,indent(a:lnum))
if searchpair('{','','}','bW',"synIDattr(synID(line('.'),col('.'),1),'name') =~? 'comment\\|string'")
if col('.')+1 == col('$')
return indent('.')
else
return virtcol('.')-1
endif
endif
endif
let fakeline = substitute(line,'^}','','').matchstr(cline,'^}')
let ind = indent(lnum)
let ind = ind + &sw * s:count(line,'{')
let ind = ind - &sw * s:count(fakeline,'}')
return ind
endfunction