@@ -117,6 +117,7 @@ function! csscomplete#CompleteCSS(findstart, base)
117117 let color_values = [" transparent" , " rgb(" , " rgba(" , " hsl(" , " hsla(" , " #" ] + s: named_colors
118118 let border_style_values = [" none" , " hidden" , " dotted" , " dashed" , " solid" , " double" , " groove" , " ridge" , " inset" , " outset" ]
119119 let border_width_values = [" thin" , " thick" , " medium" ]
120+ let length_values = [" calc(" ]
120121 let list_style_type_values = [" decimal" , " decimal-leading-zero" , " arabic-indic" , " armenian" , " upper-armenian" , " lower-armenian" , " bengali" , " cambodian" , " khmer" , " cjk-decimal" , " devanagari" , " georgian" , " gujarati" , " gurmukhi" , " hebrew" , " kannada" , " lao" , " malayalam" , " mongolian" , " myanmar" , " oriya" , " persian" , " lower-roman" , " upper-roman" , " tamil" , " telugu" , " thai" , " tibetan" , " lower-alpha" , " lower-latin" , " upper-alpha" , " upper-latin" , " cjk-earthly-branch" , " cjk-heavenly-stem" , " lower-greek" , " hiragana" , " hiragana-iroha" , " katakana" , " katakana-iroha" , " disc" , " circle" , " square" , " disclosure-open" , " disclosure-closed" ]
121122 let timing_functions = [" cubic-bezier(" , " steps(" , " linear" , " ease" , " ease-in" , " ease-in-out" , " ease-out" , " step-start" , " step-end" ]
122123
@@ -206,13 +207,13 @@ function! csscomplete#CompleteCSS(findstart, base)
206207 elseif prop = ~ ' ^border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-style'
207208 let values = border_style_values
208209 elseif prop = ~ ' ^border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-width'
209- let values = border_width_values
210+ let values = border_width_values + length_values
210211 elseif prop == ' border-color'
211212 let values = color_values
212213 elseif prop == ' border-style'
213214 let values = border_style_values
214215 elseif prop == ' border-width'
215- let values = border_width_values
216+ let values = border_width_values + length_values
216217 elseif prop == ' bottom'
217218 let values = [" auto" ]
218219 elseif prop == ' box-decoration-break'
@@ -246,7 +247,7 @@ function! csscomplete#CompleteCSS(findstart, base)
246247 elseif prop == ' column-rule-style'
247248 let values = border_style_values
248249 elseif prop == ' column-rule-width'
249- let values = border_width_values
250+ let values = border_width_values + length_values
250251 elseif prop == ' column-rule'
251252 let vals = matchstr (line , ' .*:\s*\zs.*' )
252253 if vals = ~ ' ^\%([a-zA-Z0-9.]\+\)\?$'
@@ -261,7 +262,7 @@ function! csscomplete#CompleteCSS(findstart, base)
261262 elseif prop == ' column-span'
262263 let values = [" none" , " all" ]
263264 elseif prop == ' column-width'
264- let values = [" auto" ]
265+ let values = [" auto" ] + length_values
265266 elseif prop == ' content'
266267 let values = [" normal" , " attr(" , " open-quote" , " close-quote" , " no-open-quote" , " no-close-quote" ]
267268 elseif prop = ~ ' ^counter-\%(increment\|reset\)$'
@@ -339,7 +340,7 @@ function! csscomplete#CompleteCSS(findstart, base)
339340 let values = [" normal" , " italic" , " oblique" , " small-caps" , " bold" , " bolder" , " lighter" , " 100" , " 200" , " 300" , " 400" , " 500" , " 600" , " 700" , " 800" , " 900" , " xx-small" , " x-small" , " small" , " medium" , " large" , " x-large" , " xx-large" , " larger" , " smaller" , " sans-serif" , " serif" , " monospace" , " system-ui" , " emoji" , " math" , " fangsong" , " cursive" , " fantasy" , " caption" , " icon" , " menu" , " message-box" , " small-caption" , " status-bar" ]
340341 let postfix = " "
341342 elseif prop = ~ ' ^\%(height\|width\)$'
342- let values = [" auto" , " border-box" , " content-box" , " max-content" , " min-content" , " available" , " fit-content" ]
343+ let values = [" auto" , " border-box" , " content-box" , " max-content" , " min-content" , " available" , " fit-content" ] + length_values
343344 elseif prop = ~ ' ^\%(left\|rigth\)$'
344345 let values = [" auto" ]
345346 elseif prop == ' image-rendering'
@@ -369,19 +370,19 @@ function! csscomplete#CompleteCSS(findstart, base)
369370 elseif prop == ' list-style'
370371 let values = list_style_type_values + [" inside" , " outside" ] + [" url(" , " none" ]
371372 elseif prop == ' margin'
372- let values = [" auto" ]
373+ let values = [" auto" ] + length_values
373374 elseif prop = ~ ' ^margin-\%(right\|left\|top\|bottom\|block-start\|block-end\|inline-start\|inline-end\)$'
374- let values = [" auto" ]
375+ let values = [" auto" ] + length_values
375376 elseif prop == ' marks'
376377 let values = [" crop" , " cross" , " none" ]
377378 elseif prop == ' mask'
378379 let values = [" url(" ]
379380 elseif prop == ' mask-type'
380381 let values = [" luminance" , " alpha" ]
381382 elseif prop == ' \%(max\|min\)-\%(block\|inline\)-size'
382- let values = [" auto" , " border-box" , " content-box" , " max-content" , " min-content" , " available" , " fit-content" ]
383+ let values = [" auto" , " border-box" , " content-box" , " max-content" , " min-content" , " available" , " fit-content" ] + length_values
383384 elseif prop == ' \%(max\|min\)-\%(height\|width\)'
384- let values = [" auto" , " border-box" , " content-box" , " max-content" , " min-content" , " available" , " fit-content" ]
385+ let values = [" auto" , " border-box" , " content-box" , " max-content" , " min-content" , " available" , " fit-content" ] + length_values
385386 elseif prop == ' \%(max\|min\)-zoom'
386387 let values = [" auto" ]
387388 elseif prop == ' mix-blend-mode'
@@ -401,7 +402,7 @@ function! csscomplete#CompleteCSS(findstart, base)
401402 elseif prop == ' outline-style'
402403 let values = [" none" , " hidden" , " dotted" , " dashed" , " solid" , " double" , " groove" , " ridge" , " inset" , " outset" ]
403404 elseif prop == ' outline-width'
404- let values = [" thin" , " thick" , " medium" ]
405+ let values = [" thin" , " thick" , " medium" ] + length_values
405406 elseif prop == ' outline'
406407 let vals = matchstr (line , ' .*:\s*\zs.*' )
407408 if vals = ~ ' ^\%([a-zA-Z0-9,()#]\+\)\?$'
@@ -422,9 +423,9 @@ function! csscomplete#CompleteCSS(findstart, base)
422423 elseif prop == ' pad'
423424 let values = []
424425 elseif prop == ' padding'
425- let values = []
426+ let values = [] + length_values
426427 elseif prop = ~ ' ^padding-\%(top\|right\|bottom\|left\|inline-start\|inline-end\|block-start\|block-end\)$'
427- let values = []
428+ let values = [] + length_values
428429 elseif prop = ~ ' ^page-break-\%(after\|before\)$'
429430 let values = [" auto" , " always" , " avoid" , " left" , " right" , " recto" , " verso" ]
430431 elseif prop == ' page-break-inside'
0 commit comments