summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/tidy.vim
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--runtime/syntax/tidy.vim276
1 files changed, 276 insertions, 0 deletions
diff --git a/runtime/syntax/tidy.vim b/runtime/syntax/tidy.vim
new file mode 100644
index 0000000..7ffda90
--- /dev/null
+++ b/runtime/syntax/tidy.vim
@@ -0,0 +1,276 @@
+" Vim syntax file
+" Language: HMTL Tidy Configuration
+" Maintainer: Doug Kearns <dougkearns@gmail.com>
+" Last Change: 2020 Sep 4
+
+" Preamble {{{1
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn iskeyword @,48-57,-,_
+
+" Values {{{1
+syn match tidyWordSeparator contained ",\|\s" nextgroup=tidyWord skipwhite skipnl
+syn match tidyMuteIDSeparator contained ",\|\s" nextgroup=tidyMuteID skipwhite skipnl
+
+syn case ignore
+syn keyword tidyBoolean contained t[rue] f[alse] y[es] n[o] 1 0
+syn keyword tidyAutoBoolean contained t[rue] f[alse] y[es] n[o] 1 0 auto
+syn case match
+syn keyword tidyCustomTags contained no blocklevel empty inline pre
+syn keyword tidyDoctype contained html5 omit auto strict loose transitional user
+syn keyword tidyEncoding contained raw ascii latin0 latin1 utf8 iso2022 mac win1252 ibm858 utf16le utf16be utf16 big5 shiftjis
+syn keyword tidyNewline contained LF CRLF CR
+syn match tidyNumber contained "\<\d\+\>"
+syn keyword tidyRepeat contained keep-first keep-last
+syn keyword tidySorter contained alpha none
+syn region tidyString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline
+syn region tidyString contained start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline
+" Tag and attribute lists
+syn match tidyWord contained "\<\k\+\>:\@!" nextgroup=tidyWordSeparator skipwhite skipnl
+
+" Mute Message IDs {{{2
+syn keyword tidyMuteID ADDED_MISSING_CHARSET ANCHOR_DUPLICATED
+ \ ANCHOR_NOT_UNIQUE APOS_UNDEFINED APPLET_MISSING_ALT AREA_MISSING_ALT
+ \ ASCII_REQUIRES_DESCRIPTION ASSOCIATE_LABELS_EXPLICITLY
+ \ ASSOCIATE_LABELS_EXPLICITLY_FOR ASSOCIATE_LABELS_EXPLICITLY_ID
+ \ ATTRIBUTE_IS_NOT_ALLOWED ATTRIBUTE_VALUE_REPLACED
+ \ ATTR_VALUE_NOT_LCASE AUDIO_MISSING_TEXT_AIFF AUDIO_MISSING_TEXT_AU
+ \ AUDIO_MISSING_TEXT_RA AUDIO_MISSING_TEXT_RM AUDIO_MISSING_TEXT_SND
+ \ AUDIO_MISSING_TEXT_WAV BACKSLASH_IN_URI BAD_ATTRIBUTE_VALUE
+ \ BAD_ATTRIBUTE_VALUE_REPLACED BAD_CDATA_CONTENT BAD_SUMMARY_HTML5
+ \ BAD_SURROGATE_LEAD BAD_SURROGATE_PAIR BAD_SURROGATE_TAIL
+ \ CANT_BE_NESTED COERCE_TO_ENDTAG COLOR_CONTRAST_ACTIVE_LINK
+ \ COLOR_CONTRAST_LINK COLOR_CONTRAST_TEXT COLOR_CONTRAST_VISITED_LINK
+ \ CONTENT_AFTER_BODY CUSTOM_TAG_DETECTED DATA_TABLE_MISSING_HEADERS
+ \ DATA_TABLE_MISSING_HEADERS_COLUMN DATA_TABLE_MISSING_HEADERS_ROW
+ \ DATA_TABLE_REQUIRE_MARKUP_COLUMN_HEADERS
+ \ DATA_TABLE_REQUIRE_MARKUP_ROW_HEADERS DISCARDING_UNEXPECTED
+ \ DOCTYPE_AFTER_TAGS DOCTYPE_MISSING DUPLICATE_FRAMESET
+ \ ELEMENT_NOT_EMPTY ELEMENT_VERS_MISMATCH_ERROR
+ \ ELEMENT_VERS_MISMATCH_WARN ENCODING_MISMATCH
+ \ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_APPLET
+ \ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_EMBED
+ \ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_OBJECT
+ \ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_SCRIPT ESCAPED_ILLEGAL_URI
+ \ FILE_CANT_OPEN FILE_CANT_OPEN_CFG FILE_NOT_FILE FIXED_BACKSLASH
+ \ FOUND_STYLE_IN_BODY FRAME_MISSING_LONGDESC FRAME_MISSING_NOFRAMES
+ \ FRAME_MISSING_TITLE FRAME_SRC_INVALID FRAME_TITLE_INVALID_NULL
+ \ FRAME_TITLE_INVALID_SPACES HEADERS_IMPROPERLY_NESTED
+ \ HEADER_USED_FORMAT_TEXT ID_NAME_MISMATCH ILLEGAL_NESTING
+ \ ILLEGAL_URI_CODEPOINT ILLEGAL_URI_REFERENCE
+ \ IMAGE_MAP_SERVER_SIDE_REQUIRES_CONVERSION
+ \ IMG_ALT_SUSPICIOUS_FILENAME IMG_ALT_SUSPICIOUS_FILE_SIZE
+ \ IMG_ALT_SUSPICIOUS_PLACEHOLDER IMG_ALT_SUSPICIOUS_TOO_LONG
+ \ IMG_BUTTON_MISSING_ALT IMG_MAP_CLIENT_MISSING_TEXT_LINKS
+ \ IMG_MAP_SERVER_REQUIRES_TEXT_LINKS IMG_MISSING_ALT IMG_MISSING_DLINK
+ \ IMG_MISSING_LONGDESC IMG_MISSING_LONGDESC_DLINK
+ \ INFORMATION_NOT_CONVEYED_APPLET INFORMATION_NOT_CONVEYED_IMAGE
+ \ INFORMATION_NOT_CONVEYED_INPUT INFORMATION_NOT_CONVEYED_OBJECT
+ \ INFORMATION_NOT_CONVEYED_SCRIPT INSERTING_AUTO_ATTRIBUTE
+ \ INSERTING_TAG INVALID_ATTRIBUTE INVALID_NCR INVALID_SGML_CHARS
+ \ INVALID_UTF16 INVALID_UTF8 INVALID_XML_ID JOINING_ATTRIBUTE
+ \ LANGUAGE_INVALID LANGUAGE_NOT_IDENTIFIED
+ \ LAYOUT_TABLES_LINEARIZE_PROPERLY LAYOUT_TABLE_INVALID_MARKUP
+ \ LINK_TEXT_MISSING LINK_TEXT_NOT_MEANINGFUL
+ \ LINK_TEXT_NOT_MEANINGFUL_CLICK_HERE LINK_TEXT_TOO_LONG
+ \ LIST_USAGE_INVALID_LI LIST_USAGE_INVALID_OL LIST_USAGE_INVALID_UL
+ \ MALFORMED_COMMENT MALFORMED_COMMENT_DROPPING MALFORMED_COMMENT_EOS
+ \ MALFORMED_COMMENT_WARN MALFORMED_DOCTYPE METADATA_MISSING
+ \ METADATA_MISSING_REDIRECT_AUTOREFRESH MISMATCHED_ATTRIBUTE_ERROR
+ \ MISMATCHED_ATTRIBUTE_WARN MISSING_ATTRIBUTE MISSING_ATTR_VALUE
+ \ MISSING_DOCTYPE MISSING_ENDTAG_BEFORE MISSING_ENDTAG_FOR
+ \ MISSING_ENDTAG_OPTIONAL MISSING_IMAGEMAP MISSING_QUOTEMARK
+ \ MISSING_QUOTEMARK_OPEN MISSING_SEMICOLON MISSING_SEMICOLON_NCR
+ \ MISSING_STARTTAG MISSING_TITLE_ELEMENT MOVED_STYLE_TO_HEAD
+ \ MULTIMEDIA_REQUIRES_TEXT NESTED_EMPHASIS NESTED_QUOTATION
+ \ NEWLINE_IN_URI NEW_WINDOWS_REQUIRE_WARNING_BLANK
+ \ NEW_WINDOWS_REQUIRE_WARNING_NEW NOFRAMES_CONTENT
+ \ NOFRAMES_INVALID_CONTENT NOFRAMES_INVALID_LINK
+ \ NOFRAMES_INVALID_NO_VALUE NON_MATCHING_ENDTAG OBJECT_MISSING_ALT
+ \ OBSOLETE_ELEMENT OPTION_REMOVED OPTION_REMOVED_APPLIED
+ \ OPTION_REMOVED_UNAPPLIED POTENTIAL_HEADER_BOLD
+ \ POTENTIAL_HEADER_ITALICS POTENTIAL_HEADER_UNDERLINE
+ \ PREVIOUS_LOCATION PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_APPLET
+ \ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_EMBED
+ \ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_OBJECT
+ \ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_SCRIPT PROPRIETARY_ATTRIBUTE
+ \ PROPRIETARY_ATTR_VALUE PROPRIETARY_ELEMENT REMOVED_HTML5
+ \ REMOVE_AUTO_REDIRECT REMOVE_AUTO_REFRESH REMOVE_BLINK_MARQUEE
+ \ REMOVE_FLICKER_ANIMATED_GIF REMOVE_FLICKER_APPLET
+ \ REMOVE_FLICKER_EMBED REMOVE_FLICKER_OBJECT REMOVE_FLICKER_SCRIPT
+ \ REPEATED_ATTRIBUTE REPLACE_DEPRECATED_HTML_APPLET
+ \ REPLACE_DEPRECATED_HTML_BASEFONT REPLACE_DEPRECATED_HTML_CENTER
+ \ REPLACE_DEPRECATED_HTML_DIR REPLACE_DEPRECATED_HTML_FONT
+ \ REPLACE_DEPRECATED_HTML_ISINDEX REPLACE_DEPRECATED_HTML_MENU
+ \ REPLACE_DEPRECATED_HTML_S REPLACE_DEPRECATED_HTML_STRIKE
+ \ REPLACE_DEPRECATED_HTML_U REPLACING_ELEMENT REPLACING_UNEX_ELEMENT
+ \ SCRIPT_MISSING_NOSCRIPT SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_CLICK
+ \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_DOWN
+ \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_MOVE
+ \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OUT
+ \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OVER
+ \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_UP SKIPOVER_ASCII_ART
+ \ SPACE_PRECEDING_XMLDECL STRING_ARGUMENT_BAD STRING_CONTENT_LOOKS
+ \ STRING_DOCTYPE_GIVEN STRING_MISSING_MALFORMED STRING_MUTING_TYPE
+ \ STRING_NO_SYSID STRING_UNKNOWN_OPTION
+ \ STYLESHEETS_REQUIRE_TESTING_LINK
+ \ STYLESHEETS_REQUIRE_TESTING_STYLE_ATTR
+ \ STYLESHEETS_REQUIRE_TESTING_STYLE_ELEMENT
+ \ STYLE_SHEET_CONTROL_PRESENTATION SUSPECTED_MISSING_QUOTE
+ \ TABLE_MAY_REQUIRE_HEADER_ABBR TABLE_MAY_REQUIRE_HEADER_ABBR_NULL
+ \ TABLE_MAY_REQUIRE_HEADER_ABBR_SPACES TABLE_MISSING_CAPTION
+ \ TABLE_MISSING_SUMMARY TABLE_SUMMARY_INVALID_NULL
+ \ TABLE_SUMMARY_INVALID_PLACEHOLDER TABLE_SUMMARY_INVALID_SPACES
+ \ TAG_NOT_ALLOWED_IN TEXT_EQUIVALENTS_REQUIRE_UPDATING_APPLET
+ \ TEXT_EQUIVALENTS_REQUIRE_UPDATING_OBJECT
+ \ TEXT_EQUIVALENTS_REQUIRE_UPDATING_SCRIPT TOO_MANY_ELEMENTS
+ \ TOO_MANY_ELEMENTS_IN TRIM_EMPTY_ELEMENT UNESCAPED_AMPERSAND
+ \ UNEXPECTED_ENDTAG UNEXPECTED_ENDTAG_ERR UNEXPECTED_ENDTAG_IN
+ \ UNEXPECTED_END_OF_FILE UNEXPECTED_END_OF_FILE_ATTR
+ \ UNEXPECTED_EQUALSIGN UNEXPECTED_GT UNEXPECTED_QUOTEMARK
+ \ UNKNOWN_ELEMENT UNKNOWN_ELEMENT_LOOKS_CUSTOM UNKNOWN_ENTITY
+ \ USING_BR_INPLACE_OF VENDOR_SPECIFIC_CHARS WHITE_IN_URI
+ \ XML_DECLARATION_DETECTED XML_ID_SYNTAX
+ \ contained nextgroup=tidyMuteIDSeparator skipwhite skipnl
+
+" Options {{{1
+syn keyword tidyCustomTagsOption custom-tags contained nextgroup=tidyCustomTagsDelimiter
+syn match tidyCustomTagsDelimiter ":" nextgroup=tidyCustomTags contained skipwhite
+
+syn keyword tidyBooleanOption add-meta-charset add-xml-decl
+ \ add-xml-pi add-xml-space anchor-as-name ascii-chars
+ \ assume-xml-procins bare break-before-br clean coerce-endtags
+ \ decorate-inferred-ul drop-empty-paras drop-empty-elements
+ \ drop-font-tags drop-proprietary-attributes enclose-block-text
+ \ enclose-text escape-cdata escape-scripts fix-backslash
+ \ fix-style-tags fix-uri force-output gdoc gnu-emacs hide-comments
+ \ hide-endtags indent-attributes indent-cdata indent-with-tabs
+ \ input-xml join-classes join-styles keep-tabs keep-time language
+ \ literal-attributes logical-emphasis lower-literals markup
+ \ merge-emphasis mute-id ncr numeric-entities omit-optional-tags
+ \ output-html output-xhtml output-xml preserve-entities
+ \ punctuation-wrap quiet quote-ampersand quote-marks quote-nbsp raw
+ \ replace-color show-filename show-info show-meta-change show-warnings
+ \ skip-nested split strict-tags-attributes tidy-mark
+ \ uppercase-attributes uppercase-tags warn-proprietary-attributes
+ \ word-2000 wrap-asp wrap-attributes wrap-jste wrap-php
+ \ wrap-script-literals wrap-sections write-back
+ \ contained nextgroup=tidyBooleanDelimiter
+
+syn match tidyBooleanDelimiter ":" nextgroup=tidyBoolean contained skipwhite
+
+syn keyword tidyAutoBooleanOption fix-bad-comments indent merge-divs merge-spans output-bom show-body-only vertical-space contained nextgroup=tidyAutoBooleanDelimiter
+syn match tidyAutoBooleanDelimiter ":" nextgroup=tidyAutoBoolean contained skipwhite
+
+syn keyword tidyCSSSelectorOption css-prefix contained nextgroup=tidyCSSSelectorDelimiter
+syn match tidyCSSSelectorDelimiter ":" nextgroup=tidyCSSSelector contained skipwhite
+
+syn keyword tidyDoctypeOption doctype contained nextgroup=tidyDoctypeDelimiter
+syn match tidyDoctypeDelimiter ":" nextgroup=tidyDoctype,tidyString contained skipwhite
+
+syn keyword tidyEncodingOption char-encoding input-encoding output-encoding contained nextgroup=tidyEncodingDelimiter
+syn match tidyEncodingDelimiter ":" nextgroup=tidyEncoding contained skipwhite
+
+syn keyword tidyIntegerOption accessibility-check doctype-mode indent-spaces show-errors tab-size wrap contained nextgroup=tidyIntegerDelimiter
+syn match tidyIntegerDelimiter ":" nextgroup=tidyNumber contained skipwhite
+
+syn keyword tidyNameOption slide-style contained nextgroup=tidyNameDelimiter
+syn match tidyNameDelimiter ":" nextgroup=tidyName contained skipwhite
+
+syn keyword tidyNewlineOption newline contained nextgroup=tidyNewlineDelimiter
+syn match tidyNewlineDelimiter ":" nextgroup=tidyNewline contained skipwhite
+
+syn keyword tidyAttributesOption priority-attributes contained nextgroup=tidyAttributesDelimiter
+syn match tidyAttributesDelimiter ":" nextgroup=tidyWord contained skipwhite
+
+syn keyword tidyTagsOption new-blocklevel-tags new-empty-tags new-inline-tags new-pre-tags contained nextgroup=tidyTagsDelimiter
+syn match tidyTagsDelimiter ":" nextgroup=tidyWord contained skipwhite
+
+syn keyword tidyRepeatOption repeated-attributes contained nextgroup=tidyRepeatDelimiter
+syn match tidyRepeatDelimiter ":" nextgroup=tidyRepeat contained skipwhite
+
+syn keyword tidySorterOption sort-attributes contained nextgroup=tidySorterDelimiter
+syn match tidySorterDelimiter ":" nextgroup=tidySorter contained skipwhite
+
+syn keyword tidyStringOption alt-text error-file gnu-emacs-file output-file contained nextgroup=tidyStringDelimiter
+syn match tidyStringDelimiter ":" nextgroup=tidyString contained skipwhite
+
+syn keyword tidyMuteOption mute contained nextgroup=tidyMuteDelimiter
+syn match tidyMuteDelimiter ":" nextgroup=tidyMuteID contained skipwhite
+
+syn cluster tidyOptions contains=tidy.*Option
+
+" Option line anchor {{{1
+syn match tidyStart "^" nextgroup=@tidyOptions
+" Long standing bug - option lines (except the first) with leading whitespace
+" are silently ignored.
+syn match tidyErrorStart '^\s\+\ze\S'
+
+" Comments {{{1
+syn match tidyComment "^\s*//.*$" contains=tidyTodo
+syn match tidyComment "^\s*#.*$" contains=tidyTodo
+syn keyword tidyTodo TODO NOTE FIXME XXX contained
+
+" Default highlighting {{{1
+hi def link tidyAttributesOption Identifier
+hi def link tidyAutoBooleanOption Identifier
+hi def link tidyBooleanOption Identifier
+hi def link tidyCSSSelectorOption Identifier
+hi def link tidyCustomTagsOption Identifier
+hi def link tidyDoctypeOption Identifier
+hi def link tidyEncodingOption Identifier
+hi def link tidyIntegerOption Identifier
+hi def link tidyMuteOption Identifier
+hi def link tidyNameOption Identifier
+hi def link tidyNewlineOption Identifier
+hi def link tidyRepeatOption Identifier
+hi def link tidySorterOption Identifier
+hi def link tidyStringOption Identifier
+hi def link tidyTagsOption Identifier
+
+hi def link tidyAttributesDelimiter Special
+hi def link tidyAutoBooleanDelimiter Special
+hi def link tidyBooleanDelimiter Special
+hi def link tidyCSSSelectorDelimiter Special
+hi def link tidyCustomTagsDelimiter Special
+hi def link tidyDoctypeDelimiter Special
+hi def link tidyEncodingDelimiter Special
+hi def link tidyIntegerDelimiter Special
+hi def link tidyMuteDelimiter Special
+hi def link tidyNameDelimiter Special
+hi def link tidyNewlineDelimiter Special
+hi def link tidyRepeatDelimiter Special
+hi def link tidySorterDelimiter Special
+hi def link tidyStringDelimiter Special
+hi def link tidyTagsDelimiter Special
+
+hi def link tidyAutoBoolean Boolean
+hi def link tidyBoolean Boolean
+hi def link tidyCustomTags Constant
+hi def link tidyDoctype Constant
+hi def link tidyEncoding Constant
+hi def link tidyMuteID Constant
+hi def link tidyNewline Constant
+hi def link tidyNumber Number
+hi def link tidyRepeat Constant
+hi def link tidySorter Constant
+hi def link tidyString String
+hi def link tidyWord Constant
+
+hi def link tidyComment Comment
+hi def link tidyTodo Todo
+
+hi def link tidyErrorStart Error
+
+" Postscript {{{1
+let b:current_syntax = "tidy"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: ts=8 fdm=marker