Add @viewport (inc -o-/-ms-) to syntax highlighter

Changes:
* support @viewport at-rules
* add min/max/user-zoom to property list
* add portrait and landscape to property value list

Currently I’m just using the property list for valid descriptors within the viewport at-rule, as that is what the file is also doing for font-face at-rule. Ideally they'd be split out to only accept the valid descriptors in the future.
This commit is contained in:
David Storey committed 2015-12-16 01:30:12 -08:00
1 parent ba296d55c7
commit ddc8a92b6d
1 file changed
+30 -2
+30 -2
View File
@@ -232,6 +232,34 @@
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*((@)(-(o|ms)-)?viewport)\s*(?=\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.at-rule.viewport.css</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.keyword.css</string>
</dict>
</dict>
<key>end</key>
<string>(?!\G)</string>
<key>name</key>
<string>meta.at-rule.viewport.css</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#rule-list</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?=\{)</string>
@@ -504,7 +532,7 @@
<array>
<dict>
<key>match</key>
<string>\b(absolute|add|all(-scroll)?|allow-end|alpha|alphabetic|alternate(-reverse)?|always|any|armenian|auto|avoid(-(column|flex|line|page|region))?|backwards|balance(-all)?|bar|baseline|below|bengali|bevel|bidi-override|block(-(end|start))?|bold|bolder|border-box|both|bottom|box-decoration|break-(all|word)|cambodian|capitalize|center|central|char|circle|cjk-(decimal|earthly-branch|heavenly-stem|ideographic)|clear|clip|clone|coarse|col-resize|collapse|color(-(burn|dodge))?|column(-reverse)?|contain|content(-box)?|contents|cover|create|crisp-edges|currentcolor|darken|densedashed|decimal-leading-zero|decimal|default|dense|devanagari|difference|digits|disabled|disc|disclosure-(closed|open)|display|distribute-all-lines|distribute(-(letter|space))?|dot|dotted|double(-circle)?|e-resize|each-line|ease(-(in(-out)?|out))?|economy|edges|ellipsis|embed|end|ethiopic-numeric|evenodd|exact|exclude|exclusion|fade|fill(-(available|box))?|filled|first(-baseline)?|fit-content|fixed|flex(-(end|start))?|flow(-root)?|force-end|forwards|fragments|from-image|full-width|geometricPrecision|georgian|grid|groove|gujarati|gurmukhi|hand|hanging|hard-light|hebrew|help|hidden|hiragana(-iroha)?|horizontal(-tb)?|hue|ideograph-(alpha|numeric|parenthesis|space)|ideographic|inactive|infinite|inherit|initial|ink|inline(-(block|end|flex|grid|list-item|start|table))?|inset|inside|inter-(character|ideograph|word)|intersect|invalid|invert|isolate(-override)?|italic|japanese-(formal|informal)|justify(-all)?|katakana(-iroha)?|keep-all|khmer|korean-(hangul-formal|hanja-(formal|informal))|lao|last(-baseline)?|leading-spaces|left|legacy|lighter|line(-(edge|through))?|list-(container|item)|local|logical|loose|lower-(alpha|armenian|greek|latin|roman)|lowercase|lr-tb|ltr|luminance|luminosity|malayalam|mandatory|manual|margin-box|marker|match-parent|mathematical|max-content|maximum|medium|middle|minimum|mixed|mongolian|move|multiply|myanmar|n-resize|ne-resize|newspaper|no-(clip|close-quote|composite|compress|drop|open-quote|repeat)|non-blocking|nw-resize|none|nonzero|normal|notch|not-allowed|nowrap|numbers|numeric|objects|oblique|open(-quote)?|oriya|optimize(Legibility|Quality|Speed)|outset|outside(-shape)?|overlay|overline|padding-box|page|paginate|paint|paused|persian|physical|pixelated|plaintext|pointer|pre(-(line|wrap(-auto)?))?|preserve(-(auto|breaks|spaces|trim))?|progress|proximity|punctuation|region|relative|repeat(-(x|y))?|reverse|revert|ridge|right|rotate|row(-reverse)?|row-resize|rtl|ruby(-((base|text)(-container)?))?|run-in|running|s-resize|saturation|scale-down|scroll(-position)?|se-resize|self-(end|start)|separate|sesame|show|sideways(-(left|lr|right|rl))?|simp-chinese-(formal|informal)|slice|small-caps|smooth|snap(-(block|inline))?|soft-light|solid|space(-(adjacent|around|between|end|evenly|start))?|spaces|spread|square|start|static|step-(end|start)|sticky|stretch|strict|stroke-box|sub|subgrid|subtract|super|sw-resize|symbolic|table(-(caption|cell|(column|row)(-group)?|footer-group|header-group))?|tamil|tb-rl|telugu|text(-(bottom|top))?|thai|thick|thin|tibetan|top|transparent|triangle|trim-(adjacent|end|inner|start)|true|under|underline|underscore|unsafe|unset|upper-(alpha|latin|roman)|uppercase|upright|use-glyph-orientation|vertical(-(ideographic|lr|rl|text))?|view-box|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|wrap|zero|smaller|larger|((xx?-)?(small|large))|painted|fill|stroke)\b</string>
<string>\b(absolute|add|all(-scroll)?|allow-end|alpha|alphabetic|alternate(-reverse)?|always|any|armenian|auto|avoid(-(column|flex|line|page|region))?|backwards|balance(-all)?|bar|baseline|below|bengali|bevel|bidi-override|block(-(end|start))?|bold|bolder|border-box|both|bottom|box-decoration|break-(all|word)|cambodian|capitalize|center|central|char|circle|cjk-(decimal|earthly-branch|heavenly-stem|ideographic)|clear|clip|clone|coarse|col-resize|collapse|color(-(burn|dodge))?|column(-reverse)?|contain|content(-box)?|contents|cover|create|crisp-edges|currentcolor|darken|densedashed|decimal-leading-zero|decimal|default|dense|devanagari|difference|digits|disabled|disc|disclosure-(closed|open)|display|distribute-all-lines|distribute(-(letter|space))?|dot|dotted|double(-circle)?|e-resize|each-line|ease(-(in(-out)?|out))?|economy|edges|ellipsis|embed|end|ethiopic-numeric|evenodd|exact|exclude|exclusion|fade|fill(-(available|box))?|filled|first(-baseline)?|fit-content|fixed|flex(-(end|start))?|flow(-root)?|force-end|forwards|fragments|from-image|full-width|geometricPrecision|georgian|grid|groove|gujarati|gurmukhi|hand|hanging|hard-light|hebrew|help|hidden|hiragana(-iroha)?|horizontal(-tb)?|hue|ideograph-(alpha|numeric|parenthesis|space)|ideographic|inactive|infinite|inherit|initial|ink|inline(-(block|end|flex|grid|list-item|start|table))?|inset|inside|inter-(character|ideograph|word)|intersect|invalid|invert|isolate(-override)?|italic|japanese-(formal|informal)|justify(-all)?|katakana(-iroha)?|keep-all|khmer|korean-(hangul-formal|hanja-(formal|informal))|landscape|lao|last(-baseline)?|leading-spaces|left|legacy|lighter|line(-(edge|through))?|list-(container|item)|local|logical|loose|lower-(alpha|armenian|greek|latin|roman)|lowercase|lr-tb|ltr|luminance|luminosity|malayalam|mandatory|manual|margin-box|marker|match-parent|mathematical|max-content|maximum|medium|middle|minimum|mixed|mongolian|move|multiply|myanmar|n-resize|ne-resize|newspaper|no-(clip|close-quote|composite|compress|drop|open-quote|repeat)|non-blocking|nw-resize|none|nonzero|normal|notch|not-allowed|nowrap|numbers|numeric|objects|oblique|open(-quote)?|oriya|optimize(Legibility|Quality|Speed)|outset|outside(-shape)?|overlay|overline|padding-box|page|paginate|paint|paused|persian|physical|pixelated|plaintext|pointer|portrait|pre(-(line|wrap(-auto)?))?|preserve(-(auto|breaks|spaces|trim))?|progress|proximity|punctuation|region|relative|repeat(-(x|y))?|reverse|revert|ridge|right|rotate|row(-reverse)?|row-resize|rtl|ruby(-((base|text)(-container)?))?|run-in|running|s-resize|saturation|scale-down|scroll(-position)?|se-resize|self-(end|start)|separate|sesame|show|sideways(-(left|lr|right|rl))?|simp-chinese-(formal|informal)|slice|small-caps|smooth|snap(-(block|inline))?|soft-light|solid|space(-(adjacent|around|between|end|evenly|start))?|spaces|spread|square|start|static|step-(end|start)|sticky|stretch|strict|stroke-box|sub|subgrid|subtract|super|sw-resize|symbolic|table(-(caption|cell|(column|row)(-group)?|footer-group|header-group))?|tamil|tb-rl|telugu|text(-(bottom|top))?|thai|thick|thin|tibetan|top|transparent|triangle|trim-(adjacent|end|inner|start)|true|under|underline|underscore|unsafe|unset|upper-(alpha|latin|roman)|uppercase|upright|use-glyph-orientation|vertical(-(ideographic|lr|rl|text))?|view-box|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|wrap|zero|smaller|larger|((xx?-)?(small|large))|painted|fill|stroke)\b</string>
<key>name</key>
<string>support.constant.property-value.css</string>
</dict>
@@ -657,7 +685,7 @@
<array>
<dict>
<key>match</key>
<string>\b(-webkit-[A-Za-z]+|-moz-[A-Za-z]+|-o-[A-Za-z]+|-ms-[A-Za-z]+|-khtml-[A-Za-z]+|zoom|z-index|y|x|writing-mode|wrap|wrap-through|wrap-inside|wrap-flow|wrap-before|wrap-after|word-wrap|word-spacing|word-break|word|will-change|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|vector-effect|variant|user-select|up|unicode-bidi|unicode|trim|translate|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform-box|transform|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-underline-position|text-transform|text-spacing|text-space-trim|text-space-collapse|text-size-adjust|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-orientation|text-justify|text-indent|text-height|text-emphasis-style|text-emphasis-skip|text-emphasis-position|text-emphasis-color|text-emphasis|text-decoration-style|text-decoration-stroke|text-decoration-skip|text-decoration-line|text-decoration-fill|text-decoration-color|text-decoration|text-combine-upright|text-anchor|text-align-last|text-align-all|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|string-set|stretch|stress|stop-opacity|stop-color|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak-as|speak|span|spacing|space-collapse|space|solid-opacity|solid-color|sizing|size-adjust|size|shape-rendering|shape-padding|shape-outside|shape-margin|shape-inside|shape-image-threshold|shadow|scroll-snap-type|scroll-snap-points-y|scroll-snap-points-x|scroll-snap-destination|scroll-snap-coordinate|scroll-behavior|scale|ry|rx|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-merge|ruby-align|ruby|rows|rotation-point|rotation|rotate|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resolution|resize|reset|replace|repeat|rendering-intent|region-fragment|rate|radius|r|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|perspective-origin|perspective|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-inline-start|padding-inline-end|padding-bottom|padding-block-start|padding-block-end|padding|pack|overhang|overflow-y|overflow-x|overflow-wrap|overflow-style|overflow-inline|overflow-block|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset-start|offset-inline-start|offset-inline-end|offset-end|offset-block-start|offset-block-end|offset-before|offset-after|offset|object-position|object-fit|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|motion-rotation|motion-path|motion-offset|motion|model|mix-blend-mode|min-width|min-inline-size|min-height|min-block-size|min|max-width|max-lines|max-inline-size|max-height|max-block-size|max|mask-type|mask-size|mask-repeat|mask-position|mask-origin|mask-mode|mask-image|mask-composite|mask-clip|mask-border-width|mask-border-source|mask-border-slice|mask-border-repeat|mask-border-outset|mask-border-mode|mask-border|mask|marquee-style|marquee-speed|marquee-play-count|marquee-loop|marquee-direction|marquee|marks|marker-start|marker-side|marker-mid|marker-end|marker|margin-top|margin-right|margin-left|margin-inline-start|margin-inline-end|margin-bottom|margin-block-start|margin-block-end|margin|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-snap|line-height|line-grid|line-break|line|lighting-color|level|letter-spacing|length|left-width|left-style|left-color|left|label|kerning|justify-self|justify-items|justify-content|justify|iteration-count|isolation|inline-size|inline-box-align|initial-value|initial-size|initial-letter-wrap|initial-letter-align|initial-letter|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-limit-zone|hyphenate-limit-lines|hyphenate-limit-last|hyphenate-limit-chars|hyphenate-character|hyphenate|height|header|hanging-punctuation|grid-template-rows|grid-template-columns|grid-template-areas|grid-template|grid-row-start|grid-row-gap|grid-row-end|grid-row|grid-rows|grid-gap|grid-column-start|grid-column-gap|grid-column-end|grid-column|grLine truncated
<string>\b(-webkit-[A-Za-z]+|-moz-[A-Za-z]+|-o-[A-Za-z]+|-ms-[A-Za-z]+|-khtml-[A-Za-z]+|zoom|z-index|y|x|writing-mode|wrap|wrap-through|wrap-inside|wrap-flow|wrap-before|wrap-after|word-wrap|word-spacing|word-break|word|will-change|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|vector-effect|variant|user-zoom|user-select|up|unicode-bidi|unicode|trim|translate|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform-box|transform|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-underline-position|text-transform|text-spacing|text-space-trim|text-space-collapse|text-size-adjust|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-orientation|text-justify|text-indent|text-height|text-emphasis-style|text-emphasis-skip|text-emphasis-position|text-emphasis-color|text-emphasis|text-decoration-style|text-decoration-stroke|text-decoration-skip|text-decoration-line|text-decoration-fill|text-decoration-color|text-decoration|text-combine-upright|text-anchor|text-align-last|text-align-all|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|string-set|stretch|stress|stop-opacity|stop-color|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak-as|speak|span|spacing|space-collapse|space|solid-opacity|solid-color|sizing|size-adjust|size|shape-rendering|shape-padding|shape-outside|shape-margin|shape-inside|shape-image-threshold|shadow|scroll-snap-type|scroll-snap-points-y|scroll-snap-points-x|scroll-snap-destination|scroll-snap-coordinate|scroll-behavior|scale|ry|rx|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-merge|ruby-align|ruby|rows|rotation-point|rotation|rotate|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resolution|resize|reset|replace|repeat|rendering-intent|region-fragment|rate|radius|r|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|perspective-origin|perspective|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-inline-start|padding-inline-end|padding-bottom|padding-block-start|padding-block-end|padding|pack|overhang|overflow-y|overflow-x|overflow-wrap|overflow-style|overflow-inline|overflow-block|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset-start|offset-inline-start|offset-inline-end|offset-end|offset-block-start|offset-block-end|offset-before|offset-after|offset|object-position|object-fit|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|motion-rotation|motion-path|motion-offset|motion|model|mix-blend-mode|min-zoom|min-width|min-inline-size|min-height|min-block-size|min|max-zoom|max-width|max-lines|max-inline-size|max-height|max-block-size|max|mask-type|mask-size|mask-repeat|mask-position|mask-origin|mask-mode|mask-image|mask-composite|mask-clip|mask-border-width|mask-border-source|mask-border-slice|mask-border-repeat|mask-border-outset|mask-border-mode|mask-border|mask|marquee-style|marquee-speed|marquee-play-count|marquee-loop|marquee-direction|marquee|marks|marker-start|marker-side|marker-mid|marker-end|marker|margin-top|margin-right|margin-left|margin-inline-start|margin-inline-end|margin-bottom|margin-block-start|margin-block-end|margin|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-snap|line-height|line-grid|line-break|line|lighting-color|level|letter-spacing|length|left-width|left-style|left-color|left|label|kerning|justify-self|justify-items|justify-content|justify|iteration-count|isolation|inline-size|inline-box-align|initial-value|initial-size|initial-letter-wrap|initial-letter-align|initial-letter|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-limit-zone|hyphenate-limit-lines|hyphenate-limit-last|hyphenate-limit-chars|hyphenate-character|hyphenate|height|header|hanging-punctuation|grid-template-rows|grid-template-columns|grid-template-areas|grid-template|grid-row-start|grid-row-gap|grid-row-end|grid-row|grid-rows|grid-gap|grid-column-start|grid-column-gap|grLine truncated
<key>name</key>
<string>support.type.property-name.css</string>
</dict>