summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES1
-rw-r--r--pygments/lexers/_css_builtins.py558
-rw-r--r--pygments/lexers/css.py162
-rw-r--r--scripts/get_css_properties.py33
4 files changed, 625 insertions, 129 deletions
diff --git a/CHANGES b/CHANGES
index 74ebfdea..ef071732 100644
--- a/CHANGES
+++ b/CHANGES
@@ -19,6 +19,7 @@ Version 2.12.0
* C family: Fix identifiers after ``case`` statements (#2084)
* Clojure: Highlight ratios (#2042)
* Csound: Update to 6.17 (#2064)
+ * CSS: Update the list of properties (#2113)
* Elpi:
- Fix catastropic backtracking (#2053, #2061)
diff --git a/pygments/lexers/_css_builtins.py b/pygments/lexers/_css_builtins.py
new file mode 100644
index 00000000..785a6f33
--- /dev/null
+++ b/pygments/lexers/_css_builtins.py
@@ -0,0 +1,558 @@
+"""
+ pygments.lexers._css_builtins
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ This file is autogenerated by scripts/get_css_properties.py
+
+ :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+_css_properties = (
+ '-webkit-line-clamp',
+ 'accent-color',
+ 'align-content',
+ 'align-items',
+ 'align-self',
+ 'alignment-baseline',
+ 'all',
+ 'animation',
+ 'animation-delay',
+ 'animation-direction',
+ 'animation-duration',
+ 'animation-fill-mode',
+ 'animation-iteration-count',
+ 'animation-name',
+ 'animation-play-state',
+ 'animation-timing-function',
+ 'appearance',
+ 'aspect-ratio',
+ 'azimuth',
+ 'backface-visibility',
+ 'background',
+ 'background-attachment',
+ 'background-blend-mode',
+ 'background-clip',
+ 'background-color',
+ 'background-image',
+ 'background-origin',
+ 'background-position',
+ 'background-repeat',
+ 'background-size',
+ 'baseline-shift',
+ 'baseline-source',
+ 'block-ellipsis',
+ 'block-size',
+ 'block-step',
+ 'block-step-align',
+ 'block-step-insert',
+ 'block-step-round',
+ 'block-step-size',
+ 'bookmark-label',
+ 'bookmark-level',
+ 'bookmark-state',
+ 'border',
+ 'border-block',
+ 'border-block-color',
+ 'border-block-end',
+ 'border-block-end-color',
+ 'border-block-end-style',
+ 'border-block-end-width',
+ 'border-block-start',
+ 'border-block-start-color',
+ 'border-block-start-style',
+ 'border-block-start-width',
+ 'border-block-style',
+ 'border-block-width',
+ 'border-bottom',
+ 'border-bottom-color',
+ 'border-bottom-left-radius',
+ 'border-bottom-right-radius',
+ 'border-bottom-style',
+ 'border-bottom-width',
+ 'border-boundary',
+ 'border-collapse',
+ 'border-color',
+ 'border-end-end-radius',
+ 'border-end-start-radius',
+ 'border-image',
+ 'border-image-outset',
+ 'border-image-repeat',
+ 'border-image-slice',
+ 'border-image-source',
+ 'border-image-width',
+ 'border-inline',
+ 'border-inline-color',
+ 'border-inline-end',
+ 'border-inline-end-color',
+ 'border-inline-end-style',
+ 'border-inline-end-width',
+ 'border-inline-start',
+ 'border-inline-start-color',
+ 'border-inline-start-style',
+ 'border-inline-start-width',
+ 'border-inline-style',
+ 'border-inline-width',
+ 'border-left',
+ 'border-left-color',
+ 'border-left-style',
+ 'border-left-width',
+ 'border-radius',
+ 'border-right',
+ 'border-right-color',
+ 'border-right-style',
+ 'border-right-width',
+ 'border-spacing',
+ 'border-start-end-radius',
+ 'border-start-start-radius',
+ 'border-style',
+ 'border-top',
+ 'border-top-color',
+ 'border-top-left-radius',
+ 'border-top-right-radius',
+ 'border-top-style',
+ 'border-top-width',
+ 'border-width',
+ 'bottom',
+ 'box-decoration-break',
+ 'box-shadow',
+ 'box-sizing',
+ 'box-snap',
+ 'break-after',
+ 'break-before',
+ 'break-inside',
+ 'caption-side',
+ 'caret',
+ 'caret-color',
+ 'caret-shape',
+ 'chains',
+ 'clear',
+ 'clip',
+ 'clip-path',
+ 'clip-rule',
+ 'color',
+ 'color-adjust',
+ 'color-interpolation-filters',
+ 'color-scheme',
+ 'column-count',
+ 'column-fill',
+ 'column-gap',
+ 'column-rule',
+ 'column-rule-color',
+ 'column-rule-style',
+ 'column-rule-width',
+ 'column-span',
+ 'column-width',
+ 'columns',
+ 'contain',
+ 'contain-intrinsic-block-size',
+ 'contain-intrinsic-height',
+ 'contain-intrinsic-inline-size',
+ 'contain-intrinsic-size',
+ 'contain-intrinsic-width',
+ 'container',
+ 'container-name',
+ 'container-type',
+ 'content',
+ 'content-visibility',
+ 'continue',
+ 'counter-increment',
+ 'counter-reset',
+ 'counter-set',
+ 'cue',
+ 'cue-after',
+ 'cue-before',
+ 'cursor',
+ 'direction',
+ 'display',
+ 'dominant-baseline',
+ 'elevation',
+ 'empty-cells',
+ 'fill',
+ 'fill-break',
+ 'fill-color',
+ 'fill-image',
+ 'fill-opacity',
+ 'fill-origin',
+ 'fill-position',
+ 'fill-repeat',
+ 'fill-rule',
+ 'fill-size',
+ 'filter',
+ 'flex',
+ 'flex-basis',
+ 'flex-direction',
+ 'flex-flow',
+ 'flex-grow',
+ 'flex-shrink',
+ 'flex-wrap',
+ 'float',
+ 'float-defer',
+ 'float-offset',
+ 'float-reference',
+ 'flood-color',
+ 'flood-opacity',
+ 'flow',
+ 'flow-from',
+ 'flow-into',
+ 'font',
+ 'font-family',
+ 'font-feature-settings',
+ 'font-kerning',
+ 'font-language-override',
+ 'font-optical-sizing',
+ 'font-palette',
+ 'font-size',
+ 'font-size-adjust',
+ 'font-stretch',
+ 'font-style',
+ 'font-synthesis',
+ 'font-synthesis-small-caps',
+ 'font-synthesis-style',
+ 'font-synthesis-weight',
+ 'font-variant',
+ 'font-variant-alternates',
+ 'font-variant-caps',
+ 'font-variant-east-asian',
+ 'font-variant-emoji',
+ 'font-variant-ligatures',
+ 'font-variant-numeric',
+ 'font-variant-position',
+ 'font-variation-settings',
+ 'font-weight',
+ 'footnote-display',
+ 'footnote-policy',
+ 'forced-color-adjust',
+ 'gap',
+ 'glyph-orientation-vertical',
+ 'grid',
+ 'grid-area',
+ 'grid-auto-columns',
+ 'grid-auto-flow',
+ 'grid-auto-rows',
+ 'grid-column',
+ 'grid-column-end',
+ 'grid-column-start',
+ 'grid-row',
+ 'grid-row-end',
+ 'grid-row-start',
+ 'grid-template',
+ 'grid-template-areas',
+ 'grid-template-columns',
+ 'grid-template-rows',
+ 'hanging-punctuation',
+ 'height',
+ 'hyphenate-character',
+ 'hyphenate-limit-chars',
+ 'hyphenate-limit-last',
+ 'hyphenate-limit-lines',
+ 'hyphenate-limit-zone',
+ 'hyphens',
+ 'image-orientation',
+ 'image-rendering',
+ 'image-resolution',
+ 'initial-letter',
+ 'initial-letter-align',
+ 'initial-letter-wrap',
+ 'inline-size',
+ 'inline-sizing',
+ 'input-security',
+ 'inset',
+ 'inset-block',
+ 'inset-block-end',
+ 'inset-block-start',
+ 'inset-inline',
+ 'inset-inline-end',
+ 'inset-inline-start',
+ 'isolation',
+ 'justify-content',
+ 'justify-items',
+ 'justify-self',
+ 'leading-trim',
+ 'left',
+ 'letter-spacing',
+ 'lighting-color',
+ 'line-break',
+ 'line-clamp',
+ 'line-grid',
+ 'line-height',
+ 'line-height-step',
+ 'line-padding',
+ 'line-snap',
+ 'list-style',
+ 'list-style-image',
+ 'list-style-position',
+ 'list-style-type',
+ 'margin',
+ 'margin-block',
+ 'margin-block-end',
+ 'margin-block-start',
+ 'margin-bottom',
+ 'margin-break',
+ 'margin-inline',
+ 'margin-inline-end',
+ 'margin-inline-start',
+ 'margin-left',
+ 'margin-right',
+ 'margin-top',
+ 'margin-trim',
+ 'marker',
+ 'marker-end',
+ 'marker-knockout-left',
+ 'marker-knockout-right',
+ 'marker-mid',
+ 'marker-pattern',
+ 'marker-segment',
+ 'marker-side',
+ 'marker-start',
+ 'mask',
+ 'mask-border',
+ 'mask-border-mode',
+ 'mask-border-outset',
+ 'mask-border-repeat',
+ 'mask-border-slice',
+ 'mask-border-source',
+ 'mask-border-width',
+ 'mask-clip',
+ 'mask-composite',
+ 'mask-image',
+ 'mask-mode',
+ 'mask-origin',
+ 'mask-position',
+ 'mask-repeat',
+ 'mask-size',
+ 'mask-type',
+ 'max-block-size',
+ 'max-height',
+ 'max-inline-size',
+ 'max-lines',
+ 'max-width',
+ 'min-block-size',
+ 'min-height',
+ 'min-inline-size',
+ 'min-intrinsic-sizing',
+ 'min-width',
+ 'mix-blend-mode',
+ 'nav-down',
+ 'nav-left',
+ 'nav-right',
+ 'nav-up',
+ 'object-fit',
+ 'object-overflow',
+ 'object-position',
+ 'object-view-box',
+ 'offset',
+ 'offset-anchor',
+ 'offset-distance',
+ 'offset-path',
+ 'offset-position',
+ 'offset-rotate',
+ 'opacity',
+ 'order',
+ 'orphans',
+ 'outline',
+ 'outline-color',
+ 'outline-offset',
+ 'outline-style',
+ 'outline-width',
+ 'overflow',
+ 'overflow-anchor',
+ 'overflow-block',
+ 'overflow-clip-margin',
+ 'overflow-inline',
+ 'overflow-wrap',
+ 'overflow-x',
+ 'overflow-y',
+ 'overscroll-behavior',
+ 'overscroll-behavior-block',
+ 'overscroll-behavior-inline',
+ 'overscroll-behavior-x',
+ 'overscroll-behavior-y',
+ 'padding',
+ 'padding-block',
+ 'padding-block-end',
+ 'padding-block-start',
+ 'padding-bottom',
+ 'padding-inline',
+ 'padding-inline-end',
+ 'padding-inline-start',
+ 'padding-left',
+ 'padding-right',
+ 'padding-top',
+ 'page',
+ 'page-break-after',
+ 'page-break-before',
+ 'page-break-inside',
+ 'pause',
+ 'pause-after',
+ 'pause-before',
+ 'perspective',
+ 'perspective-origin',
+ 'pitch',
+ 'pitch-range',
+ 'place-content',
+ 'place-items',
+ 'place-self',
+ 'play-during',
+ 'pointer-events',
+ 'position',
+ 'print-color-adjust',
+ 'property-name',
+ 'quotes',
+ 'region-fragment',
+ 'resize',
+ 'rest',
+ 'rest-after',
+ 'rest-before',
+ 'richness',
+ 'right',
+ 'rotate',
+ 'row-gap',
+ 'ruby-align',
+ 'ruby-merge',
+ 'ruby-overhang',
+ 'ruby-position',
+ 'running',
+ 'scale',
+ 'scroll-behavior',
+ 'scroll-margin',
+ 'scroll-margin-block',
+ 'scroll-margin-block-end',
+ 'scroll-margin-block-start',
+ 'scroll-margin-bottom',
+ 'scroll-margin-inline',
+ 'scroll-margin-inline-end',
+ 'scroll-margin-inline-start',
+ 'scroll-margin-left',
+ 'scroll-margin-right',
+ 'scroll-margin-top',
+ 'scroll-padding',
+ 'scroll-padding-block',
+ 'scroll-padding-block-end',
+ 'scroll-padding-block-start',
+ 'scroll-padding-bottom',
+ 'scroll-padding-inline',
+ 'scroll-padding-inline-end',
+ 'scroll-padding-inline-start',
+ 'scroll-padding-left',
+ 'scroll-padding-right',
+ 'scroll-padding-top',
+ 'scroll-snap-align',
+ 'scroll-snap-stop',
+ 'scroll-snap-type',
+ 'scrollbar-color',
+ 'scrollbar-gutter',
+ 'scrollbar-width',
+ 'shape-image-threshold',
+ 'shape-inside',
+ 'shape-margin',
+ 'shape-outside',
+ 'spatial-navigation-action',
+ 'spatial-navigation-contain',
+ 'spatial-navigation-function',
+ 'speak',
+ 'speak-as',
+ 'speak-header',
+ 'speak-numeral',
+ 'speak-punctuation',
+ 'speech-rate',
+ 'stress',
+ 'string-set',
+ 'stroke',
+ 'stroke-align',
+ 'stroke-alignment',
+ 'stroke-break',
+ 'stroke-color',
+ 'stroke-dash-corner',
+ 'stroke-dash-justify',
+ 'stroke-dashadjust',
+ 'stroke-dasharray',
+ 'stroke-dashcorner',
+ 'stroke-dashoffset',
+ 'stroke-image',
+ 'stroke-linecap',
+ 'stroke-linejoin',
+ 'stroke-miterlimit',
+ 'stroke-opacity',
+ 'stroke-origin',
+ 'stroke-position',
+ 'stroke-repeat',
+ 'stroke-size',
+ 'stroke-width',
+ 'tab-size',
+ 'table-layout',
+ 'text-align',
+ 'text-align-all',
+ 'text-align-last',
+ 'text-combine-upright',
+ 'text-decoration',
+ 'text-decoration-color',
+ 'text-decoration-line',
+ 'text-decoration-skip',
+ 'text-decoration-skip-box',
+ 'text-decoration-skip-ink',
+ 'text-decoration-skip-inset',
+ 'text-decoration-skip-self',
+ 'text-decoration-skip-spaces',
+ 'text-decoration-style',
+ 'text-decoration-thickness',
+ 'text-edge',
+ 'text-emphasis',
+ 'text-emphasis-color',
+ 'text-emphasis-position',
+ 'text-emphasis-skip',
+ 'text-emphasis-style',
+ 'text-group-align',
+ 'text-indent',
+ 'text-justify',
+ 'text-orientation',
+ 'text-overflow',
+ 'text-shadow',
+ 'text-space-collapse',
+ 'text-space-trim',
+ 'text-spacing',
+ 'text-transform',
+ 'text-underline-offset',
+ 'text-underline-position',
+ 'text-wrap',
+ 'top',
+ 'transform',
+ 'transform-box',
+ 'transform-origin',
+ 'transform-style',
+ 'transition',
+ 'transition-delay',
+ 'transition-duration',
+ 'transition-property',
+ 'transition-timing-function',
+ 'translate',
+ 'unicode-bidi',
+ 'user-select',
+ 'vertical-align',
+ 'visibility',
+ 'voice-balance',
+ 'voice-duration',
+ 'voice-family',
+ 'voice-pitch',
+ 'voice-range',
+ 'voice-rate',
+ 'voice-stress',
+ 'voice-volume',
+ 'volume',
+ 'white-space',
+ 'widows',
+ 'width',
+ 'will-change',
+ 'word-boundary-detection',
+ 'word-boundary-expansion',
+ 'word-break',
+ 'word-spacing',
+ 'word-wrap',
+ 'wrap-after',
+ 'wrap-before',
+ 'wrap-flow',
+ 'wrap-inside',
+ 'wrap-through',
+ 'writing-mode',
+ 'z-index',
+) \ No newline at end of file
diff --git a/pygments/lexers/css.py b/pygments/lexers/css.py
index 93e2315b..9cbd0d33 100644
--- a/pygments/lexers/css.py
+++ b/pygments/lexers/css.py
@@ -15,6 +15,7 @@ from pygments.lexer import ExtendedRegexLexer, RegexLexer, include, bygroups, \
default, words, inherit
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
Number, Punctuation, Whitespace
+from pygments.lexers._css_builtins import _css_properties
__all__ = ['CssLexer', 'SassLexer', 'ScssLexer', 'LessCssLexer']
@@ -26,102 +27,38 @@ _vendor_prefixes = (
'-webkit-', 'prince-', '-ah-', '-hp-', '-ro-', '-rim-', '-tc-',
)
-# List of CSS properties obtained from:
-# https://www.w3.org/Style/CSS/all-properties.en.html
-# Note: handle --* separately
-_css_properties = (
- 'align-content', 'align-items', 'align-self', 'alignment-baseline', 'all',
- 'animation', 'animation-delay', 'animation-direction',
- 'animation-duration', 'animation-fill-mode', 'animation-iteration-count',
- 'animation-name', 'animation-play-state', 'animation-timing-function',
- 'appearance', 'azimuth', 'backface-visibility', 'background',
- 'background-attachment', 'background-blend-mode', 'background-clip',
- 'background-color', 'background-image', 'background-origin',
- 'background-position', 'background-repeat', 'background-size',
- 'baseline-shift', 'bookmark-label', 'bookmark-level', 'bookmark-state',
- 'border', 'border-bottom', 'border-bottom-color',
- 'border-bottom-left-radius', 'border-bottom-right-radius',
- 'border-bottom-style', 'border-bottom-width', 'border-boundary',
- 'border-collapse', 'border-color', 'border-image', 'border-image-outset',
- 'border-image-repeat', 'border-image-slice', 'border-image-source',
- 'border-image-width', 'border-left', 'border-left-color',
- 'border-left-style', 'border-left-width', 'border-radius', 'border-right',
- 'border-right-color', 'border-right-style', 'border-right-width',
- 'border-spacing', 'border-style', 'border-top', 'border-top-color',
- 'border-top-left-radius', 'border-top-right-radius', 'border-top-style',
- 'border-top-width', 'border-width', 'bottom', 'box-decoration-break',
- 'box-shadow', 'box-sizing', 'box-snap', 'box-suppress', 'break-after',
- 'break-before', 'break-inside', 'caption-side', 'caret', 'caret-animation',
- 'caret-color', 'caret-shape', 'chains', 'clear', 'clip', 'clip-path',
- 'clip-rule', 'color', 'color-interpolation-filters', 'column-count',
- 'column-fill', 'column-gap', 'column-rule', 'column-rule-color',
- 'column-rule-style', 'column-rule-width', 'column-span', 'column-width',
- 'columns', 'content', 'counter-increment', 'counter-reset', 'counter-set',
- 'crop', 'cue', 'cue-after', 'cue-before', 'cursor', 'direction', 'display',
- 'dominant-baseline', 'elevation', 'empty-cells', 'filter', 'flex',
- 'flex-basis', 'flex-direction', 'flex-flow', 'flex-grow', 'flex-shrink',
- 'flex-wrap', 'float', 'float-defer', 'float-offset', 'float-reference',
- 'flood-color', 'flood-opacity', 'flow', 'flow-from', 'flow-into', 'font',
- 'font-family', 'font-feature-settings', 'font-kerning',
- 'font-language-override', 'font-size', 'font-size-adjust', 'font-stretch',
- 'font-style', 'font-synthesis', 'font-variant', 'font-variant-alternates',
- 'font-variant-caps', 'font-variant-east-asian', 'font-variant-ligatures',
- 'font-variant-numeric', 'font-variant-position', 'font-weight',
- 'footnote-display', 'footnote-policy', 'glyph-orientation-vertical',
- 'grid', 'grid-area', 'grid-auto-columns', 'grid-auto-flow',
- 'grid-auto-rows', 'grid-column', 'grid-column-end', 'grid-column-gap',
- 'grid-column-start', 'grid-gap', 'grid-row', 'grid-row-end',
- 'grid-row-gap', 'grid-row-start', 'grid-template', 'grid-template-areas',
- 'grid-template-columns', 'grid-template-rows', 'hanging-punctuation',
- 'height', 'hyphenate-character', 'hyphenate-limit-chars',
- 'hyphenate-limit-last', 'hyphenate-limit-lines', 'hyphenate-limit-zone',
- 'hyphens', 'image-orientation', 'image-resolution', 'initial-letter',
- 'initial-letter-align', 'initial-letter-wrap', 'isolation',
- 'justify-content', 'justify-items', 'justify-self', 'left',
- 'letter-spacing', 'lighting-color', 'line-break', 'line-grid',
- 'line-height', 'line-snap', 'list-style', 'list-style-image',
- 'list-style-position', 'list-style-type', 'margin', 'margin-bottom',
- 'margin-left', 'margin-right', 'margin-top', 'marker-side',
- 'marquee-direction', 'marquee-loop', 'marquee-speed', 'marquee-style',
- 'mask', 'mask-border', 'mask-border-mode', 'mask-border-outset',
- 'mask-border-repeat', 'mask-border-slice', 'mask-border-source',
- 'mask-border-width', 'mask-clip', 'mask-composite', 'mask-image',
- 'mask-mode', 'mask-origin', 'mask-position', 'mask-repeat', 'mask-size',
- 'mask-type', 'max-height', 'max-lines', 'max-width', 'min-height',
- 'min-width', 'mix-blend-mode', 'motion', 'motion-offset', 'motion-path',
- 'motion-rotation', 'move-to', 'nav-down', 'nav-left', 'nav-right',
- 'nav-up', 'object-fit', 'object-position', 'offset-after', 'offset-before',
- 'offset-end', 'offset-start', 'opacity', 'order', 'orphans', 'outline',
- 'outline-color', 'outline-offset', 'outline-style', 'outline-width',
- 'overflow', 'overflow-style', 'overflow-wrap', 'overflow-x', 'overflow-y',
- 'padding', 'padding-bottom', 'padding-left', 'padding-right', 'padding-top',
- 'page', 'page-break-after', 'page-break-before', 'page-break-inside',
- 'page-policy', 'pause', 'pause-after', 'pause-before', 'perspective',
- 'perspective-origin', 'pitch', 'pitch-range', 'play-during', 'polar-angle',
- 'polar-distance', 'position', 'presentation-level', 'quotes',
- 'region-fragment', 'resize', 'rest', 'rest-after', 'rest-before',
- 'richness', 'right', 'rotation', 'rotation-point', 'ruby-align',
- 'ruby-merge', 'ruby-position', 'running', 'scroll-snap-coordinate',
- 'scroll-snap-destination', 'scroll-snap-points-x', 'scroll-snap-points-y',
- 'scroll-snap-type', 'shape-image-threshold', 'shape-inside', 'shape-margin',
- 'shape-outside', 'size', 'speak', 'speak-as', 'speak-header',
- 'speak-numeral', 'speak-punctuation', 'speech-rate', 'stress', 'string-set',
- 'tab-size', 'table-layout', 'text-align', 'text-align-last',
- 'text-combine-upright', 'text-decoration', 'text-decoration-color',
- 'text-decoration-line', 'text-decoration-skip', 'text-decoration-style',
- 'text-emphasis', 'text-emphasis-color', 'text-emphasis-position',
- 'text-emphasis-style', 'text-indent', 'text-justify', 'text-orientation',
- 'text-overflow', 'text-shadow', 'text-space-collapse', 'text-space-trim',
- 'text-spacing', 'text-transform', 'text-underline-position', 'text-wrap',
- 'top', 'transform', 'transform-origin', 'transform-style', 'transition',
- 'transition-delay', 'transition-duration', 'transition-property',
- 'transition-timing-function', 'unicode-bidi', 'user-select',
- 'vertical-align', 'visibility', 'voice-balance', 'voice-duration',
- 'voice-family', 'voice-pitch', 'voice-range', 'voice-rate', 'voice-stress',
- 'voice-volume', 'volume', 'white-space', 'widows', 'width', 'will-change',
- 'word-break', 'word-spacing', 'word-wrap', 'wrap-after', 'wrap-before',
- 'wrap-flow', 'wrap-inside', 'wrap-through', 'writing-mode', 'z-index',
-)
+# List of extended color keywords obtained from:
+# https://drafts.csswg.org/css-color/#named-colors
+_color_keywords = (
+ 'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 'beige',
+ 'bisque', 'black', 'blanchedalmond', 'blue', 'blueviolet', 'brown',
+ 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral',
+ 'cornflowerblue', 'cornsilk', 'crimson', 'cyan', 'darkblue', 'darkcyan',
+ 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki',
+ 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred',
+ 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray',
+ 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue',
+ 'dimgray', 'dimgrey', 'dodgerblue', 'firebrick', 'floralwhite',
+ 'forestgreen', 'fuchsia', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod',
+ 'gray', 'green', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred',
+ 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen',
+ 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan',
+ 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey',
+ 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue',
+ 'lightslategray', 'lightslategrey', 'lightsteelblue', 'lightyellow',
+ 'lime', 'limegreen', 'linen', 'magenta', 'maroon', 'mediumaquamarine',
+ 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen',
+ 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise',
+ 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin',
+ 'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab', 'orange',
+ 'orangered', 'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise',
+ 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum',
+ 'powderblue', 'purple', 'rebeccapurple', 'red', 'rosybrown', 'royalblue',
+ 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna',
+ 'silver', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow',
+ 'springgreen', 'steelblue', 'tan', 'teal', 'thistle', 'tomato', 'turquoise',
+ 'violet', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen',
+) + ('transparent',)
# List of keyword values obtained from:
# http://cssvalues.com/
@@ -179,39 +116,6 @@ _keyword_values = (
'x-small', 'xx-large', 'xx-small', 'zoom-in', 'zoom-out',
)
-# List of extended color keywords obtained from:
-# https://drafts.csswg.org/css-color/#named-colors
-_color_keywords = (
- 'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 'beige',
- 'bisque', 'black', 'blanchedalmond', 'blue', 'blueviolet', 'brown',
- 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral',
- 'cornflowerblue', 'cornsilk', 'crimson', 'cyan', 'darkblue', 'darkcyan',
- 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkgrey', 'darkkhaki',
- 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred',
- 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray',
- 'darkslategrey', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue',
- 'dimgray', 'dimgrey', 'dodgerblue', 'firebrick', 'floralwhite',
- 'forestgreen', 'fuchsia', 'gainsboro', 'ghostwhite', 'gold', 'goldenrod',
- 'gray', 'green', 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred',
- 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush', 'lawngreen',
- 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan',
- 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey',
- 'lightpink', 'lightsalmon', 'lightseagreen', 'lightskyblue',
- 'lightslategray', 'lightslategrey', 'lightsteelblue', 'lightyellow',
- 'lime', 'limegreen', 'linen', 'magenta', 'maroon', 'mediumaquamarine',
- 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen',
- 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise',
- 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin',
- 'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab', 'orange',
- 'orangered', 'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise',
- 'palevioletred', 'papayawhip', 'peachpuff', 'peru', 'pink', 'plum',
- 'powderblue', 'purple', 'rebeccapurple', 'red', 'rosybrown', 'royalblue',
- 'saddlebrown', 'salmon', 'sandybrown', 'seagreen', 'seashell', 'sienna',
- 'silver', 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow',
- 'springgreen', 'steelblue', 'tan', 'teal', 'thistle', 'tomato', 'turquoise',
- 'violet', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen',
-) + ('transparent',)
-
# List of other keyword values from other sources:
_other_keyword_values = (
'above', 'aural', 'behind', 'bidi-override', 'center-left', 'center-right',
diff --git a/scripts/get_css_properties.py b/scripts/get_css_properties.py
new file mode 100644
index 00000000..3afe98e1
--- /dev/null
+++ b/scripts/get_css_properties.py
@@ -0,0 +1,33 @@
+"""
+ get_css_properties
+ ~~~~~~~~~~~~~~~~~~
+
+ :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+
+from pygments.util import format_lines
+import json
+import urllib.request
+
+HEADER = '''\
+"""
+ pygments.lexers._css_builtins
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ This file is autogenerated by scripts/get_css_properties.py
+
+ :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+'''
+
+if __name__ == "__main__":
+ data_request = urllib.request.urlopen('https://www.w3.org/Style/CSS/all-properties.en.json')
+ data = json.load(data_request)
+ names = set([p['property'] for p in data if p['property'] != '--*'])
+
+ with open('../pygments/lexers/_css_builtins.py', 'w') as builtin_file:
+ builtin_file.write(HEADER)
+ builtin_file.write(format_lines('_css_properties', sorted(names)))