Skip to content

Commit 20af79f

Browse files
committed
Add calc( inside of length_values for properties that support it
1 parent 6d84247 commit 20af79f

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

autoload/csscomplete.vim

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)