Mercurial > vim
diff runtime/indent/css.vim @ 375:f14cbd913415 v7.0097
updated for version 7.0097
author | vimboss |
---|---|
date | Wed, 29 Jun 2005 22:40:58 +0000 |
parents | 3fc0f57ecb91 |
children | 4fe8e1a7758e |
line wrap: on
line diff
--- a/runtime/indent/css.vim +++ b/runtime/indent/css.vim @@ -1,79 +1,54 @@ " Vim indent file -" Language: CSS -" Maintainer: Nikolai Weibull <source@pcppopper.org> -" URL: http://www.pcppopper.org/vim/indent/pcp/css/ -" Latest Revision: 2004-04-25 -" arch-tag: ccfd77a0-1c9a-43f7-a407-bbe704541442 +" Language: CSS +" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se> +" Latest Revision: 2005-06-29 -" Only load this indent file when no other was loaded. if exists("b:did_indent") finish endif - let b:did_indent = 1 setlocal indentexpr=GetCSSIndent() -setlocal indentkeys-=:,0# indentkeys-=e +setlocal indentkeys=0{,0},!^F,o,O -" Only define the function once. if exists("*GetCSSIndent") finish endif -function! s:LookupLine(lnum) - " find a non-blank line above the current line +function s:LookupLine(lnum) let lnum = prevnonblank(a:lnum - 1) + while lnum > 0 + let line = getline(lnum) + if line =~ '\*/' + while lnum > 0 && line !~ '/\*' + let lnum -= 1 + let line = getline(lnum) + endwhile + endif + + if line !~ '^\s*/\*' + return lnum + end + endwhile + return lnum +endfunction + +function GetCSSIndent() + let lnum = prevnonblank(v:lnum - 1) if lnum == 0 return 0 endif - let line = getline(lnum) - - " if the line has an end comment sequence we need to find a line - " that isn't affected by the comment. - if line =~ '\*/' - while line !~ '/\*' - let lnum = lnum - 1 - let line = getline(lnum) - endwhile - endif - - " if the line we found only contained the comment and whitespace - " we need to find another line to use... - if line =~ '^\s*/\*' - return s:LookupLine(lnum) - else - return lnum - endif -endfunction - -function GetCSSIndent() - let lnum = s:LookupLine(v:lnum) - - if lnum == 0 - return 0 - endif - - " remove commented stuff from line - let line = substitute(getline(lnum), '/\*.\*/', '', 'eg') - let ind = indent(lnum) - " check for opening brace on the previous line - " skip if it also contains a closing brace... - if line =~ '{\(.*}\)\@!' + if substitute(getline(lnum), '/\*.*', '', 'e') =~ '{\(.*}\)\@!' let ind = ind + &sw endif - let line = getline(v:lnum) - - " check for closing brace first on current line - if line =~ '^\s*}' - let ind = ind - &sw + if getline(v:lnum) =~ '^\s*}' + let ind = ind - &sw endif return ind endfunction - -" vim: set sts=2 sw=2: