Mercurial > vim
annotate runtime/indent/css.vim @ 2797:820f12659c50 v7.3.174
updated for version 7.3.174
Problem: When Exuberant ctags binary is exctags it's not found.
Solution: Add configure check for exctags. (Hong Xu)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 05 May 2011 17:24:27 +0200 |
parents | b6471224d2af |
children | dd6c2497c997 |
rev | line source |
---|---|
7 | 1 " Vim indent file |
389 | 2 " Language: CSS |
839 | 3 " Maintainer: Nikolai Weibull <now@bitwi.se> |
2698
b6471224d2af
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
1189
diff
changeset
|
4 " Latest Revision: 2010-12-22 |
7 | 5 |
6 if exists("b:did_indent") | |
7 finish | |
8 endif | |
9 let b:did_indent = 1 | |
10 | |
11 setlocal indentexpr=GetCSSIndent() | |
375 | 12 setlocal indentkeys=0{,0},!^F,o,O |
1189 | 13 setlocal nosmartindent |
7 | 14 |
15 if exists("*GetCSSIndent") | |
16 finish | |
17 endif | |
18 | |
389 | 19 function s:prevnonblanknoncomment(lnum) |
20 let lnum = a:lnum | |
21 while lnum > 1 | |
22 let lnum = prevnonblank(lnum) | |
375 | 23 let line = getline(lnum) |
24 if line =~ '\*/' | |
389 | 25 while lnum > 1 && line !~ '/\*' |
1189 | 26 let lnum -= 1 |
375 | 27 endwhile |
389 | 28 if line =~ '^\s*/\*' |
1189 | 29 let lnum -= 1 |
389 | 30 else |
1189 | 31 break |
389 | 32 endif |
33 else | |
34 break | |
375 | 35 endif |
36 endwhile | |
37 return lnum | |
38 endfunction | |
39 | |
389 | 40 function s:count_braces(lnum, count_open) |
41 let n_open = 0 | |
42 let n_close = 0 | |
43 let line = getline(a:lnum) | |
44 let pattern = '[{}]' | |
45 let i = match(line, pattern) | |
46 while i != -1 | |
47 if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'css\%(Comment\|StringQ\{1,2}\)' | |
48 if line[i] == '{' | |
1189 | 49 let n_open += 1 |
389 | 50 elseif line[i] == '}' |
1189 | 51 if n_open > 0 |
52 let n_open -= 1 | |
53 else | |
54 let n_close += 1 | |
55 endif | |
389 | 56 endif |
57 endif | |
58 let i = match(line, pattern, i + 1) | |
59 endwhile | |
60 return a:count_open ? n_open : n_close | |
61 endfunction | |
62 | |
375 | 63 function GetCSSIndent() |
389 | 64 let line = getline(v:lnum) |
65 if line =~ '^\s*\*' | |
66 return cindent(v:lnum) | |
67 endif | |
68 | |
69 let pnum = s:prevnonblanknoncomment(v:lnum - 1) | |
70 if pnum == 0 | |
7 | 71 return 0 |
72 endif | |
73 | |
2698
b6471224d2af
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
1189
diff
changeset
|
74 return indent(pnum) + s:count_braces(pnum, 1) * &sw |
b6471224d2af
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
1189
diff
changeset
|
75 \ - s:count_braces(v:lnum, 0) * &sw |
7 | 76 endfunction |