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,9 +21,7 @@ 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)
endif
if a:path[0:7] == "autoload" if a:path[0:7] == "autoload"
let g:polyglot_initialized = 1 let g:polyglot_initialized = 1
@@ -34,6 +32,9 @@ func! polyglot#init#is_disabled(caller, name, path)
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)
@@ -61,34 +99,35 @@ function GetStylusIndent()
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 ":="

File diff suppressed because it is too large Load Diff