Revert stylus provider

This commit is contained in:
Adam Stankiewicz
2021-01-03 14:09:55 +01:00
parent 05b8bbc938
commit 09f31c433a
16 changed files with 548 additions and 1557 deletions

View File

@@ -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) - [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) - [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) - [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) - [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-indent](https://github.com/jasonshell/vim-svg-indent)
- [svg](https://github.com/vim-scripts/svg.vim) (SVG syntax highlighting for svg files) - [svg](https://github.com/vim-scripts/svg.vim) (SVG syntax highlighting for svg files)

View File

@@ -21,19 +21,20 @@ func! polyglot#init#init()
endfunc endfunc
func! polyglot#init#is_disabled(caller, name, path) func! polyglot#init#is_disabled(caller, name, path)
if g:polyglot_initialized if !g:polyglot_initialized
return has_key(g:polyglot_is_disabled, a:name) if a:path[0:7] == "autoload"
endif let g:polyglot_initialized = 1
if a:path[0:7] == "autoload"
let g:polyglot_initialized = 1
for p in globpath(&rtp, a:path, 0, 1) for p in globpath(&rtp, a:path, 0, 1)
if p != a:caller if p != a:caller
exe "source " . p exe "source " . p
return 1 return 1
endif endif
endfor endfor
endif
endif endif
return has_key(g:polyglot_is_disabled, a:name)
endfunc endfunc
let g:polyglot_is_disabled = {} let g:polyglot_is_disabled = {}

View File

@@ -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

View File

@@ -5,7 +5,7 @@ endif
" Vim Compiler File " Vim Compiler File
" Compiler: ocaml " Compiler: ocaml
" Maintainer: Markus Mottl <markus.mottl@gmail.com> " 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: " Last Change:
" 2020 Mar 28 - Improved error format (Thomas Leonard) " 2020 Mar 28 - Improved error format (Thomas Leonard)
" 2017 Nov 26 - Improved error format (Markus Mottl) " 2017 Nov 26 - Improved error format (Markus Mottl)

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types " Vim support file to detect file types
" "
" Maintainer: Bram Moolenaar <Bram@vim.org> " 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 " Listen very carefully, I will say this only once
if exists("did_load_filetypes") if exists("did_load_filetypes")

23
ftplugin/fstab.vim Normal file
View 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

View File

@@ -4,8 +4,8 @@ endif
" Vim filetype plugin " Vim filetype plugin
" Language: Stylus " Language: Stylus
" Maintainer: Ilia Loginov " Maintainer: Marc Harter
" Credits: Marc Harter, Tim Pope " Credits: Tim Pope
" Only do this when not done yet for this buffer " Only do this when not done yet for this buffer
if exists("b:did_ftplugin") if exists("b:did_ftplugin")
@@ -47,14 +47,14 @@ if exists("loaded_matchit")
let b:match_words = s:match_words let b:match_words = s:match_words
endif endif
setlocal comments= commentstring=//\ %s
setlocal suffixesadd=.styl setlocal suffixesadd=.styl
" Add '-' and '#' to the what makes up a keyword. " Add '-' and '#' to the what makes up a keyword.
" This means that 'e' and 'w' work properly now, for properties " This means that 'e' and 'w' work properly now, for properties
" and valid variable names. " and valid variable names.
setlocal iskeyword+=#,- setl iskeyword+=#,-
setlocal omnifunc=stylcomplete#CompleteStyl
let b:undo_ftplugin = "setl cms< com< " let b:undo_ftplugin = "setl cms< com< "
\ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin

View File

@@ -14,4 +14,4 @@ endif
let b:did_indent = 1 let b:did_indent = 1
" dune format-dune-file uses 1 space to indent " dune format-dune-file uses 1 space to indent
set softtabstop=1 shiftwidth=1 expandtab setlocal softtabstop=1 shiftwidth=1 expandtab

View File

@@ -4,21 +4,21 @@ endif
" Vim indent file " Vim indent file
" Language: Stylus " Language: Stylus
" Maintainer: Ilia Loginov " Maintainer: Marc Harter
" Last Change: 2018 Jan 19 " Last Change: 2010 May 21
" Based On: sass.vim from Tim Pope " Based On: sass.vim from Tim Pope
"
if exists("b:did_indent") if exists("b:did_indent")
finish finish
endif endif
unlet! b:did_indent
let b:did_indent = 1 let b:did_indent = 1
setlocal indentexpr=GetStylusIndent() setlocal indentexpr=GetStylusIndent()
setlocal autoindent nolisp nosmartindent setlocal indentkeys=o,O,*<Return>,},],0),!^F
setlocal indentkeys=o,O,*<Return>,0),!^F
setlocal formatoptions+=r setlocal formatoptions+=r
if exists('*GetStylusIndent') if exists("*GetStylusIndent") " only define once
finish finish
endif endif
@@ -43,7 +43,45 @@ function s:prevnonblanknoncomment(lnum)
return lnum return lnum
endfunction 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) let line = getline(v:lnum)
if line =~ '^\s*\*' if line =~ '^\s*\*'
return cindent(v:lnum) return cindent(v:lnum)
@@ -54,41 +92,42 @@ function GetStylusIndent()
return 0 return 0
endif endif
let lnum = prevnonblank(v:lnum-1) let lnum = prevnonblank(v:lnum-1)
if lnum == 0 if lnum == 0
return 0 return 0
endif endif
let pline = getline(pnum) let pline = getline(pnum)
" Get last line strip ending whitespace if pline =~ '[}{]'
let line = substitute(getline(lnum),'[\s()]\+$','','') return indent(pnum) + s:count_braces(pnum, 1) * &sw - s:count_braces(v:lnum, 0) * &sw
" Get current line, trimmed endif
let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','')
" Get last col in prev line let line = substitute(getline(lnum),'[\s()]\+$','','') " get last line strip ending whitespace
let lastcol = strlen(line) let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','') " get current line, trimmed
" Then remove preceeding whitespace let lastcol = strlen(line) " get last col in prev line
let line = substitute(line,'^\s\+','','') let line = substitute(line,'^\s\+','','') " then remove preceeding whitespace
" Get indent on prev line let indent = indent(lnum) " get indent on prev line
let indent = indent(lnum) let cindent = indent(v:lnum) " get indent on current line
" Get indent on current line let increase = indent + &sw " increase indent by the shift width
let cindent = indent(v:lnum)
" Increase indent by the shift width
let increase = indent + &sw
if indent == indent(lnum) if indent == indent(lnum)
let indent = cindent <= indent ? indent : increase let indent = cindent <= indent ? indent : increase
endif 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 return increase
elseif group =~ 'stylusAtRule\(Viewport\|Page\|Supports\|Document\|Font\|Keyframes\)\w*' elseif (group == 'stylusUserFunction') && (indent(lnum) == '0') " mixin definition
return increase
" Mixin or function definition
elseif group =~ 'stylusFunction\w*' && indent(lnum) == 0
return increase return increase
else else
return indent return indent
endif endif
endfunction endfunction
" vim:set sw=2;

View File

@@ -1564,7 +1564,7 @@ filetypes:
- sol - sol
--- ---
name: stylus name: stylus
remote: iloginow/vim-stylus remote: wavded/vim-stylus
filetypes: filetypes:
- name: stylus - name: stylus
linguist: Stylus linguist: Stylus

View File

@@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'typescript', 'syntax/basic/fu
endif endif
syntax keyword typescriptAsyncFuncKeyword async syntax keyword typescriptAsyncFuncKeyword async
\ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef \ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef,typescriptArrowFuncTypeParameter
\ skipwhite \ skipwhite
syntax keyword typescriptAsyncFuncKeyword await syntax keyword typescriptAsyncFuncKeyword await
@@ -28,18 +28,22 @@ syntax match typescriptArrowFuncDef contained /\K\k*\s*=>/
\ skipwhite skipempty \ skipwhite skipempty
syntax match typescriptArrowFuncDef contained /(\%(\_[^()]\+\|(\_[^()]*)\)*)\_s*=>/ syntax match typescriptArrowFuncDef contained /(\%(\_[^()]\+\|(\_[^()]*)\)*)\_s*=>/
\ contains=typescriptArrowFuncArg,typescriptArrowFunc \ contains=typescriptArrowFuncArg,typescriptArrowFunc,@typescriptCallSignature
\ nextgroup=@typescriptExpression,typescriptBlock \ nextgroup=@typescriptExpression,typescriptBlock
\ skipwhite skipempty \ skipwhite skipempty
syntax region typescriptArrowFuncDef contained start=/(\%(\_[^()]\+\|(\_[^()]*)\)*):/ end=/=>/ syntax region typescriptArrowFuncDef contained start=/(\%(\_[^()]\+\|(\_[^()]*)\)*):/ matchgroup=typescriptArrowFunc end=/=>/
\ contains=typescriptArrowFuncArg,typescriptArrowFunc,typescriptTypeAnnotation \ contains=typescriptArrowFuncArg,typescriptTypeAnnotation,@typescriptCallSignature
\ nextgroup=@typescriptExpression,typescriptBlock \ nextgroup=@typescriptExpression,typescriptBlock
\ skipwhite skipempty keepend \ skipwhite skipempty keepend
syntax region typescriptArrowFuncTypeParameter start=/</ end=/>/
\ contains=@typescriptTypeParameterCluster
\ nextgroup=typescriptArrowFuncDef
\ contained skipwhite skipnl
syntax match typescriptArrowFunc /=>/ syntax match typescriptArrowFunc /=>/
syntax match typescriptArrowFuncArg contained /\K\k*/ 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 syntax region typescriptReturnAnnotation contained start=/:/ end=/{/me=e-1 contains=@typescriptType nextgroup=typescriptBlock

View File

@@ -6,7 +6,7 @@ endif
" Language: Diff (context or unified) " Language: Diff (context or unified)
" Maintainer: Bram Moolenaar <Bram@vim.org> " Maintainer: Bram Moolenaar <Bram@vim.org>
" Translations by Jakson Alves de Aquino. " 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 " Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
@@ -352,11 +352,16 @@ syn match diffLine "^\d\+\(,\d\+\)\=[cda]\d\+\>.*"
syn match diffFile "^diff\>.*" syn match diffFile "^diff\>.*"
syn match diffFile "^Index: .*" syn match diffFile "^Index: .*"
syn match diffFile "^==== .*" 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. if search('^@@ -\S\+ +\S\+ @@', 'nw', '', 100)
syn match diffOldFile "^+++ .*" " unified
syn match diffOldFile "^\*\*\* .*" syn match diffOldFile "^--- .*"
syn match diffNewFile "^--- .*" syn match diffNewFile "^+++ .*"
else
" context / old style
syn match diffOldFile "^\*\*\* .*"
syn match diffNewFile "^--- .*"
endif
" Used by git " Used by git
syn match diffIndexLine "^index \x\x\x\x.*" syn match diffIndexLine "^index \x\x\x\x.*"

View File

@@ -5,8 +5,8 @@ endif
" Vim syntax file " Vim syntax file
" Language: fstab file " Language: fstab file
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com> " Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim " URL: https://raw.github.com/rid9/vim-fstab/master/syntax/fstab.vim
" Last Change: 2020 Aug 06 " Last Change: 2020 Dec 30
" Version: 1.4 " Version: 1.4
" "
" Credits: " Credits:

View File

@@ -64,8 +64,7 @@ syntax keyword odinDefer defer
syntax region odinChar start=/\v'/ skip=/\v\\./ end=/\v'/ syntax region odinChar start=/\v'/ skip=/\v\\./ end=/\v'/
syntax region odinString start=/\v"/ skip=/\v\\./ end=/\v"/ syntax region odinString start=/\v"/ skip=/\v\\./ end=/\v"/
syntax match odinFunction "\v<\w*>(\s*::\s*)@=" syntax match odinFunction "\v<\w*>(\s*::\s*proc)@="
syntax match odinDynamicFunction "\v<\w*(\s*:\=\s*\(.*\))@="
syntax match odinTagNote "@\<\w\+\>" display syntax match odinTagNote "@\<\w\+\>" display
@@ -145,7 +144,6 @@ highlight link odinBitField Structure
highlight link odinBitSet Structure highlight link odinBitSet Structure
highlight link odinFunction Function highlight link odinFunction Function
highlight link odinDynamicFunction Function
highlight link odinMacro Macro highlight link odinMacro Macro
highlight link odinIf Conditional highlight link odinIf Conditional

View File

@@ -7,13 +7,16 @@ endif
" Filenames: *.sml *.sig " Filenames: *.sml *.sig
" Maintainers: Markus Mottl <markus.mottl@gmail.com> " Maintainers: Markus Mottl <markus.mottl@gmail.com>
" Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it> " Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it>
" URL: http://www.ocaml.info/vim/syntax/sml.vim " Last Change: 2019 Oct 01 - Only spell check strings & comments (Chuan Wei Foo)
" Last Change: 2006 Oct 23 - Fixed character highlighting bug (MM) " 2015 Aug 31 - Fixed opening of modules (Ramana Kumar)
" 2002 Jun 02 - Fixed small typo (MM) " 2006 Oct 23 - Fixed character highlighting bug (MM)
" 2001 Nov 20 - Fixed small highlighting bug with modules (MM)
" quit when a syntax file was already loaded " quit when a syntax file was already loaded
if exists("b:current_syntax") if exists("b:current_syntax")
" Disable spell checking of syntax.
syn spell notoplevel
finish finish
endif endif
@@ -56,7 +59,7 @@ syn region smlEncl transparent matchgroup=smlKeyword start="#\[" matchgroup=sm
" Comments " 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 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 syn region smlModSpec matchgroup=smlKeyword start="\<structure\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contained contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlModTRWith,smlMPRestr
" "open" " "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 ;-) " "structure" - somewhat complicated stuff ;-)
syn region smlModule matchgroup=smlKeyword start="\<\(structure\|functor\)\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlPreDef 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 smlCharacter +#"\\""\|#"."\|#"\\\d\d\d"+
syn match smlCharErr +#"\\\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 smlFunDef "=>"
syn match smlRefAssign ":=" syn match smlRefAssign ":="
@@ -153,9 +156,9 @@ syn match smlKeyChar ";"
syn match smlKeyChar "\*" syn match smlKeyChar "\*"
syn match smlKeyChar "=" syn match smlKeyChar "="
syn match smlNumber "\<-\=\d\+\>" syn match smlNumber "\<-\=\d\+\>"
syn match smlNumber "\<-\=0[x|X]\x\+\>" syn match smlNumber "\<-\=0[x|X]\x\+\>"
syn match smlReal "\<-\=\d\+\.\d*\([eE][-+]\=\d\+\)\=[fl]\=\>" syn match smlReal "\<-\=\d\+\.\d*\([eE][-+]\=\d\+\)\=[fl]\=\>"
" Synchronization " Synchronization
syn sync minlines=20 syn sync minlines=20
@@ -171,49 +174,49 @@ syn sync match smlSigSync groupthere smlSig "\<end\>"
" Define the default highlighting. " Define the default highlighting.
" Only when an item doesn't have highlighting yet " Only when an item doesn't have highlighting yet
hi def link smlBraceErr Error hi def link smlBraceErr Error
hi def link smlBrackErr Error hi def link smlBrackErr Error
hi def link smlParenErr Error hi def link smlParenErr Error
hi def link smlCommentErr Error hi def link smlCommentErr Error
hi def link smlEndErr Error hi def link smlEndErr Error
hi def link smlThenErr Error hi def link smlThenErr Error
hi def link smlCharErr Error hi def link smlCharErr Error
hi def link smlComment Comment hi def link smlComment Comment
hi def link smlModPath Include hi def link smlModPath Include
hi def link smlModule Include hi def link smlModule Include
hi def link smlModParam1 Include hi def link smlModParam1 Include
hi def link smlModType Include hi def link smlModType Include
hi def link smlMPRestr3 Include hi def link smlMPRestr3 Include
hi def link smlFullMod Include hi def link smlFullMod Include
hi def link smlModTypeRestr Include hi def link smlModTypeRestr Include
hi def link smlWith Include hi def link smlWith Include
hi def link smlMTDef Include hi def link smlMTDef Include
hi def link smlConstructor Constant hi def link smlConstructor Constant
hi def link smlModPreRHS Keyword hi def link smlModPreRHS Keyword
hi def link smlMPRestr2 Keyword hi def link smlMPRestr2 Keyword
hi def link smlKeyword Keyword hi def link smlKeyword Keyword
hi def link smlFunDef Keyword hi def link smlFunDef Keyword
hi def link smlRefAssign Keyword hi def link smlRefAssign Keyword
hi def link smlKeyChar Keyword hi def link smlKeyChar Keyword
hi def link smlAnyVar Keyword hi def link smlAnyVar Keyword
hi def link smlTopStop Keyword hi def link smlTopStop Keyword
hi def link smlOperator Keyword hi def link smlOperator Keyword
hi def link smlBoolean Boolean hi def link smlBoolean Boolean
hi def link smlCharacter Character hi def link smlCharacter Character
hi def link smlNumber Number hi def link smlNumber Number
hi def link smlReal Float hi def link smlReal Float
hi def link smlString String hi def link smlString String
hi def link smlType Type hi def link smlType Type
hi def link smlTodo Todo hi def link smlTodo Todo
hi def link smlEncl Keyword hi def link smlEncl Keyword
let b:current_syntax = "sml" let b:current_syntax = "sml"

File diff suppressed because it is too large Load Diff