summaryrefslogtreecommitdiffstats
path: root/runtime/autoload/csscomplete.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-09-25 22:16:38 +0000
committerBram Moolenaar <Bram@vim.org>2005-09-25 22:16:38 +0000
commit1e01546026ce909b5fe56c05867f28e77d1b6eb3 (patch)
tree05ccef65c430097352670acbbeb5520d649ba841 /runtime/autoload/csscomplete.vim
parentbfd8fc0529f46612f7b3efca6c7b3305e70ac374 (diff)
updated for version 7.0150
Diffstat (limited to 'runtime/autoload/csscomplete.vim')
-rw-r--r--runtime/autoload/csscomplete.vim39
1 files changed, 31 insertions, 8 deletions
diff --git a/runtime/autoload/csscomplete.vim b/runtime/autoload/csscomplete.vim
index 8ac3600611..9461f39b8f 100644
--- a/runtime/autoload/csscomplete.vim
+++ b/runtime/autoload/csscomplete.vim
@@ -1,7 +1,7 @@
" Vim completion script
" Language: CSS 2.1
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change: 2005 Sep 19
+" Last Change: 2005 Sep 23
function! csscomplete#CompleteCSS(findstart, base)
if a:findstart
@@ -18,6 +18,8 @@ else
" 3. if } we are outside of css definitions
" 4. for comments ignoring is be the easiest but assume they are the same
" as 1.
+ " 5. if @ complete at-rule
+ " 6. if ! complete important
let line = a:base
let res = []
@@ -26,14 +28,16 @@ else
" We need the last occurrence of char so reverse line
let revline = join(reverse(split(line, '.\zs')), '')
+
let openbrace = stridx(revline, '{')
let closebrace = stridx(revline, '}')
- let colon = stridx(revline, ':')
- let semicolon = stridx(revline, ';')
- let opencomm = stridx(revline, '*/') " Line was reversed
- let closecomm = stridx(revline, '/*') " Line was reversed
- let style = stridx(revline, '=\s*elyts') " Line was reversed
- let atrule = stridx(revline, '@')
+ let colon = stridx(revline, ':')
+ let semicolon = stridx(revline, ';')
+ let opencomm = stridx(revline, '*/') " Line was reversed
+ let closecomm = stridx(revline, '/*') " Line was reversed
+ let style = stridx(revline, '=\s*elyts') " Line was reversed
+ let atrule = stridx(revline, '@')
+ let exclam = stridx(revline, '!')
if openbrace > -1
let borders[openbrace] = "openbrace"
@@ -59,6 +63,9 @@ else
if atrule > -1
let borders[atrule] = "atrule"
endif
+ if exclam > -1
+ let borders[exclam] = "exclam"
+ endif
if len(borders) == 0 || borders[min(keys(borders))] =~ '^\(openbrace\|semicolon\|opencomm\|closecomm\|style\)$'
" Complete properties
@@ -318,6 +325,22 @@ else
return []
+ elseif borders[min(keys(borders))] == 'exclam'
+
+ " Complete values
+ let impbase = matchstr(line, '.\{-}!\s*\ze[a-zA-Z ]*$')
+ let entered_imp = matchstr(line, '.\{-}!\s*\zs[a-zA-Z ]*$')
+
+ let values = ["important"]
+
+ for m in values
+ if m =~? '^'.entered_imp
+ call add(res, impbase . m)
+ endif
+ endfor
+
+ return res
+
elseif borders[min(keys(borders))] == 'atrule'
let afterat = matchstr(line, '.*@\zs.*')
@@ -368,7 +391,7 @@ else
endif
- let values = ["charset", "page", "media", "import"]
+ let values = ["charset", "page", "media", "import", "font-face"]
let atrulebase = matchstr(line, '.*@\ze[a-zA-Z -]*$')
let entered_atrule = matchstr(line, '.*@\zs[a-zA-Z-]*$')