summaryrefslogtreecommitdiffstats
path: root/indent/bst.vim
diff options
context:
space:
mode:
Diffstat (limited to 'indent/bst.vim')
-rw-r--r--indent/bst.vim79
1 files changed, 0 insertions, 79 deletions
diff --git a/indent/bst.vim b/indent/bst.vim
deleted file mode 100644
index b11924b9..00000000
--- a/indent/bst.vim
+++ /dev/null
@@ -1,79 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
-
-" Vim indent file
-" Language: bst
-" Author: Tim Pope <vimNOSPAM@tpope.info>
-" $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 + shiftwidth() * s:count(line,'{')
- let ind = ind - shiftwidth() * s:count(fakeline,'}')
- return ind
-endfunction
-
-endif