//------------------------------------------------ //--- 010 Editor v9.0 Binary Template // // File: CSS.bt // Authors: SweetScape Software // Version: 1.0 // Purpose: Syntax highlighting for Cascading Style Sheets (CSS). // Category: Syntax // File Mask: *.css // ID Bytes: // History: // 1.0 2018-12-11 SweetScape Software: Initial version. //------------------------------------------------ RequiresVersion( 9 ); // To save memory, allow a single copy of this template to provide // syntax highlighting for all open files that match the file mask. HighlightAllowInstanceSharing( true ); // Get list of coloring styles local int commentStyle = HighlightFindStyle( "code-comment" ); local int keywordStyle = HighlightFindStyle( "code-keyword" ); local int dataTypeStyle = HighlightFindStyle( "code-data-type" ); local int stringStyle = HighlightFindStyle( "code-string" ); // Types of rules we may be applying that may span multiple lines const int RULE_NONE = 0; const int RULE_MULTILINE_COMMENT = 1; // Build list of keywords local TKeywordList keywordList = HighlightBuildKeywordList( HIGHLIGHT_WHOLEWORD | HIGHLIGHT_IGNORECASE, "!IMPORTANT", "ACCELERATOR", "ACCESSKEY", "ADDITIVE-SYMBOLS", "ALIGN-CONTENT", "ALIGN-ITEMS", "ALIGN-SELF", "ALIGNMENT-ADJUST", "ALIGNMENT-BASELINE", "ALL", "ANCHOR-POINT", "ANIMATION", "ANIMATION-DELAY", "ANIMATION-DIRECTION", "ANIMATION-DURATION", "ANIMATION-FILL-MODE", "ANIMATION-ITERATION-COUNT", "ANIMATION-NAME", "ANIMATION-PLAY-STATE", "ANIMATION-TIMING-FUNCTION", "APP-REGION", "APPEARANCE", "ASPECT-RATIO", "AUTO", "AZIMUTH", "BACKFACE-VISIBILITY", "BACKGROUND", "BACKGROUND-ATTACHMENT", "BACKGROUND-CLIP", "BACKGROUND-COLOR", "BACKGROUND-COMPOSITE", "BACKGROUND-IMAGE", "BACKGROUND-INLINE-POLICY", "BACKGROUND-ORIGIN", "BACKGROUND-ORIGIN-X", "BACKGROUND-ORIGIN-Y", "BACKGROUND-POSITION", "BACKGROUND-POSITION-X", "BACKGROUND-POSITION-Y", "BACKGROUND-REPEAT", "BACKGROUND-SIZE", "BASELINE-SHIFT", "BEHAVIOR", "BINDING", "BLEED", "BLEND-MODE", "BLOCK-PROGRESSION", "BOOKMARK-LABEL", "BOOKMARK-LEVEL", "BOOKMARK-STATE", "BOOKMARK-TARGET", "BORDER", "BORDER-AFTER", "BORDER-AFTER-COLOR", "BORDER-AFTER-STYLE", "BORDER-AFTER-WIDTH", "BORDER-BEFORE", "BORDER-BEFORE-COLOR", "BORDER-BEFORE-STYLE", "BORDER-BEFORE-WIDTH", "BORDER-BOTTOM", "BORDER-BOTTOM-COLOR", "BORDER-BOTTOM-COLORS", "BORDER-BOTTOM-LEFT-RADIUS", "BORDER-BOTTOM-RIGHT-RADIUS", "BORDER-BOTTOM-STYLE", "BORDER-BOTTOM-WIDTH", "BORDER-CLIP", "BORDER-CLIP-BOTTOM", "BORDER-CLIP-LEFT", "BORDER-CLIP-RIGHT", "BORDER-CLIP-TOP", "BORDER-COLLAPSE", "BORDER-COLOR", "BORDER-END", "BORDER-END-COLOR", "BORDER-END-STYLE", "BORDER-END-WIDTH", "BORDER-FIT", "BORDER-HORIZONTAL-SPACING", "BORDER-IMAGE", "BORDER-IMAGE-OUTSET", "BORDER-IMAGE-REPEAT", "BORDER-IMAGE-SLICE", "BORDER-IMAGE-SOURCE", "BORDER-IMAGE-WIDTH", "BORDER-LEFT", "BORDER-LEFT-COLOR", "BORDER-LEFT-COLORS", "BORDER-LEFT-STYLE", "BORDER-LEFT-WIDTH", "BORDER-RADIUS", "BORDER-RIGHT", "BORDER-RIGHT-COLOR", "BORDER-RIGHT-COLORS", "BORDER-RIGHT-STYLE", "BORDER-RIGHT-WIDTH", "BORDER-SPACING", "BORDER-START", "BORDER-START-COLOR", "BORDER-START-STYLE", "BORDER-START-WIDTH", "BORDER-STYLE", "BORDER-TOP", "BORDER-TOP-COLOR", "BORDER-TOP-COLORS", "BORDER-TOP-LEFT-RADIUS", "BORDER-TOP-RIGHT-RADIUS", "BORDER-TOP-STYLE", "BORDER-TOP-WIDTH", "BORDER-VERTICAL-SPACING", "BORDER-WIDTH", "BOTTOM", "BOX-ALIGN", "BOX-DECORATION-BREAK", "BOX-DIRECTION", "BOX-FLEX", "BOX-FLEX-GROUP", "BOX-LINES", "BOX-ORDINAL-GROUP", "BOX-ORIENT", "BOX-PACK", "BOX-REFLECT", "BOX-SHADOW", "BOX-SIZING", "BOX-SNAP", "BREAK-AFTER", "BREAK-BEFORE", "BREAK-INSIDE", "CAPTION-SIDE", "CH", "CHAINS", "CLEAR", "CLIP", "CLIP-PATH", "CLIP-RULE", "CM", "COLOR", "COLOR-CORRECTION", "COLOR-INDEX", "COLOR-PROFILE", "COLUMN-AXIS", "COLUMN-BREAK-AFTER", "COLUMN-BREAK-BEFORE", "COLUMN-BREAK-INSIDE", "COLUMN-COUNT", "COLUMN-FILL", "COLUMN-GAP", "COLUMN-PROGRESSION", "COLUMN-RULE", "COLUMN-RULE-COLOR", "COLUMN-RULE-STYLE", "COLUMN-RULE-WIDTH", "COLUMN-SPAN", "COLUMN-WIDTH", "COLUMNS", "CONTENT", "CONTENT-ZOOM-CHAINING", "CONTENT-ZOOM-LIMIT", "CONTENT-ZOOM-LIMIT-MAX", "CONTENT-ZOOM-LIMIT-MIN", "CONTENT-ZOOM-SNAP", "CONTENT-ZOOM-SNAP-POINTS", "CONTENT-ZOOM-SNAP-TYPE", "CONTENT-ZOOMING", "COUNTER-INCREMENT", "COUNTER-RESET", "CROP", "CUE", "CUE-AFTER", "CUE-BEFORE", "CURSOR", "DASHBOARD-REGION", "DEFAULT", "DEG", "DEVICE-ASPECT-RATIO", "DEVICE-PIXEL-RATIO", "DEVICE-WIDTH", "DIRECTION", "DISPLAY", "DISPLAY-BOX", "DISPLAY-EXTRAS", "DISPLAY-INSIDE", "DISPLAY-OUTSIDE", "DOMINANT-BASELINE", "DPCM", "DPI", "DPPX", "DROP-INITIAL-AFTER-ADJUST", "DROP-INITIAL-AFTER-ALIGN", "DROP-INITIAL-BEFORE-ADJUST", "DROP-INITIAL-BEFORE-ALIGN", "DROP-INITIAL-SIZE", "DROP-INITIAL-VALUE", "ELEVATION", "EM", "EMPTY-CELLS", "EX", "FALLBACK", "FILL", "FILL-OPACITY", "FILL-RULE", "FILTER", "FIT", "FIT-POSITION", "FLAVOR", "FLEX", "FLEX-ALIGN", "FLEX-BASIS", "FLEX-DIRECTION", "FLEX-FLOW", "FLEX-GROW", "FLEX-ORDER", "FLEX-PACK", "FLEX-SHRINK", "FLEX-WRAP", "FLOAT", "FLOAT-EDGE", "FLOAT-OFFSET", "FLOOD-COLOR", "FLOOD-OPACITY", "FLOW-FROM", "FLOW-INTO", "FOCUS-OPACITY", "FONT", "FONT-COLOR", "FONT-EMPHASIZE", "FONT-EMPHASIZE-POSITION", "FONT-EMPHASIZE-STYLE", "FONT-FAMILY", "FONT-FEATURE-SETTINGS", "FONT-KERNING", "FONT-LANGUAGE-OVERRIDE", "FONT-SIZE", "FONT-SIZE-ADJUST", "FONT-SIZE-DELTA", "FONT-SMOOTH", "FONT-SMOOTHING", "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", "FORCE-BROKEN-IMAGE-ICON", "FR", "GD", "GLYPH-ORIENTATION-HORIZONTAL", "GLYPH-ORIENTATION-VERTICAL", "GRAD", "GRID", "GRID-AREA", "GRID-AUTO-COLUMNS", "GRID-AUTO-FLOW", "GRID-AUTO-ROWS", "GRID-COLUMN", "GRID-COLUMN-ALIGN", "GRID-COLUMN-POSITION", "GRID-COLUMN-SPAN", "GRID-COLUMNS", "GRID-DEFINITION-COLUMNS", "GRID-DEFINITION-ROWS", "GRID-POSITION", "GRID-ROW", "GRID-ROW-ALIGN", "GRID-ROW-POSITION", "GRID-ROW-SPAN", "GRID-ROWS", "GRID-SPAN", "GRID-TEMPLATE", "HANGING-PUNCTUATION", "HEIGHT", "HIGH-CONTRAST", "HIGH-CONTRAST-ADJUST", "HIGHLIGHT", "HORIZ-ALIGN", "HYPHENATE-CHARACTER", "HYPHENATE-LIMIT-AFTER", "HYPHENATE-LIMIT-BEFORE", "HYPHENATE-LIMIT-CHARS", "HYPHENATE-LIMIT-LAST", "HYPHENATE-LIMIT-LINES", "HYPHENATE-LIMIT-ZONE", "HYPHENATE-RESOURCE", "HYPHENS", "HZ", "ICON", "IMAGE-ORIENTATION", "IMAGE-RENDERING", "IMAGE-RESOLUTION", "IMAGES-IN-MENUS", "IME-MODE", "IN", "INCLUDE-SOURCE", "INHERIT", "INITIAL", "INLINE-BOX-ALIGN", "INLINE-FLEX", "INLINE-TABLE", "INPUT-FORMAT", "INPUT-REQUIRED", "INTERPOLATION-MODE", "INTERPRET-AS", "JUSTIFY-CONTENT", "JUSTIFY-ITEMS", "JUSTIFY-SELF", "KERNING", "KHZ", "LANGUAGES", "LAYOUT-FLOW", "LAYOUT-GRID", "LAYOUT-GRID-CHAR", "LAYOUT-GRID-CHAR-SPACING", "LAYOUT-GRID-LINE", "LAYOUT-GRID-MODE", "LAYOUT-GRID-TYPE", "LEFT", "LETTER-SPACING", "LIGHTING-COLOR", "LINE-ALIGN", "LINE-BOX-CONTAIN", "LINE-BREAK", "LINE-CLAMP", "LINE-GRID", "LINE-HEIGHT", "LINE-SLACK", "LINE-SNAP", "LINE-STACKING", "LINE-STACKING-RUBY", "LINE-STACKING-SHIFT", "LINE-STACKING-STRATEGY", "LINEAR-GRADIENT", "LINK", "LINK-SOURCE", "LIST-IMAGE-1", "LIST-IMAGE-2", "LIST-IMAGE-3", "LIST-STYLE-IMAGE", "LIST-STYLE-POSITION", "LIST-STYLE-TYPE", "LOCALE", "LOGICAL-HEIGHT", "LOGICAL-WIDTH", "MAC-GRAPHITE-THEME", "MAEMO-CLASSIC", "MARGIN", "MARGIN-AFTER", "MARGIN-AFTER-COLLAPSE", "MARGIN-BEFORE", "MARGIN-BEFORE-COLLAPSE", "MARGIN-BOTTOM", "MARGIN-BOTTOM-COLLAPSE", "MARGIN-COLLAPSE", "MARGIN-END", "MARGIN-LEFT", "MARGIN-RIGHT", "MARGIN-START", "MARGIN-TOP", "MARGIN-TOP-COLLAPSE", "MARKER", "MARKER-END", "MARKER-MID", "MARKER-START", "MARKS", "MARQUEE", "MARQUEE-DIR", "MARQUEE-DIRECTION", "MARQUEE-INCREMENT", "MARQUEE-LOOP", "MARQUEE-PLAY-COUNT", "MARQUEE-REPETITION", "MARQUEE-SPEED", "MARQUEE-STYLE", "MASK", "MASK-ATTACHMENT", "MASK-BOX-IMAGE", "MASK-BOX-IMAGE-OUTSET", "MASK-BOX-IMAGE-REPEAT", "MASK-BOX-IMAGE-SLICE", "MASK-BOX-IMAGE-SOURCE", "MASK-BOX-IMAGE-WIDTH", "MASK-CLIP", "MASK-COMPOSITE", "MASK-IMAGE", "MASK-ORIGIN", "MASK-POSITION", "MASK-POSITION-X", "MASK-POSITION-Y", "MASK-REPEAT", "MASK-REPEAT-X", "MASK-REPEAT-Y", "MASK-SIZE", "MASK-TYPE", "MATCH-NEAREST-MAIL-BLOCKQUOTE-COLOR", "MAX-COLOR", "MAX-COLOR-INDEX", "MAX-DEVICE-ASPECT-RATIO", "MAX-DEVICE-HEIGHT", "MAX-DEVICE-PIXEL-RATIO", "MAX-DEVICE-WIDTH", "MAX-HEIGHT", "MAX-LOGICAL-HEIGHT", "MAX-LOGICAL-WIDTH", "MAX-MONOCHROME", "MAX-RESOLUTION", "MAX-WIDTH", "MAX-ZOOM", "MIN-ASPECT-RATIO", "MIN-COLOR", "MIN-COLOR-INDEX", "MIN-DEVICE-ASPECT-RATIO", "MIN-DEVICE-HEIGHT", "MIN-DEVICE-PIXEL-RATIO", "MIN-DEVICE-WIDTH", "MIN-HEIGHT", "MIN-LOGICAL-HEIGHT", "MIN-LOGICAL-WIDTH", "MIN-MONOCHROME", "MIN-RESOLUTION", "MIN-WIDTH", "MIN-ZOOM", "MINI-FOLD", "MM", "MONOCHROME", "MOVE-TO", "MS", "NAV-BANNER-IMAGE", "NAV-BOTTOM", "NAV-DOWN", "NAV-DOWN-SHIFT", "NAV-INDEX", "NAV-LEFT", "NAV-LEFT-SHIFT", "NAV-RIGHT", "NAV-RIGHT-SHIFT", "NAV-UP", "NAV-UP-SHIFT", "NBSP-MODE", "NEGATIVE", "NONE", "NORMAL", "OBJECT-FIT", "OBJECT-POSITION", "OEB-COLUMN-NUMBER", "OEB-PAGE-FOOT", "OEB-PAGE-HEAD", "OPACITY", "ORDER", "ORIENT", "ORIENTATION", "ORPHANS", "OUTLINE", "OUTLINE-COLOR", "OUTLINE-OFFSET", "OUTLINE-RADIUS", "OUTLINE-RADIUS-BOTTOMLEFT", "OUTLINE-RADIUS-BOTTOMRIGHT", "OUTLINE-RADIUS-TOPLEFT", "OUTLINE-RADIUS-TOPRIGHT", "OUTLINE-STYLE", "OUTLINE-WIDTH", "OVERFLOW", "OVERFLOW-SCROLLING", "OVERFLOW-STYLE", "OVERFLOW-WRAP", "OVERFLOW-X", "OVERFLOW-Y", "PADDING", "PADDING-AFTER", "PADDING-BEFORE", "PADDING-BOTTOM", "PADDING-END", "PADDING-LEFT", "PADDING-RIGHT", "PADDING-START", "PADDING-TOP", "PAGE", "PAGE-BREAK-AFTER", "PAGE-BREAK-BEFORE", "PAGE-BREAK-INSIDE", "PAGE-POLICY", "PANOSE-1", "PAUSE", "PAUSE-AFTER", "PAUSE-BEFORE", "PC", "PERSPECTIVE", "PERSPECTIVE-ORIGIN", "PERSPECTIVE-ORIGIN-X", "PERSPECTIVE-ORIGIN-Y", "PHONEMES", "PITCH", "PITCH-RANGE", "PLAY-DURING", "POINTER-EVENTS", "POSITION", "PREFIX", "PRESENTATION-LEVEL", "PRINT-COLOR-ADJUST", "PROGRESS-APPEARANCE", "PT", "PUNCTUATION-TRIM", "PUNCTUATION-WRAP", "PX", "QUOTES", "RAD", "RADIAL-GRADIENT", "RANGE", "REGION-BREAK-AFTER", "REGION-BREAK-BEFORE", "REGION-BREAK-INSIDE", "REGION-OVERFLOW", "REM", "RENDERING-INTENT", "REPLACE", "RESIZE", "RESOLUTION", "RESOLUTION", "REST", "REST-AFTER", "REST-BEFORE", "RICHNESS", "RIGHT", "ROTATION", "ROTATION-POINT", "ROW-SPAN", "RTL-ORDERING", "RUBY-ALIGN", "RUBY-OVERHANG", "RUBY-POSITION", "RUBY-SPAN", "SCAN", "SCRIPT-LEVEL", "SCRIPT-MIN-SIZE", "SCRIPT-SIZE-MULTIPLIER", "SCROLL-CHAINING", "SCROLL-LIMIT", "SCROLL-LIMIT-X-MAX", "SCROLL-LIMIT-X-MIN", "SCROLL-LIMIT-Y-MAX", "SCROLL-LIMIT-Y-MIN", "SCROLL-RAILS", "SCROLL-SNAP-POINTS-X", "SCROLL-SNAP-POINTS-Y", "SCROLL-SNAP-TYPE", "SCROLL-SNAP-X", "SCROLL-SNAP-Y", "SCROLL-TRANSLATION", "SCROLLBAR-3DLIGHT-COLOR PROPERTY", "SCROLLBAR-ARROW-COLOR", "SCROLLBAR-BASE-COLOR", "SCROLLBAR-DARKSHADOW-COLOR", "SCROLLBAR-END-BACKWARD", "SCROLLBAR-END-FORWARD", "SCROLLBAR-FACE-COLOR", "SCROLLBAR-HIGHLIGHT-COLOR", "SCROLLBAR-SHADOW-COLOR", "SCROLLBAR-START-BACKWARD", "SCROLLBAR-START-FORWARD", "SCROLLBAR-THUMB-PROPORTIONAL", "SCROLLBAR-TRACK-COLOR", "SEPARATOR-IMAGE", "SET-LINK-SOURCE", "SHAPE-IMAGE-THRESHOLD", "SHAPE-INSIDE", "SHAPE-INSIDE", "SHAPE-MARGIN", "SHAPE-OUTSIDE", "SHAPE-OUTSIDE", "SHAPE-PADDING", "SHAPE-RENDERING", "SIZE", "SPEAK", "SPEAK-AS", "SPEAK-HEADER", "SPEAK-NUMERAL", "SPEAK-PUNCTUATION", "SPEECH-RATE", "SRC", "STACK-SIZING", "STOP-COLOR", "STOP-OPACITY", "STRESS", "STRING-SET", "STROKE", "STROKE-DASHARRAY", "STROKE-DASHOFFSET", "STROKE-LINECAP", "STROKE-LINEJOIN", "STROKE-MITERLIMIT", "STROKE-OPACITY", "STROKE-WIDTH", "SUFFIX", "SVG-SHADOW", "SYMBOLS", "SYSTEM", "TAB-SIZE", "TAB-STOPS", "TABLE-BASELINE", "TABLE-BORDER-COLOR-DARK", "TABLE-BORDER-COLOR-LIGHT", "TABLE-LAYOUT", "TAP-HIGHLIGHT-COLOR", "TARGET", "TARGET-NAME", "TARGET-NEW", "TARGET-POSITION", "TEXT-ALIGN", "TEXT-ALIGN-LAST", "TEXT-ANCHOR", "TEXT-AUTOSPACE", "TEXT-BLINK", "TEXT-COMBINE", "TEXT-COMBINE-HORIZONTAL", "TEXT-DECORATION", "TEXT-DECORATION-COLOR", "TEXT-DECORATION-LINE", "TEXT-DECORATION-SKIP", "TEXT-DECORATION-STYLE", "TEXT-DECORATIONS-IN-EFFECT", "TEXT-EFFECT", "TEXT-EMPHASIS", "TEXT-EMPHASIS-COLOR", "TEXT-EMPHASIS-POSITION", "TEXT-EMPHASIS-SKIP", "TEXT-EMPHASIS-STYLE", "TEXT-FILL-COLOR", "TEXT-FIT", "TEXT-HEIGHT", "TEXT-INDENT", "TEXT-JUSTIFY", "TEXT-JUSTIFY-TRIM", "TEXT-KASHIDA", "TEXT-KASHIDA-SPACE", "TEXT-LINE-THROUGH", "TEXT-ORIENTATION", "TEXT-OUTLINE", "TEXT-OVERFLOW", "TEXT-RENDERING", "TEXT-SECURITY", "TEXT-SHADOW", "TEXT-SIZE-ADJUST", "TEXT-SPACE-COLLAPSE", "TEXT-SPACING", "TEXT-STROKE", "TEXT-STROKE-COLOR", "TEXT-STROKE-WIDTH", "TEXT-TRANSFORM", "TEXT-TRIM", "TEXT-UNDERLINE", "TEXT-UNDERLINE-COLOR", "TEXT-UNDERLINE-POSITION", "TEXT-UNDERLINE-STYLE", "TEXT-WRAP", "TOP", "TOP-BAR-BUTTON", "TOUCH-ACTION", "TOUCH-CALLOUT", "TOUCH-ENABLED", "TRANSFORM", "TRANSFORM-ORIGIN", "TRANSFORM-ORIGIN-X", "TRANSFORM-ORIGIN-Y", "TRANSFORM-ORIGIN-Z", "TRANSFORM-STYLE", "TRANSITION", "TRANSITION-DELAY", "TRANSITION-DURATION", "TRANSITION-PROPERTY", "TRANSITION-REPEAT-COUNT", "TRANSITION-TIMING-FUNCTION", "TURN", "UNICODE-BIDI", "UNICODE-RANGE", "USE-LINK-SOURCE", "USER-DRAG", "USER-FOCUS", "USER-INPUT", "USER-MODIFY", "USER-SELECT", "USER-ZOOM", "VECTOR-EFFECT", "VERSION", "VERTICAL-ALIGN", "VH", "VISIBILITY", "VMAX", "VMIN", "VOICE-BALANCE", "VOICE-DURATION", "VOICE-FAMILY", "VOICE-PITCH", "VOICE-PITCH-RANGE", "VOICE-RANGE", "VOICE-RATE", "VOICE-STRESS", "VOICE-VOLUME", "VOLUME", "VW", "WHITE-SPACE", "WIDOWS", "WIDTH", "WINDOW-SHADOW", "WINDOWS-CLASSIC", "WINDOWS-COMPOSITOR", "WINDOWS-DEFAULT-THEME", "WINDOWS-THEME", "WORD-BREAK", "WORD-SPACING", "WORD-WRAP", "WRAP", "WRAP-FLOW", "WRAP-MARGIN", "WRAP-PADDING", "WRAP-THROUGH", "WRITING-MODE", "Z-INDEX", "ZOOM" ); // Build list of pseudo-class and pseudo-elements local TKeywordList pseudoList = HighlightBuildKeywordList( HIGHLIGHT_WHOLEWORD | HIGHLIGHT_IGNORECASE, "@CHARSET", "@COLOR-PROFILE", "@COUNTER", "@COUNTER-STYLE", "@DOCUMENT", "@FONT-FACE", "@FONT-FEATURE-VALUES", "@IMPORT", "@KEYFRAMES", "@MEDIA", "@NAMESPACE", "@NAVIGATION", "@PAGE", "@REGION", "@STRING", "@SUPPORTS", "@VIEWPORT", "ABOVE-LEVEL", "ACTIVE", "AFTER", "ALTERNATE", "ANONYMOUS-BLOCK", "ANONYMOUS-POSITIONED-BLOCK", "ANY", "ANY-LINK", "AT-LEVEL", "BACKDROP", "BEFORE", "BELOW-LEVEL", "BLANK", "BOUND-ELEMENT", "BROKEN", "BROWSE", "CANVAS", "CELL-CONTENT", "CHECK", "CHECKED", "CHOICES", "CLEAR", "COLUMN", "CONTAINS", "CURRENT", "DEFAULT", "DIR", "DISABLED", "DRAG-OVER", "EMPTY", "ENABLED", "EXPAND", "FILL", "FILL-LOWER", "FILL-UPPER", "FIRST", "FIRST-CHILD", "FIRST-LETTER", "FIRST-LINE", "FIRST-NODE", "FIRST-OF-TYPE", "FIRST-PAGE", "FOCUS", "FOCUS-INNER", "FOCUS-OUTER", "FOCUSRING", "FOOTNOTE-CALL", "FOOTNOTE-MARKER", "FULL-SCREEN", "FULL-SCREEN-ANCESTOR", "FULLSCREEN", "FUTURE", "HANDLER-BLOCKED", "HANDLER-CRASHED", "HANDLER-DISABLED", "HOVER", "IN-RANGE", "INDETERMINATE", "INLINE-TABLE", "INPUT-PLACEHOLDER", "INVALID", "KEYBOARD-ACTIVE", "LANG", "LAST-CHILD", "LAST-NODE", "LAST-OF-TYPE", "LEFT", "LINE-MARKER", "LINK", "LIST-BULLET", "LIST-NUMBER", "LOADING", "LOCAL-LINK", "LOCALE-DIR", "LWTHEME", "LWTHEME-DARKTEXT", "MARKER", "MATCHES", "MATH-ANONYMOUS", "MATH-COLUMNLINE", "MATH-FIRSTCOLUMN", "MATH-FIRSTROW", "MATH-FONT-SIZE", "MATH-FONT-STYLE", "MATH-LASTCOLUMN", "MATH-LASTROW", "MATH-ROWLINE", "MATH-STRETCHY", "NOT", "NTH-CHILD", "NTH-COLUMN", "NTH-LAST-CHILD", "NTH-LAST-COLUMN", "NTH-LAST-MATCH", "NTH-LAST-OF-TYPE", "NTH-MATCH", "NTH-OF-TYPE", "ONLY-CHILD", "ONLY-OF-TYPE", "OPTIONAL", "OUT-OF-RANGE", "OUTSIDE", "PAGE", "PAGE-COLUMN", "PAGE-SEQUENCE", "PAGEBREAK", "PAGECONTENT", "PAST", "PLACEHOLDER", "READ-ONLY", "READ-WRITE", "REPEAT-INDEX", "REPEAT-ITEM", "REQUIRED", "REVEAL", "RIGHT", "ROOT", "SCOPE", "SCROLLED-CANVAS", "SCROLLED-CONTENT", "SCROLLED-PAGE-SEQUENCE", "SELECTION", "SLOT", "SUBMIT-INVALID", "SUPPRESSED", "SVG-FOREIGN-CONTENT", "SYSTEM-METRIC", "TABLE", "TABLE-CELL", "TABLE-COLUMN", "TABLE-COLUMN-GROUP", "TABLE-OUTER", "TABLE-ROW", "TABLE-ROW-GROUP", "TARGET", "THUMB", "TICKS-AFTER", "TICKS-BEFORE", "TOOLTIP", "TRACK", "TREE-CELL", "TREE-CELL-TEXT", "TREE-CHECKBOX", "TREE-COLUMN", "TREE-DROP-FEEDBACK", "TREE-IMAGE", "TREE-INDENTATION", "TREE-LINE", "TREE-PROGRESSMETER", "TREE-ROW", "TREE-SEPARATOR", "TREE-TWISTY", "UI-INVALID", "UI-VALID", "USER-ERROR", "VALID", "VALUE", "VIEWPORT", "VIEWPORT-SCROLL", "VISITED", "WINDOW-INACTIVE", "XUL-ANONYMOUS-BLOCK" ); // Build list of functions local TKeywordList functionList = HighlightBuildKeywordList( HIGHLIGHT_WHOLEWORD | HIGHLIGHT_IGNORECASE, "ATTR", "CALC", "CANVAS", "COUNTER", "COUNTERS", "CROSS-FADE", "CUBIC-BEZIER", "CYCLE", "DEVICE-CMYK", "ELEMENT", "EXPRESSION", "HSL", "HSLA", "IMAGE", "IMAGE-RECT", "IMAGE-REGION", "LEADER", "MINMAX", "PENDING", "PERSPECTIVE", "RECT", "REPEATING-LINEAR-GRADIENT", "REPEATING-RADIAL-GRADIENT", "RGB", "RGBA", "ROTATE", "ROTATE3D", "ROTATEX", "ROTATEY", "ROTATEZ", "ROUNDDOWN", "ROUNDUP", "RUNNING", "SCALE", "SCALE3D", "SCALEX", "SCALEY", "SCALEZ", "SKEW", "SKEW3D", "SKEWX", "SKEWY", "SKEWZ", "STEPS", "STRING", "SYMBOLS", "TARGET-COUNTER", "TARGET-COUNTERS", "TARGET-PULL", "TARGET-TEXT", "TOGGLE", "TRANSLATE", "TRANSLATE3D", "TRANSLATEX", "TRANSLATEY", "TRANSLATEZ" ); // Main function to apply syntax highlighting to a line of text. // flags is preserved between lines and allows us to do multi-line comments. void HighlightLineRealtime( int64 line, wchar_t text[], int foreColors[], int backColors[], int count, ushort &flags ) { int i, len, pos, rule = flags; while( i < count ) { // Check multi-line comment - could be continued from a previous line if( (text[i] == '/' || rule == RULE_MULTILINE_COMMENT) && HighlightCheckMultiLineRule( text, count, "/*", "*/", i, rule, RULE_NONE, RULE_MULTILINE_COMMENT, foreColors, backColors, commentStyle ) ) continue; // Check single-line strings if( (text[i] == '\"') && HighlightCheckSingleLineRule( text, count, "\"", "\"", i, foreColors, backColors, stringStyle ) ) continue; if( (text[i] == '\'') && HighlightCheckSingleLineRule( text, count, "\'", "\'", i, foreColors, backColors, stringStyle ) ) continue; // Check regular keywords if( HighlightCheckKeywordRule( text, count, keywordList, i, foreColors, backColors, keywordStyle ) ) continue; // Check pseudo-class and pseudo-elements if( HighlightCheckKeywordRule( text, count, pseudoList, i, foreColors, backColors, dataTypeStyle ) ) continue; // Check functions if( HighlightCheckKeywordRule( text, count, functionList, i, foreColors, backColors, keywordStyle ) ) continue; // Nothing found - skip over whole words i = HighlightGetNextToken( text, count, i ); } // Save rule in the flags for the next line flags = rule; }