mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Revert stylus provider
This commit is contained in:
@@ -174,7 +174,7 @@ On top of all language packs from [vim repository](https://github.com/vim/vim/tr
|
||||
- [slime](https://github.com/slime-lang/vim-slime-syntax) (Syntax highlighting for slime files)
|
||||
- [smt2](https://github.com/bohlender/vim-smt2) (SMT syntax highlighting for smt2 and smt files)
|
||||
- [solidity](https://github.com/tomlion/vim-solidity) (Solidity syntax highlighting for sol files)
|
||||
- [stylus](https://github.com/iloginow/vim-stylus) (Stylus syntax highlighting for styl and stylus files)
|
||||
- [stylus](https://github.com/wavded/vim-stylus) (Stylus syntax highlighting for styl and stylus files)
|
||||
- [svelte](https://github.com/evanleck/vim-svelte/tree/main) (Svelte syntax highlighting for svelte files)
|
||||
- [svg-indent](https://github.com/jasonshell/vim-svg-indent)
|
||||
- [svg](https://github.com/vim-scripts/svg.vim) (SVG syntax highlighting for svg files)
|
||||
|
||||
@@ -21,9 +21,7 @@ func! polyglot#init#init()
|
||||
endfunc
|
||||
|
||||
func! polyglot#init#is_disabled(caller, name, path)
|
||||
if g:polyglot_initialized
|
||||
return has_key(g:polyglot_is_disabled, a:name)
|
||||
endif
|
||||
if !g:polyglot_initialized
|
||||
if a:path[0:7] == "autoload"
|
||||
let g:polyglot_initialized = 1
|
||||
|
||||
@@ -34,6 +32,9 @@ func! polyglot#init#is_disabled(caller, name, path)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
endif
|
||||
|
||||
return has_key(g:polyglot_is_disabled, a:name)
|
||||
endfunc
|
||||
|
||||
let g:polyglot_is_disabled = {}
|
||||
|
||||
@@ -1,578 +0,0 @@
|
||||
if polyglot#init#is_disabled(expand('<sfile>:p'), 'stylus', 'autoload/stylcomplete.vim')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Vim completion script
|
||||
" Language: Stylus
|
||||
" Author: Ilia Loginov <i.loginow@outlook.com>
|
||||
" Created: 2018 Jan 28
|
||||
|
||||
fun! stylcomplete#CompleteStyl(findstart, base)
|
||||
|
||||
if a:findstart
|
||||
let line = getline('.')
|
||||
let start = col('.') - 1
|
||||
while start > 0 && line[start - 1] !~ '\(\s\|\[\|(\|{\|:\)'
|
||||
let start -= 1
|
||||
endwhile
|
||||
let b:start = line[start]
|
||||
let b:before = line[start - 1]
|
||||
let b:line = line[0:col('.')]
|
||||
let b:first_char = matchstrpos(b:line, '^\s*\S')[2]
|
||||
let b:first_word_type = synIDattr(synID(line('.'), b:first_char, 1), 'name')
|
||||
" Check if there is more than one word on the current line
|
||||
let b:word_break = 0
|
||||
if b:line =~ '^.*\S\(\s\|\[\|(\|{\|:\)\S.*'
|
||||
let b:word_break = 1
|
||||
endif
|
||||
return start
|
||||
endif
|
||||
|
||||
" Complete properties
|
||||
if b:start =~ '\w' && b:word_break == 0
|
||||
let res = []
|
||||
for m in g:css_props
|
||||
if m =~ '^' . a:base
|
||||
call add(res, m)
|
||||
endif
|
||||
endfor
|
||||
return res
|
||||
|
||||
" Complete pseudo classes and elements
|
||||
elseif b:before == ':' && b:first_word_type =~ 'stylusSelector\w*'
|
||||
let values = ["active", "any", "any-link", "blank", "checked", "cue", "cue-region", "disabled", "enabled", "default", "dir(", "disabled", "drop", "drop(", "empty", "enabled", "first", "first-child", "first-of-type", "fullscreen", "future", "focus", "focus-within", "has(", "hover", "indeterminate", "in-range", "invalid", "lang(", "last-child", "last-of-type", "left", "link", "matches(", "not(", "nth-child(", "nth-column(", "nth-last-child(", "nth-last-column(", "nth-last-of-type(", "nth-of-type(", "only-child", "only-of-type", "optional", "out-of-range", "past", "paused", "placeholder-shown", "playing", "read-only", "read-write", "required", "right", "root", "scope", "target", "user-invalid", "valid", "visited", "first-line", "first-letter", "before", "after", "selection", "backdrop"]
|
||||
|
||||
let res = []
|
||||
for m in values
|
||||
if m =~ '^' . a:base
|
||||
call add(res, m)
|
||||
endif
|
||||
endfor
|
||||
return res
|
||||
|
||||
" Complete !important and !optional
|
||||
elseif b:start == '!' && b:word_break == 1 && b:first_word_type == 'stylusProperty'
|
||||
let values = ["important", "optional"]
|
||||
|
||||
let res = []
|
||||
for m in values
|
||||
if m =~ '^' . a:base
|
||||
call add(res, m)
|
||||
endif
|
||||
endfor
|
||||
return res
|
||||
|
||||
" Complete values
|
||||
elseif b:start =~ '\w' && b:word_break == 1 && b:first_word_type == 'stylusProperty'
|
||||
let prop = matchstr(b:line, '\(^\s\+\)\@<=\<\(\w\|-\)\+\>')
|
||||
let res = []
|
||||
|
||||
let wide_keywords = ["initial", "inherit", "unset"]
|
||||
let color_values = ["transparent", "rgb(", "rgba(", "hsl(", "hsla(", "#"] + g:css_colors
|
||||
let border_style_values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
|
||||
let border_width_values = ["thin", "thick", "medium"]
|
||||
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"]
|
||||
let timing_functions = ["cubic-bezier(", "steps(", "linear", "ease", "ease-in", "ease-in-out", "ease-out", "step-start", "step-end"]
|
||||
|
||||
if prop == 'all'
|
||||
|
||||
let values = []
|
||||
elseif prop == 'additive-symbols'
|
||||
let values = []
|
||||
elseif prop == 'align-content'
|
||||
let values = ["flex-start", "flex-end", "center", "space-between", "space-around", "stretch"]
|
||||
elseif prop == 'align-items'
|
||||
let values = ["flex-start", "flex-end", "center", "baseline", "stretch"]
|
||||
elseif prop == 'align-self'
|
||||
let values = ["auto", "flex-start", "flex-end", "center", "baseline", "stretch"]
|
||||
elseif prop == 'animation'
|
||||
let values = timing_functions + ["normal", "reverse", "alternate", "alternate-reverse"] + ["none", "forwards", "backwards", "both"] + ["running", "paused"]
|
||||
elseif prop == 'animation-delay'
|
||||
let values = []
|
||||
elseif prop == 'animation-direction'
|
||||
let values = ["normal", "reverse", "alternate", "alternate-reverse"]
|
||||
elseif prop == 'animation-duration'
|
||||
let values = []
|
||||
elseif prop == 'animation-fill-mode'
|
||||
let values = ["none", "forwards", "backwards", "both"]
|
||||
elseif prop == 'animation-iteration-count'
|
||||
let values = []
|
||||
elseif prop == 'animation-name'
|
||||
let values = []
|
||||
elseif prop == 'animation-play-state'
|
||||
let values = ["running", "paused"]
|
||||
elseif prop == 'animation-timing-function'
|
||||
let values = timing_functions
|
||||
elseif prop == 'appearance'
|
||||
let values = ["auto", "none"]
|
||||
elseif prop == 'background-attachment'
|
||||
let values = ["scroll", "fixed"]
|
||||
elseif prop == 'background-color'
|
||||
let values = color_values
|
||||
elseif prop == 'background-image'
|
||||
let values = ["url(", "none"]
|
||||
elseif prop == 'background-position'
|
||||
let vals = matchstr(b:line, '.*:\s*\zs.*')
|
||||
if vals =~ '^\%([a-zA-Z]\+\)\?$'
|
||||
let values = ["top", "center", "bottom"]
|
||||
elseif vals =~ '^[a-zA-Z]\+\s\+\%([a-zA-Z]\+\)\?$'
|
||||
let values = ["left", "center", "right"]
|
||||
else
|
||||
return []
|
||||
endif
|
||||
elseif prop == 'background-repeat'
|
||||
let values = ["repeat", "repeat-x", "repeat-y", "no-repeat"]
|
||||
elseif prop == 'background-size'
|
||||
let values = ["auto", "contain", "cover"]
|
||||
elseif prop == 'background'
|
||||
let values = ["scroll", "fixed"] + color_values + ["url(", "none"] + ["top", "center", "bottom", "left", "right"] + ["repeat", "repeat-x", "repeat-y", "no-repeat"] + ["auto", "contain", "cover"]
|
||||
elseif prop =~ '^border\%(-top\|-right\|-bottom\|-left\|-block-start\|-block-end\)\?$'
|
||||
let vals = matchstr(b:line, '.*:\s*\zs.*')
|
||||
if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
|
||||
let values = border_width_values
|
||||
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
|
||||
let values = border_style_values
|
||||
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
|
||||
let values = color_values
|
||||
else
|
||||
return []
|
||||
endif
|
||||
elseif prop =~ '^border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-color'
|
||||
let values = color_values
|
||||
elseif prop =~ '^border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-style'
|
||||
let values = border_style_values
|
||||
elseif prop =~ '^border-\%(top\|right\|bottom\|left\|block-start\|block-end\)-width'
|
||||
let values = border_width_values
|
||||
elseif prop == 'border-color'
|
||||
let values = color_values
|
||||
elseif prop == 'border-style'
|
||||
let values = border_style_values
|
||||
elseif prop == 'border-width'
|
||||
let values = border_width_values
|
||||
elseif prop == 'bottom'
|
||||
let values = ["auto"]
|
||||
elseif prop == 'box-decoration-break'
|
||||
let values = ["slice", "clone"]
|
||||
elseif prop == 'box-shadow'
|
||||
let values = ["inset"]
|
||||
elseif prop == 'box-sizing'
|
||||
let values = ["border-box", "content-box"]
|
||||
elseif prop =~ '^break-\%(before\|after\)'
|
||||
let values = ["auto", "always", "avoid", "left", "right", "page", "column", "region", "recto", "verso", "avoid-page", "avoid-column", "avoid-region"]
|
||||
elseif prop == 'break-inside'
|
||||
let values = ["auto", "avoid", "avoid-page", "avoid-column", "avoid-region"]
|
||||
elseif prop == 'caption-side'
|
||||
let values = ["top", "bottom"]
|
||||
elseif prop == 'clear'
|
||||
let values = ["none", "left", "right", "both"]
|
||||
elseif prop == 'clip'
|
||||
let values = ["auto", "rect("]
|
||||
elseif prop == 'clip-path'
|
||||
let values = ["fill-box", "stroke-box", "view-box", "none"]
|
||||
elseif prop == 'color'
|
||||
let values = color_values
|
||||
elseif prop == 'columns'
|
||||
let values = []
|
||||
elseif prop == 'column-count'
|
||||
let values = ['auto']
|
||||
elseif prop == 'column-fill'
|
||||
let values = ['auto', 'balance']
|
||||
elseif prop == 'column-rule-color'
|
||||
let values = color_values
|
||||
elseif prop == 'column-rule-style'
|
||||
let values = border_style_values
|
||||
elseif prop == 'column-rule-width'
|
||||
let values = border_width_values
|
||||
elseif prop == 'column-rule'
|
||||
let vals = matchstr(b:line, '.*:\s*\zs.*')
|
||||
if vals =~ '^\%([a-zA-Z0-9.]\+\)\?$'
|
||||
let values = border_width_values
|
||||
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+\%([a-zA-Z]\+\)\?$'
|
||||
let values = border_style_values
|
||||
elseif vals =~ '^[a-zA-Z0-9.]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
|
||||
let values = color_values
|
||||
else
|
||||
return []
|
||||
endif
|
||||
elseif prop == 'column-span'
|
||||
let values = ["none", "all"]
|
||||
elseif prop == 'column-width'
|
||||
let values = ["auto"]
|
||||
elseif prop == 'content'
|
||||
let values = ["normal", "attr(", "open-quote", "close-quote", "no-open-quote", "no-close-quote"]
|
||||
elseif prop =~ '^counter-\%(increment\|reset\)$'
|
||||
let values = ["none"]
|
||||
elseif prop =~ '^cue\%(-after\|-before\)\=$'
|
||||
let values = ["url("]
|
||||
elseif prop == 'cursor'
|
||||
let values = ["url(", "auto", "crosshair", "default", "pointer", "move", "e-resize", "ne-resize", "nw-resize", "n-resize", "se-resize", "sw-resize", "s-resize", "w-resize", "text", "wait", "help", "progress"]
|
||||
elseif prop == 'direction'
|
||||
let values = ["ltr", "rtl"]
|
||||
elseif prop == 'display'
|
||||
let values = ["inline", "block", "list-item", "run-in", "inline-block", "table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption", "none", "flex", "inline-flex", "grid", "inline-grid", "inline-table", "inline-list-item", "ruby", "ruby-base", "ruby-text", "ruby-base-container", "ruby-text-container", "contents"]
|
||||
elseif prop == 'elevation'
|
||||
let values = ["below", "level", "above", "higher", "lower"]
|
||||
elseif prop == 'empty-cells'
|
||||
let values = ["show", "hide"]
|
||||
elseif prop == 'fallback'
|
||||
let values = list_style_type_values
|
||||
elseif prop == 'filter'
|
||||
let values = ["blur(", "brightness(", "contrast(", "drop-shadow(", "grayscale(", "hue-rotate(", "invert(", "opacity(", "sepia(", "saturate("]
|
||||
elseif prop == 'flex-basis'
|
||||
let values = ["auto", "content"]
|
||||
elseif prop == 'flex-direction'
|
||||
let values = ["row", "row-reverse", "column", "column-reverse"]
|
||||
elseif prop == 'flex-flow'
|
||||
let values = ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"]
|
||||
elseif prop == 'flex-grow'
|
||||
let values = []
|
||||
elseif prop == 'flex-shrink'
|
||||
let values = []
|
||||
elseif prop == 'flex-wrap'
|
||||
let values = ["nowrap", "wrap", "wrap-reverse"]
|
||||
elseif prop == 'flex'
|
||||
let values = ["nowrap", "wrap", "wrap-reverse"] + ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"] + ["auto", "content"]
|
||||
elseif prop == 'float'
|
||||
let values = ["left", "right", "none"]
|
||||
elseif prop == 'font-display'
|
||||
let values = ["auto", "block", "swap", "fallback", "optional"]
|
||||
elseif prop == 'font-family'
|
||||
let values = ["sans-serif", "serif", "monospace", "cursive", "fantasy", "system-ui", "emoji", "math", "fangsong"]
|
||||
elseif prop == 'font-feature-settings'
|
||||
let values = ["normal", '"aalt"', '"abvf"', '"abvm"', '"abvs"', '"afrc"', '"akhn"', '"blwf"', '"blwm"', '"blws"', '"calt"', '"case"', '"ccmp"', '"cfar"', '"cjct"', '"clig"', '"cpct"', '"cpsp"', '"cswh"', '"curs"', '"cv', '"c2pc"', '"c2sc"', '"dist"', '"dlig"', '"dnom"', '"dtls"', '"expt"', '"falt"', '"fin2"', '"fin3"', '"fina"', '"flac"', '"frac"', '"fwid"', '"half"', '"haln"', '"halt"', '"hist"', '"hkna"', '"hlig"', '"hngl"', '"hojo"', '"hwid"', '"init"', '"isol"', '"ital"', '"jalt"', '"jp78"', '"jp83"', '"jp90"', '"jp04"', '"kern"', '"lfbd"', '"liga"', '"ljmo"', '"lnum"', '"locl"', '"ltra"', '"ltrm"', '"mark"', '"med2"', '"medi"', '"mgrk"', '"mkmk"', '"mset"', '"nalt"', '"nlck"', '"nukt"', '"numr"', '"onum"', '"opbd"', '"ordn"', '"ornm"', '"palt"', '"pcap"', '"pkna"', '"pnum"', '"pref"', '"pres"', '"pstf"', '"psts"', '"pwid"', '"qwid"', '"rand"', '"rclt"', '"rkrf"', '"rlig"', '"rphf"', '"rtbd"', '"rtla"', '"rtlm"', '"ruby"', '"salt"', '"sinf"', '"size"', '"smcp"', '"smpl"', '"ss01"', '"ss02"', '"ss03"', '"ss04"', '"ss05"', '"ss06"', '"ss07"', '"ss08"', '"ss09"', '"ss10"', '"ss11"', '"ss12"', '"ss13"', '"ss14"', '"ss15"', '"ss16"', '"ss17"', '"ss18"', '"ss19"', '"ss20"', '"ssty"', '"stch"', '"subs"', '"sups"', '"swsh"', '"titl"', '"tjmo"', '"tnam"', '"tnum"', '"trad"', '"twid"', '"unic"', '"valt"', '"vatu"', '"vert"', '"vhal"', '"vjmo"', '"vkna"', '"vkrn"', '"vpal"', '"vrt2"', '"zero"']
|
||||
elseif prop == 'font-kerning'
|
||||
let values = ["auto", "normal", "none"]
|
||||
elseif prop == 'font-language-override'
|
||||
let values = ["normal"]
|
||||
elseif prop == 'font-size'
|
||||
let values = ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "larger", "smaller"]
|
||||
elseif prop == 'font-size-adjust'
|
||||
let values = []
|
||||
elseif prop == 'font-stretch'
|
||||
let values = ["normal", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"]
|
||||
elseif prop == 'font-style'
|
||||
let values = ["normal", "italic", "oblique"]
|
||||
elseif prop == 'font-synthesis'
|
||||
let values = ["none", "weight", "style"]
|
||||
elseif prop == 'font-variant-alternates'
|
||||
let values = ["normal", "historical-forms", "stylistic(", "styleset(", "character-variant(", "swash(", "ornaments(", "annotation("]
|
||||
elseif prop == 'font-variant-caps'
|
||||
let values = ["normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"]
|
||||
elseif prop == 'font-variant-asian'
|
||||
let values = ["normal", "ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional"]
|
||||
elseif prop == 'font-variant-ligatures'
|
||||
let values = ["normal", "none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"]
|
||||
elseif prop == 'font-variant-numeric'
|
||||
let values = ["normal", "ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"]
|
||||
elseif prop == 'font-variant-position'
|
||||
let values = ["normal", "sub", "super"]
|
||||
elseif prop == 'font-variant'
|
||||
let values = ["normal", "historical-forms", "stylistic(", "styleset(", "character-variant(", "swash(", "ornaments(", "annotation("] + ["small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"] + ["ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional"] + ["none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"] + ["ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"] + ["sub", "super"]
|
||||
elseif prop == 'font-weight'
|
||||
let values = ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "700", "800", "900"]
|
||||
elseif prop == 'font'
|
||||
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"]
|
||||
elseif prop =~ '^\%(height\|width\)$'
|
||||
let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
|
||||
elseif prop =~ '^\%(left\|rigth\)$'
|
||||
let values = ["auto"]
|
||||
elseif prop == 'image-rendering'
|
||||
let values = ["auto", "crisp-edges", "pixelated"]
|
||||
elseif prop == 'image-orientation'
|
||||
let values = ["from-image", "flip"]
|
||||
elseif prop == 'ime-mode'
|
||||
let values = ["auto", "normal", "active", "inactive", "disabled"]
|
||||
elseif prop == 'inline-size'
|
||||
let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
|
||||
elseif prop == 'isolation'
|
||||
let values = ["auto", "isolate"]
|
||||
elseif prop == 'justify-content'
|
||||
let values = ["flex-start", "flex-end", "center", "space-between", "space-around"]
|
||||
elseif prop == 'letter-spacing'
|
||||
let values = ["normal"]
|
||||
elseif prop == 'line-break'
|
||||
let values = ["auto", "loose", "normal", "strict"]
|
||||
elseif prop == 'line-height'
|
||||
let values = ["normal"]
|
||||
elseif prop == 'list-style-image'
|
||||
let values = ["url(", "none"]
|
||||
elseif prop == 'list-style-position'
|
||||
let values = ["inside", "outside"]
|
||||
elseif prop == 'list-style-type'
|
||||
let values = list_style_type_values
|
||||
elseif prop == 'list-style'
|
||||
let values = list_style_type_values + ["inside", "outside"] + ["url(", "none"]
|
||||
elseif prop == 'margin'
|
||||
let values = ["auto"]
|
||||
elseif prop =~ '^margin-\%(right\|left\|top\|bottom\|block-start\|block-end\|inline-start\|inline-end\)$'
|
||||
let values = ["auto"]
|
||||
elseif prop == 'marks'
|
||||
let values = ["crop", "cross", "none"]
|
||||
elseif prop == 'mask'
|
||||
let values = ["url("]
|
||||
elseif prop == 'mask-type'
|
||||
let values = ["luminance", "alpha"]
|
||||
elseif prop == '\%(max\|min\)-\%(block\|inline\)-size'
|
||||
let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
|
||||
elseif prop == '\%(max\|min\)-\%(height\|width\)'
|
||||
let values = ["auto", "border-box", "content-box", "max-content", "min-content", "available", "fit-content"]
|
||||
elseif prop == '\%(max\|min\)-zoom'
|
||||
let values = ["auto"]
|
||||
elseif prop == 'mix-blend-mode'
|
||||
let values = ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"]
|
||||
elseif prop == 'object-fit'
|
||||
let values = ['fill', 'contain', 'cover', 'scale-down']
|
||||
elseif prop == 'opacity'
|
||||
let values = []
|
||||
elseif prop == 'orientation'
|
||||
let values = ["auto", "portrait", "landscape"]
|
||||
elseif prop == 'orphans'
|
||||
let values = []
|
||||
elseif prop == 'outline-offset'
|
||||
let values = []
|
||||
elseif prop == 'outline-color'
|
||||
let values = color_values
|
||||
elseif prop == 'outline-style'
|
||||
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
|
||||
elseif prop == 'outline-width'
|
||||
let values = ["thin", "thick", "medium"]
|
||||
elseif prop == 'outline'
|
||||
let vals = matchstr(b:line, '.*:\s*\zs.*')
|
||||
if vals =~ '^\%([a-zA-Z0-9,()#]\+\)\?$'
|
||||
let values = color_values
|
||||
elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+\%([a-zA-Z]\+\)\?$'
|
||||
let values = ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"]
|
||||
elseif vals =~ '^[a-zA-Z0-9,()#]\+\s\+[a-zA-Z]\+\s\+\%([a-zA-Z(]\+\)\?$'
|
||||
let values = ["thin", "thick", "medium"]
|
||||
else
|
||||
return []
|
||||
endif
|
||||
elseif prop == 'overflow-wrap'
|
||||
let values = ["normal", "break-word"]
|
||||
elseif prop =~ '^overflow\%(-x\|-y\)\='
|
||||
let values = ["visible", "hidden", "scroll", "auto"]
|
||||
elseif prop == 'pad'
|
||||
let values = []
|
||||
elseif prop == 'padding'
|
||||
let values = []
|
||||
elseif prop =~ '^padding-\%(top\|right\|bottom\|left\|inline-start\|inline-end\|block-start\|block-end\)$'
|
||||
let values = []
|
||||
elseif prop =~ '^page-break-\%(after\|before\)$'
|
||||
let values = ["auto", "always", "avoid", "left", "right", "recto", "verso"]
|
||||
elseif prop == 'page-break-inside'
|
||||
let values = ["auto", "avoid"]
|
||||
elseif prop =~ '^pause\%(-after\|-before\)\=$'
|
||||
let values = ["none", "x-weak", "weak", "medium", "strong", "x-strong"]
|
||||
elseif prop == 'perspective'
|
||||
let values = ["none"]
|
||||
elseif prop == 'perspective-origin'
|
||||
let values = ["top", "bottom", "left", "center", " right"]
|
||||
elseif prop == 'pointer-events'
|
||||
let values = ["auto", "none", "visiblePainted", "visibleFill", "visibleStroke", "visible", "painted", "fill", "stroke", "all"]
|
||||
elseif prop == 'position'
|
||||
let values = ["static", "relative", "absolute", "fixed", "sticky"]
|
||||
elseif prop == 'prefix'
|
||||
let values = []
|
||||
elseif prop == 'quotes'
|
||||
let values = ["none"]
|
||||
elseif prop == 'range'
|
||||
let values = ["auto", "infinite"]
|
||||
elseif prop == 'resize'
|
||||
let values = ["none", "both", "horizontal", "vertical"]
|
||||
elseif prop =~ '^rest\%(-after\|-before\)\=$'
|
||||
let values = ["none", "x-weak", "weak", "medium", "strong", "x-strong"]
|
||||
elseif prop == 'ruby-align'
|
||||
let values = ["start", "center", "space-between", "space-around"]
|
||||
elseif prop == 'ruby-merge'
|
||||
let values = ["separate", "collapse", "auto"]
|
||||
elseif prop == 'ruby-position'
|
||||
let values = ["over", "under", "inter-character"]
|
||||
elseif prop == 'scroll-behavior'
|
||||
let values = ["auto", "smooth"]
|
||||
elseif prop == 'scroll-snap-coordinate'
|
||||
let values = ["none"]
|
||||
elseif prop == 'scroll-snap-destination'
|
||||
return []
|
||||
elseif prop == 'scroll-snap-points-\%(x\|y\)$'
|
||||
let values = ["none", "repeat("]
|
||||
elseif prop == 'scroll-snap-type\%(-x\|-y\)\=$'
|
||||
let values = ["none", "mandatory", "proximity"]
|
||||
elseif prop == 'shape-image-threshold'
|
||||
let values = []
|
||||
elseif prop == 'shape-margin'
|
||||
let values = []
|
||||
elseif prop == 'shape-outside'
|
||||
let values = ["margin-box", "border-box", "padding-box", "content-box", 'inset(', 'circle(', 'ellipse(', 'polygon(', 'url(']
|
||||
elseif prop == 'speak'
|
||||
let values = ["auto", "none", "normal"]
|
||||
elseif prop == 'speak-as'
|
||||
let values = ["auto", "normal", "spell-out", "digits"]
|
||||
elseif prop == 'src'
|
||||
let values = ["url("]
|
||||
elseif prop == 'suffix'
|
||||
let values = []
|
||||
elseif prop == 'symbols'
|
||||
let values = []
|
||||
elseif prop == 'system'
|
||||
let vals = matchstr(b:line, '.*:\s*\zs.*')
|
||||
if vals =~ '^extends'
|
||||
let values = list_style_type_values
|
||||
else
|
||||
let values = ["cyclic", "numeric", "alphabetic", "symbolic", "additive", "fixed", "extends"]
|
||||
endif
|
||||
elseif prop == 'table-layout'
|
||||
let values = ["auto", "fixed"]
|
||||
elseif prop == 'tab-size'
|
||||
let values = []
|
||||
elseif prop == 'text-align'
|
||||
let values = ["start", "end", "left", "right", "center", "justify", "match-parent"]
|
||||
elseif prop == 'text-align-last'
|
||||
let values = ["auto", "start", "end", "left", "right", "center", "justify"]
|
||||
elseif prop == 'text-combine-upright'
|
||||
let values = ["none", "all", "digits"]
|
||||
elseif prop == 'text-decoration-line'
|
||||
let values = ["none", "underline", "overline", "line-through", "blink"]
|
||||
elseif prop == 'text-decoration-color'
|
||||
let values = color_values
|
||||
elseif prop == 'text-decoration-style'
|
||||
let values = ["solid", "double", "dotted", "dashed", "wavy"]
|
||||
elseif prop == 'text-decoration'
|
||||
let values = ["none", "underline", "overline", "line-through", "blink"] + ["solid", "double", "dotted", "dashed", "wavy"] + color_values
|
||||
elseif prop == 'text-emphasis-color'
|
||||
let values = color_values
|
||||
elseif prop == 'text-emphasis-position'
|
||||
let values = ["over", "under", "left", "right"]
|
||||
elseif prop == 'text-emphasis-style'
|
||||
let values = ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"]
|
||||
elseif prop == 'text-emphasis'
|
||||
let values = color_values + ["over", "under", "left", "right"] + ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"]
|
||||
elseif prop == 'text-indent'
|
||||
let values = ["hanging", "each-line"]
|
||||
elseif prop == 'text-orientation'
|
||||
let values = ["mixed", "upright", "sideways", "sideways-right", "use-glyph-orientation"]
|
||||
elseif prop == 'text-overflow'
|
||||
let values = ["clip", "ellipsis", "fade", "fade("]
|
||||
elseif prop == 'text-rendering'
|
||||
let values = ["auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"]
|
||||
elseif prop == 'text-shadow'
|
||||
let values = color_values
|
||||
elseif prop == 'text-transform'
|
||||
let values = ["capitalize", "uppercase", "lowercase", "full-width", "none"]
|
||||
elseif prop == 'text-underline-position'
|
||||
let values = ["auto", "under", "left", "right"]
|
||||
elseif prop == 'touch-action'
|
||||
let values = ["auto", "none", "pan-x", "pan-y", "manipulation", "pan-left", "pan-right", "pan-top", "pan-down"]
|
||||
elseif prop == 'transform'
|
||||
let values = ["matrix(", "translate(", "translateX(", "translateY(", "scale(", "scaleX(", "scaleY(", "rotate(", "skew(", "skewX(", "skewY(", "matrix3d(", "translate3d(", "translateZ(", "scale3d(", "scaleZ(", "rotate3d(", "rotateX(", "rotateY(", "rotateZ(", "perspective("]
|
||||
elseif prop == 'transform-box'
|
||||
let values = ["border-box", "fill-box", "view-box"]
|
||||
elseif prop == 'transform-origin'
|
||||
let values = ["left", "center", "right", "top", "bottom"]
|
||||
elseif prop == 'transform-style'
|
||||
let values = ["flat", "preserve-3d"]
|
||||
elseif prop == 'top'
|
||||
let values = ["auto"]
|
||||
elseif prop == 'transition-property'
|
||||
let values = ["all", "none"] + g:css_animatable_props
|
||||
elseif prop == 'transition-duration'
|
||||
let values = []
|
||||
elseif prop == 'transition-delay'
|
||||
let values = []
|
||||
elseif prop == 'transition-timing-function'
|
||||
let values = timing_functions
|
||||
elseif prop == 'transition'
|
||||
let values = ["all", "none"] + g:css_animatable_props + timing_functions
|
||||
elseif prop == 'unicode-bidi'
|
||||
let values = ["normal", "embed", "isolate", "bidi-override", "isolate-override", "plaintext"]
|
||||
elseif prop == 'unicode-range'
|
||||
let values = ["U+"]
|
||||
elseif prop == 'user-select'
|
||||
let values = ["auto", "text", "none", "contain", "all"]
|
||||
elseif prop == 'user-zoom'
|
||||
let values = ["zoom", "fixed"]
|
||||
elseif prop == 'vertical-align'
|
||||
let values = ["baseline", "sub", "super", "top", "text-top", "middle", "bottom", "text-bottom"]
|
||||
elseif prop == 'visibility'
|
||||
let values = ["visible", "hidden", "collapse"]
|
||||
elseif prop == 'voice-volume'
|
||||
let values = ["silent", "x-soft", "soft", "medium", "loud", "x-loud"]
|
||||
elseif prop == 'voice-balance'
|
||||
let values = ["left", "center", "right", "leftwards", "rightwards"]
|
||||
elseif prop == 'voice-family'
|
||||
let values = []
|
||||
elseif prop == 'voice-rate'
|
||||
let values = ["normal", "x-slow", "slow", "medium", "fast", "x-fast"]
|
||||
elseif prop == 'voice-pitch'
|
||||
let values = ["absolute", "x-low", "low", "medium", "high", "x-high"]
|
||||
elseif prop == 'voice-range'
|
||||
let values = ["absolute", "x-low", "low", "medium", "high", "x-high"]
|
||||
elseif prop == 'voice-stress'
|
||||
let values = ["normal", "strong", "moderate", "none", "reduced "]
|
||||
elseif prop == 'voice-duration'
|
||||
let values = ["auto"]
|
||||
elseif prop == 'white-space'
|
||||
let values = ["normal", "pre", "nowrap", "pre-wrap", "pre-line"]
|
||||
elseif prop == 'widows'
|
||||
let values = []
|
||||
elseif prop == 'will-change'
|
||||
let values = ["auto", "scroll-position", "contents"] + s:values
|
||||
elseif prop == 'word-break'
|
||||
let values = ["normal", "break-all", "keep-all"]
|
||||
elseif prop == 'word-spacing'
|
||||
let values = ["normal"]
|
||||
elseif prop == 'word-wrap'
|
||||
let values = ["normal", "break-word"]
|
||||
elseif prop == 'writing-mode'
|
||||
let values = ["horizontal-tb", "vertical-rl", "vertical-lr", "sideways-rl", "sideways-lr"]
|
||||
elseif prop == 'z-index'
|
||||
let values = ["auto"]
|
||||
elseif prop == 'zoom'
|
||||
let values = ["auto"]
|
||||
else
|
||||
let values = wide_keywords
|
||||
endif
|
||||
|
||||
let values = values + wide_keywords
|
||||
|
||||
for m in values
|
||||
if m =~ '^' . a:base
|
||||
call add(res, m)
|
||||
endif
|
||||
endfor
|
||||
return res
|
||||
|
||||
" Complete @-rules
|
||||
|
||||
elseif b:start =~ '\w' && b:word_break == 1 && b:first_word_type == 'stylusAtRuleMedia'
|
||||
|
||||
let values = ["min-width", "min-height", "max-width", "max-height"]
|
||||
|
||||
let res = []
|
||||
|
||||
for m in values
|
||||
if m =~ '^' . a:base
|
||||
call add(res, m . ': ')
|
||||
endif
|
||||
endfor
|
||||
|
||||
return res
|
||||
|
||||
elseif b:start == '@'
|
||||
|
||||
let values = ["@media", "@import", "@extend", "@block", "@charset", "@page", "@font-face", "@namespace", "@supports", "@keyframes", "@viewport", "@document", "@css"]
|
||||
|
||||
let res = []
|
||||
|
||||
for m in values
|
||||
if m =~ '^' . a:base
|
||||
call add(res, m .' ')
|
||||
endif
|
||||
endfor
|
||||
|
||||
return res
|
||||
|
||||
endif
|
||||
|
||||
return []
|
||||
|
||||
endfun
|
||||
@@ -5,7 +5,7 @@ endif
|
||||
" Vim Compiler File
|
||||
" Compiler: ocaml
|
||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||
" URL: http://www.ocaml.info/vim/compiler/ocaml.vim
|
||||
" URL: https://github.com/ocaml/vim-ocaml
|
||||
" Last Change:
|
||||
" 2020 Mar 28 - Improved error format (Thomas Leonard)
|
||||
" 2017 Nov 26 - Improved error format (Markus Mottl)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Dec 07
|
||||
" Last Change: 2020 Dec 24
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
|
||||
23
ftplugin/fstab.vim
Normal file
23
ftplugin/fstab.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
if polyglot#init#is_disabled(expand('<sfile>:p'), 'fstab', 'ftplugin/fstab.vim')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Vim ftplugin file
|
||||
" Language: fstab file
|
||||
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
|
||||
" URL: https://raw.github.com/rid9/vim-fstab/master/ftplugin/fstab.vim
|
||||
" Last Change: 2020 Dec 29
|
||||
" Version: 1.0
|
||||
"
|
||||
" Credits:
|
||||
" Subhaditya Nath <sn03.general@gmail.com>
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal commentstring=#%s
|
||||
let b:undo_ftplugin = "setlocal commentstring<"
|
||||
|
||||
" vim: ts=8 ft=vim
|
||||
@@ -4,8 +4,8 @@ endif
|
||||
|
||||
" Vim filetype plugin
|
||||
" Language: Stylus
|
||||
" Maintainer: Ilia Loginov
|
||||
" Credits: Marc Harter, Tim Pope
|
||||
" Maintainer: Marc Harter
|
||||
" Credits: Tim Pope
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -47,14 +47,14 @@ if exists("loaded_matchit")
|
||||
let b:match_words = s:match_words
|
||||
endif
|
||||
|
||||
setlocal comments= commentstring=//\ %s
|
||||
|
||||
setlocal suffixesadd=.styl
|
||||
|
||||
" Add '-' and '#' to the what makes up a keyword.
|
||||
" This means that 'e' and 'w' work properly now, for properties
|
||||
" and valid variable names.
|
||||
setlocal iskeyword+=#,-
|
||||
|
||||
setlocal omnifunc=stylcomplete#CompleteStyl
|
||||
setl iskeyword+=#,-
|
||||
|
||||
let b:undo_ftplugin = "setl cms< com< "
|
||||
\ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
|
||||
|
||||
@@ -14,4 +14,4 @@ endif
|
||||
let b:did_indent = 1
|
||||
|
||||
" dune format-dune-file uses 1 space to indent
|
||||
set softtabstop=1 shiftwidth=1 expandtab
|
||||
setlocal softtabstop=1 shiftwidth=1 expandtab
|
||||
|
||||
@@ -4,21 +4,21 @@ endif
|
||||
|
||||
" Vim indent file
|
||||
" Language: Stylus
|
||||
" Maintainer: Ilia Loginov
|
||||
" Last Change: 2018 Jan 19
|
||||
" Maintainer: Marc Harter
|
||||
" Last Change: 2010 May 21
|
||||
" Based On: sass.vim from Tim Pope
|
||||
|
||||
"
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
unlet! b:did_indent
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetStylusIndent()
|
||||
setlocal autoindent nolisp nosmartindent
|
||||
setlocal indentkeys=o,O,*<Return>,0),!^F
|
||||
setlocal indentkeys=o,O,*<Return>,},],0),!^F
|
||||
setlocal formatoptions+=r
|
||||
|
||||
if exists('*GetStylusIndent')
|
||||
if exists("*GetStylusIndent") " only define once
|
||||
finish
|
||||
endif
|
||||
|
||||
@@ -43,7 +43,45 @@ function s:prevnonblanknoncomment(lnum)
|
||||
return lnum
|
||||
endfunction
|
||||
|
||||
function GetStylusIndent()
|
||||
function s:count_braces(lnum, count_open)
|
||||
let n_open = 0
|
||||
let n_close = 0
|
||||
let line = getline(a:lnum)
|
||||
let pattern = '[{}]'
|
||||
let i = match(line, pattern)
|
||||
while i != -1
|
||||
if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'css\%(Comment\|StringQ\{1,2}\)'
|
||||
if line[i] == '{'
|
||||
let n_open += 1
|
||||
elseif line[i] == '}'
|
||||
if n_open > 0
|
||||
let n_open -= 1
|
||||
else
|
||||
let n_close += 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
let i = match(line, pattern, i + 1)
|
||||
endwhile
|
||||
return a:count_open ? n_open : n_close
|
||||
endfunction
|
||||
|
||||
" function CheckCSSIndent()
|
||||
" let line = getline(v:lnum)
|
||||
" if line =~ '^\s*\*'
|
||||
" return cindent(v:lnum)
|
||||
" endif
|
||||
"
|
||||
" let pnum = s:prevnonblanknoncomment(v:lnum - 1)
|
||||
" if pnum == 0
|
||||
" return 0
|
||||
" endif
|
||||
"
|
||||
" return indent(pnum) + s:count_braces(pnum, 1) * &sw
|
||||
" \ - s:count_braces(v:lnum, 0) * &sw
|
||||
" endfunction
|
||||
|
||||
function! GetStylusIndent()
|
||||
let line = getline(v:lnum)
|
||||
if line =~ '^\s*\*'
|
||||
return cindent(v:lnum)
|
||||
@@ -61,34 +99,35 @@ function GetStylusIndent()
|
||||
|
||||
let pline = getline(pnum)
|
||||
|
||||
" Get last line strip ending whitespace
|
||||
let line = substitute(getline(lnum),'[\s()]\+$','','')
|
||||
" Get current line, trimmed
|
||||
let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','')
|
||||
" Get last col in prev line
|
||||
let lastcol = strlen(line)
|
||||
" Then remove preceeding whitespace
|
||||
let line = substitute(line,'^\s\+','','')
|
||||
" Get indent on prev line
|
||||
let indent = indent(lnum)
|
||||
" Get indent on current line
|
||||
let cindent = indent(v:lnum)
|
||||
" Increase indent by the shift width
|
||||
let increase = indent + &sw
|
||||
if pline =~ '[}{]'
|
||||
return indent(pnum) + s:count_braces(pnum, 1) * &sw - s:count_braces(v:lnum, 0) * &sw
|
||||
endif
|
||||
|
||||
let line = substitute(getline(lnum),'[\s()]\+$','','') " get last line strip ending whitespace
|
||||
let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','') " get current line, trimmed
|
||||
let lastcol = strlen(line) " get last col in prev line
|
||||
let line = substitute(line,'^\s\+','','') " then remove preceeding whitespace
|
||||
let indent = indent(lnum) " get indent on prev line
|
||||
let cindent = indent(v:lnum) " get indent on current line
|
||||
let increase = indent + &sw " increase indent by the shift width
|
||||
if indent == indent(lnum)
|
||||
let indent = cindent <= indent ? indent : increase
|
||||
endif
|
||||
|
||||
let group = synIDattr(synID(lnum, cindent + 1, 1), 'name')
|
||||
let group = synIDattr(synID(lnum,lastcol,1),'name')
|
||||
|
||||
if group =~ 'stylusSelector\w*'
|
||||
" for debugging only
|
||||
echo group
|
||||
|
||||
" if group !~? 'css.*' && line =~? ')\s*$' " match user functions
|
||||
" return increase
|
||||
if group =~? '\v^%(cssTagName|cssClassName|cssIdentifier|cssSelectorOp|cssSelectorOp2|cssBraces|cssAttributeSelector|cssPseudo|stylusId|stylusClass)$'
|
||||
return increase
|
||||
elseif group =~ 'stylusAtRule\(Viewport\|Page\|Supports\|Document\|Font\|Keyframes\)\w*'
|
||||
return increase
|
||||
" Mixin or function definition
|
||||
elseif group =~ 'stylusFunction\w*' && indent(lnum) == 0
|
||||
elseif (group == 'stylusUserFunction') && (indent(lnum) == '0') " mixin definition
|
||||
return increase
|
||||
else
|
||||
return indent
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" vim:set sw=2;
|
||||
|
||||
@@ -1564,7 +1564,7 @@ filetypes:
|
||||
- sol
|
||||
---
|
||||
name: stylus
|
||||
remote: iloginow/vim-stylus
|
||||
remote: wavded/vim-stylus
|
||||
filetypes:
|
||||
- name: stylus
|
||||
linguist: Stylus
|
||||
|
||||
@@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'typescript', 'syntax/basic/fu
|
||||
endif
|
||||
|
||||
syntax keyword typescriptAsyncFuncKeyword async
|
||||
\ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef
|
||||
\ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef,typescriptArrowFuncTypeParameter
|
||||
\ skipwhite
|
||||
|
||||
syntax keyword typescriptAsyncFuncKeyword await
|
||||
@@ -28,18 +28,22 @@ syntax match typescriptArrowFuncDef contained /\K\k*\s*=>/
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax match typescriptArrowFuncDef contained /(\%(\_[^()]\+\|(\_[^()]*)\)*)\_s*=>/
|
||||
\ contains=typescriptArrowFuncArg,typescriptArrowFunc
|
||||
\ contains=typescriptArrowFuncArg,typescriptArrowFunc,@typescriptCallSignature
|
||||
\ nextgroup=@typescriptExpression,typescriptBlock
|
||||
\ skipwhite skipempty
|
||||
|
||||
syntax region typescriptArrowFuncDef contained start=/(\%(\_[^()]\+\|(\_[^()]*)\)*):/ end=/=>/
|
||||
\ contains=typescriptArrowFuncArg,typescriptArrowFunc,typescriptTypeAnnotation
|
||||
syntax region typescriptArrowFuncDef contained start=/(\%(\_[^()]\+\|(\_[^()]*)\)*):/ matchgroup=typescriptArrowFunc end=/=>/
|
||||
\ contains=typescriptArrowFuncArg,typescriptTypeAnnotation,@typescriptCallSignature
|
||||
\ nextgroup=@typescriptExpression,typescriptBlock
|
||||
\ skipwhite skipempty keepend
|
||||
|
||||
syntax region typescriptArrowFuncTypeParameter start=/</ end=/>/
|
||||
\ contains=@typescriptTypeParameterCluster
|
||||
\ nextgroup=typescriptArrowFuncDef
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax match typescriptArrowFunc /=>/
|
||||
syntax match typescriptArrowFuncArg contained /\K\k*/
|
||||
syntax region typescriptArrowFuncArg contained start=/<\|(/ end=/\ze=>/ contains=@typescriptCallSignature
|
||||
|
||||
syntax region typescriptReturnAnnotation contained start=/:/ end=/{/me=e-1 contains=@typescriptType nextgroup=typescriptBlock
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ endif
|
||||
" Language: Diff (context or unified)
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Translations by Jakson Alves de Aquino.
|
||||
" Last Change: 2020 Dec 07
|
||||
" Last Change: 2020 Dec 30
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -352,11 +352,16 @@ syn match diffLine "^\d\+\(,\d\+\)\=[cda]\d\+\>.*"
|
||||
syn match diffFile "^diff\>.*"
|
||||
syn match diffFile "^Index: .*"
|
||||
syn match diffFile "^==== .*"
|
||||
" Old style diff uses *** for old and --- for new.
|
||||
" Unified diff uses --- for old and +++ for new; names are wrong but it works.
|
||||
syn match diffOldFile "^+++ .*"
|
||||
syn match diffOldFile "^\*\*\* .*"
|
||||
syn match diffNewFile "^--- .*"
|
||||
|
||||
if search('^@@ -\S\+ +\S\+ @@', 'nw', '', 100)
|
||||
" unified
|
||||
syn match diffOldFile "^--- .*"
|
||||
syn match diffNewFile "^+++ .*"
|
||||
else
|
||||
" context / old style
|
||||
syn match diffOldFile "^\*\*\* .*"
|
||||
syn match diffNewFile "^--- .*"
|
||||
endif
|
||||
|
||||
" Used by git
|
||||
syn match diffIndexLine "^index \x\x\x\x.*"
|
||||
|
||||
@@ -5,8 +5,8 @@ endif
|
||||
" Vim syntax file
|
||||
" Language: fstab file
|
||||
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
|
||||
" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim
|
||||
" Last Change: 2020 Aug 06
|
||||
" URL: https://raw.github.com/rid9/vim-fstab/master/syntax/fstab.vim
|
||||
" Last Change: 2020 Dec 30
|
||||
" Version: 1.4
|
||||
"
|
||||
" Credits:
|
||||
|
||||
@@ -64,8 +64,7 @@ syntax keyword odinDefer defer
|
||||
syntax region odinChar start=/\v'/ skip=/\v\\./ end=/\v'/
|
||||
syntax region odinString start=/\v"/ skip=/\v\\./ end=/\v"/
|
||||
|
||||
syntax match odinFunction "\v<\w*>(\s*::\s*)@="
|
||||
syntax match odinDynamicFunction "\v<\w*(\s*:\=\s*\(.*\))@="
|
||||
syntax match odinFunction "\v<\w*>(\s*::\s*proc)@="
|
||||
|
||||
syntax match odinTagNote "@\<\w\+\>" display
|
||||
|
||||
@@ -145,7 +144,6 @@ highlight link odinBitField Structure
|
||||
highlight link odinBitSet Structure
|
||||
|
||||
highlight link odinFunction Function
|
||||
highlight link odinDynamicFunction Function
|
||||
|
||||
highlight link odinMacro Macro
|
||||
highlight link odinIf Conditional
|
||||
|
||||
@@ -7,13 +7,16 @@ endif
|
||||
" Filenames: *.sml *.sig
|
||||
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
|
||||
" Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it>
|
||||
" URL: http://www.ocaml.info/vim/syntax/sml.vim
|
||||
" Last Change: 2006 Oct 23 - Fixed character highlighting bug (MM)
|
||||
" 2002 Jun 02 - Fixed small typo (MM)
|
||||
" 2001 Nov 20 - Fixed small highlighting bug with modules (MM)
|
||||
" Last Change: 2019 Oct 01 - Only spell check strings & comments (Chuan Wei Foo)
|
||||
" 2015 Aug 31 - Fixed opening of modules (Ramana Kumar)
|
||||
" 2006 Oct 23 - Fixed character highlighting bug (MM)
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
|
||||
" Disable spell checking of syntax.
|
||||
syn spell notoplevel
|
||||
|
||||
finish
|
||||
endif
|
||||
|
||||
@@ -56,7 +59,7 @@ syn region smlEncl transparent matchgroup=smlKeyword start="#\[" matchgroup=sm
|
||||
|
||||
|
||||
" Comments
|
||||
syn region smlComment start="(\*" end="\*)" contains=smlComment,smlTodo
|
||||
syn region smlComment start="(\*" end="\*)" contains=smlComment,smlTodo,@Spell
|
||||
syn keyword smlTodo contained TODO FIXME XXX
|
||||
|
||||
|
||||
@@ -86,7 +89,7 @@ syn region smlSig matchgroup=smlModule start="\<sig\>" matchgroup=smlModule en
|
||||
syn region smlModSpec matchgroup=smlKeyword start="\<structure\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contained contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlModTRWith,smlMPRestr
|
||||
|
||||
" "open"
|
||||
syn region smlNone matchgroup=smlKeyword start="\<open\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*\>" contains=@smlAllErrs,smlComment
|
||||
syn region smlNone matchgroup=smlKeyword start="\<open\>" matchgroup=smlModule end="\<\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*\>" contains=@smlAllErrs,smlComment
|
||||
|
||||
" "structure" - somewhat complicated stuff ;-)
|
||||
syn region smlModule matchgroup=smlKeyword start="\<\(structure\|functor\)\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlPreDef
|
||||
@@ -140,7 +143,7 @@ syn match smlModPath "\u\(\w\|'\)*\."he=e-1
|
||||
|
||||
syn match smlCharacter +#"\\""\|#"."\|#"\\\d\d\d"+
|
||||
syn match smlCharErr +#"\\\d\d"\|#"\\\d"+
|
||||
syn region smlString start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn region smlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
|
||||
|
||||
syn match smlFunDef "=>"
|
||||
syn match smlRefAssign ":="
|
||||
|
||||
1238
syntax/stylus.vim
1238
syntax/stylus.vim
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user