@@ -117,6 +117,7 @@ function! csscomplete#CompleteCSS(findstart, base)
117
117
let color_values = [" transparent" , " rgb(" , " rgba(" , " hsl(" , " hsla(" , " #" ] + s: named_colors
118
118
let border_style_values = [" none" , " hidden" , " dotted" , " dashed" , " solid" , " double" , " groove" , " ridge" , " inset" , " outset" ]
119
119
let border_width_values = [" thin" , " thick" , " medium" ]
120
+ let length_values = [" calc(" ]
120
121
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" ]
121
122
let timing_functions = [" cubic-bezier(" , " steps(" , " linear" , " ease" , " ease-in" , " ease-in-out" , " ease-out" , " step-start" , " step-end" ]
122
123
@@ -206,13 +207,13 @@ function! csscomplete#CompleteCSS(findstart, base)
206
207
elseif prop = ~ ' ^border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-style'
207
208
let values = border_style_values
208
209
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
210
211
elseif prop == ' border-color'
211
212
let values = color_values
212
213
elseif prop == ' border-style'
213
214
let values = border_style_values
214
215
elseif prop == ' border-width'
215
- let values = border_width_values
216
+ let values = border_width_values + length_values
216
217
elseif prop == ' bottom'
217
218
let values = [" auto" ]
218
219
elseif prop == ' box-decoration-break'
@@ -246,7 +247,7 @@ function! csscomplete#CompleteCSS(findstart, base)
246
247
elseif prop == ' column-rule-style'
247
248
let values = border_style_values
248
249
elseif prop == ' column-rule-width'
249
- let values = border_width_values
250
+ let values = border_width_values + length_values
250
251
elseif prop == ' column-rule'
251
252
let vals = matchstr (line , ' .*:\s*\zs.*' )
252
253
if vals = ~ ' ^\%([a-zA-Z0-9.]\+\)\?$'
@@ -261,7 +262,7 @@ function! csscomplete#CompleteCSS(findstart, base)
261
262
elseif prop == ' column-span'
262
263
let values = [" none" , " all" ]
263
264
elseif prop == ' column-width'
264
- let values = [" auto" ]
265
+ let values = [" auto" ] + length_values
265
266
elseif prop == ' content'
266
267
let values = [" normal" , " attr(" , " open-quote" , " close-quote" , " no-open-quote" , " no-close-quote" ]
267
268
elseif prop = ~ ' ^counter-\%(increment\|reset\)$'
@@ -339,7 +340,7 @@ function! csscomplete#CompleteCSS(findstart, base)
339
340
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" ]
340
341
let postfix = " "
341
342
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
343
344
elseif prop = ~ ' ^\%(left\|rigth\)$'
344
345
let values = [" auto" ]
345
346
elseif prop == ' image-rendering'
@@ -369,19 +370,19 @@ function! csscomplete#CompleteCSS(findstart, base)
369
370
elseif prop == ' list-style'
370
371
let values = list_style_type_values + [" inside" , " outside" ] + [" url(" , " none" ]
371
372
elseif prop == ' margin'
372
- let values = [" auto" ]
373
+ let values = [" auto" ] + length_values
373
374
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
375
376
elseif prop == ' marks'
376
377
let values = [" crop" , " cross" , " none" ]
377
378
elseif prop == ' mask'
378
379
let values = [" url(" ]
379
380
elseif prop == ' mask-type'
380
381
let values = [" luminance" , " alpha" ]
381
382
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
383
384
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
385
386
elseif prop == ' \%(max\|min\)-zoom'
386
387
let values = [" auto" ]
387
388
elseif prop == ' mix-blend-mode'
@@ -401,7 +402,7 @@ function! csscomplete#CompleteCSS(findstart, base)
401
402
elseif prop == ' outline-style'
402
403
let values = [" none" , " hidden" , " dotted" , " dashed" , " solid" , " double" , " groove" , " ridge" , " inset" , " outset" ]
403
404
elseif prop == ' outline-width'
404
- let values = [" thin" , " thick" , " medium" ]
405
+ let values = [" thin" , " thick" , " medium" ] + length_values
405
406
elseif prop == ' outline'
406
407
let vals = matchstr (line , ' .*:\s*\zs.*' )
407
408
if vals = ~ ' ^\%([a-zA-Z0-9,()#]\+\)\?$'
@@ -422,9 +423,9 @@ function! csscomplete#CompleteCSS(findstart, base)
422
423
elseif prop == ' pad'
423
424
let values = []
424
425
elseif prop == ' padding'
425
- let values = []
426
+ let values = [] + length_values
426
427
elseif prop = ~ ' ^padding-\%(top\|right\|bottom\|left\|inline-start\|inline-end\|block-start\|block-end\)$'
427
- let values = []
428
+ let values = [] + length_values
428
429
elseif prop = ~ ' ^page-break-\%(after\|before\)$'
429
430
let values = [" auto" , " always" , " avoid" , " left" , " right" , " recto" , " verso" ]
430
431
elseif prop == ' page-break-inside'
0 commit comments