summaryrefslogtreecommitdiffstats
path: root/runtime/indent
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-07-04 22:49:24 +0000
committerBram Moolenaar <Bram@vim.org>2005-07-04 22:49:24 +0000
commit0dc065ee7c3bd51e5df3926700e409ae74cdfecf (patch)
tree3e2f974603cbba12d3f1dcebf493e7ff2bf54d7f /runtime/indent
parent7d1f5dbc0a254d7524b3f985f2440bf89e037355 (diff)
updated for version 7.0102v7.0102
Diffstat (limited to 'runtime/indent')
-rw-r--r--runtime/indent/config.vim3
-rw-r--r--runtime/indent/css.vim73
-rw-r--r--runtime/indent/dictconf.vim12
-rw-r--r--runtime/indent/dictdconf.vim12
-rw-r--r--runtime/indent/ld.vim42
-rw-r--r--runtime/indent/tcl.vim28
6 files changed, 130 insertions, 40 deletions
diff --git a/runtime/indent/config.vim b/runtime/indent/config.vim
index 3789a507fc..cb2023d7dc 100644
--- a/runtime/indent/config.vim
+++ b/runtime/indent/config.vim
@@ -1,8 +1,7 @@
" Vim indent file
" Language: Autoconf configure.{ac,in} file
" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" URL: http://www.pcppopper.org/vim/indent/pcp/config/
-" Latest Revision: 2005-06-29
+" Latest Revision: 2005-06-30
" TODO: how about nested [()]'s in one line
" what's wrong with '\\\@!'?
diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
index ee4288cf7c..b0560b473d 100644
--- a/runtime/indent/css.vim
+++ b/runtime/indent/css.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: CSS
-" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision: 2005-06-29
+" Language: CSS
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-30
if exists("b:did_indent")
finish
@@ -15,39 +15,68 @@ if exists("*GetCSSIndent")
finish
endif
-function s:LookupLine(lnum)
- let lnum = prevnonblank(a:lnum - 1)
- while lnum > 0
+function s:prevnonblanknoncomment(lnum)
+ let lnum = a:lnum
+ while lnum > 1
+ let lnum = prevnonblank(lnum)
let line = getline(lnum)
-
if line =~ '\*/'
- while lnum > 0 && line !~ '/\*'
+ while lnum > 1 && line !~ '/\*'
let lnum -= 1
- let line = getline(lnum)
endwhile
+ if line =~ '^\s*/\*'
+ let lnum -= 1
+ else
+ break
+ endif
+ else
+ break
endif
-
- if line !~ '^\s*/\*'
- return lnum
- end
endwhile
return lnum
endfunction
+function s:count_braces(lnum, count_open)
+ let n_open = 0
+ let n_close = 0
+ let line = getline(a:lnum)
+ let pattern = '[{}]'
+ let i = match(line, pattern)
+ while i != -1
+ if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'css\%(Comment\|StringQ\{1,2}\)'
+ if line[i] == '{'
+ let n_open += 1
+ elseif line[i] == '}'
+ if n_open > 0
+ let n_open -= 1
+ else
+ let n_close += 1
+ endif
+ endif
+ endif
+ let i = match(line, pattern, i + 1)
+ endwhile
+ return a:count_open ? n_open : n_close
+endfunction
+
function GetCSSIndent()
- let lnum = prevnonblank(v:lnum - 1)
- if lnum == 0
- return 0
+ let line = getline(v:lnum)
+ if line =~ '^\s*\*'
+ return cindent(v:lnum)
+ elseif line =~ '^\s*}'
+ return indent(v:lnum) - &sw
endif
- let ind = indent(lnum)
-
- if substitute(getline(lnum), '/\*.*', '', 'e') =~ '{\(.*}\)\@!'
- let ind = ind + &sw
+ let pnum = s:prevnonblanknoncomment(v:lnum - 1)
+ if pnum == 0
+ return 0
endif
- if getline(v:lnum) =~ '^\s*}'
- let ind = ind - &sw
+ let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
+
+ let pline = getline(pnum)
+ if pline =~ '}\s*$'
+ let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * &sw
endif
return ind
diff --git a/runtime/indent/dictconf.vim b/runtime/indent/dictconf.vim
new file mode 100644
index 0000000000..dcaf1e1520
--- /dev/null
+++ b/runtime/indent/dictconf.vim
@@ -0,0 +1,12 @@
+" Vim indent file
+" Language: dict(1) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-30
+
+if exists("b:did_indent")
+ finish
+endif
+let b:did_indent = 1
+
+setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
+inoremap <buffer> # X#
diff --git a/runtime/indent/dictdconf.vim b/runtime/indent/dictdconf.vim
new file mode 100644
index 0000000000..f8f567064a
--- /dev/null
+++ b/runtime/indent/dictdconf.vim
@@ -0,0 +1,12 @@
+" Vim indent file
+" Language: dictd(8) configuration file
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-07-01
+
+if exists("b:did_indent")
+ finish
+endif
+let b:did_indent = 1
+
+setlocal indentkeys=0{,0},!^F,o,O cinwords= autoindent smartindent
+inoremap <buffer> # X#
diff --git a/runtime/indent/ld.vim b/runtime/indent/ld.vim
index 8b7c03fce5..440b106f12 100644
--- a/runtime/indent/ld.vim
+++ b/runtime/indent/ld.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: ld(1) script
" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision: 2005-06-29
+" Latest Revision: 2005-06-30
if exists("b:did_indent")
finish
@@ -15,6 +15,27 @@ if exists("*GetLDIndent")
finish
endif
+function s:prevnonblanknoncomment(lnum)
+ let lnum = a:lnum
+ while lnum > 1
+ let lnum = prevnonblank(lnum)
+ let line = getline(lnum)
+ if line =~ '\*/'
+ while lnum > 1 && line !~ '/\*'
+ let lnum -= 1
+ endwhile
+ if line =~ '^\s*/\*'
+ let lnum -= 1
+ else
+ break
+ endif
+ else
+ break
+ endif
+ endwhile
+ return lnum
+endfunction
+
function s:count_braces(lnum, count_open)
let n_open = 0
let n_close = 0
@@ -39,11 +60,24 @@ function s:count_braces(lnum, count_open)
endfunction
function GetLDIndent()
- let pnum = prevnonblank(v:lnum - 1)
+ let line = getline(v:lnum)
+ if line =~ '^\s*\*'
+ return cindent(v:lnum)
+ elseif line =~ '^\s*}'
+ return indent(v:lnum) - &sw
+ endif
+
+ let pnum = s:prevnonblanknoncomment(v:lnum - 1)
if pnum == 0
return 0
endif
- return indent(pnum) + s:count_braces(pnum, 1) * &sw
- \ - s:count_braces(v:lnum, 0) * &sw
+ let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
+
+ let pline = getline(pnum)
+ if pline =~ '}\s*$'
+ let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * &sw
+ endif
+
+ return ind
endfunction
diff --git a/runtime/indent/tcl.vim b/runtime/indent/tcl.vim
index 83e7719cb7..546b60daf8 100644
--- a/runtime/indent/tcl.vim
+++ b/runtime/indent/tcl.vim
@@ -1,7 +1,7 @@
" Vim indent file
-" Language: Tcl
-" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision: 2005-06-29
+" Language: Tcl
+" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision: 2005-06-30
if exists("b:did_indent")
finish
@@ -31,10 +31,10 @@ function s:count_braces(lnum, count_open)
let n_open = 0
let n_close = 0
let line = getline(a:lnum)
- let pattern = '\\\@<![{}]'
+ let pattern = '[{}]'
let i = match(line, pattern)
while i != -1
- if synIDattr(synID(a:lnum, i + 1, 1), 'name') !~ 'tcl\%(Comment\|String\)'
+ if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'tcl\%(Comment\|String\)'
if line[i] == '{'
let n_open += 1
elseif line[i] == '}'
@@ -51,20 +51,24 @@ function s:count_braces(lnum, count_open)
endfunction
function GetTclIndent()
+ let line = getline(v:lnum)
+ if line =~ '^\s*\*'
+ return cindent(v:lnum)
+ elseif line =~ '^\s*}'
+ return indent(v:lnum) - &sw
+ endif
+
let pnum = s:prevnonblanknoncomment(v:lnum - 1)
if pnum == 0
return 0
endif
let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
- if getline(pnum) =~ '\\$'
- let ind += &sw
- endif
- let pnum = s:prevnonblanknoncomment(pnum - 1)
- if pnum > 0 && getline(pnum) =~ '\\$'
- let ind -= &sw
+ let pline = getline(pnum)
+ if pline =~ '}\s*$'
+ let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * &sw
endif
- return ind - s:count_braces(v:lnum, 0) * &sw
+ return ind
endfunction