neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

tidy.vim (13559B)


      1 " Vim syntax file
      2 " Language:	HMTL Tidy Configuration
      3 " Maintainer:	Doug Kearns <dougkearns@gmail.com>
      4 " Last Change:	2020 Sep 4
      5 
      6 " Preamble {{{1
      7 if exists("b:current_syntax")
      8  finish
      9 endif
     10 
     11 let s:cpo_save = &cpo
     12 set cpo&vim
     13 
     14 syn iskeyword @,48-57,-,_
     15 
     16 " Values {{{1
     17 syn match tidyWordSeparator	contained ",\|\s" nextgroup=tidyWord   skipwhite skipnl
     18 syn match tidyMuteIDSeparator	contained ",\|\s" nextgroup=tidyMuteID skipwhite skipnl
     19 
     20 syn case ignore
     21 syn keyword	tidyBoolean	contained t[rue] f[alse] y[es] n[o] 1 0
     22 syn keyword	tidyAutoBoolean	contained t[rue] f[alse] y[es] n[o] 1 0 auto
     23 syn case match
     24 syn keyword	tidyCustomTags	contained no blocklevel empty inline pre
     25 syn keyword	tidyDoctype	contained html5 omit auto strict loose transitional user
     26 syn keyword	tidyEncoding	contained raw ascii latin0 latin1 utf8 iso2022 mac win1252 ibm858 utf16le utf16be utf16 big5 shiftjis
     27 syn keyword	tidyNewline	contained LF CRLF CR
     28 syn match	tidyNumber	contained "\<\d\+\>"
     29 syn keyword	tidyRepeat	contained keep-first keep-last
     30 syn keyword	tidySorter	contained alpha none
     31 syn region	tidyString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline
     32 syn region	tidyString	contained start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline
     33 " Tag and attribute lists
     34 syn match	tidyWord	contained "\<\k\+\>:\@!" nextgroup=tidyWordSeparator skipwhite skipnl
     35 
     36 " Mute Message IDs {{{2
     37 syn keyword tidyMuteID ADDED_MISSING_CHARSET ANCHOR_DUPLICATED
     38 \ ANCHOR_NOT_UNIQUE APOS_UNDEFINED APPLET_MISSING_ALT AREA_MISSING_ALT
     39 \ ASCII_REQUIRES_DESCRIPTION ASSOCIATE_LABELS_EXPLICITLY
     40 \ ASSOCIATE_LABELS_EXPLICITLY_FOR ASSOCIATE_LABELS_EXPLICITLY_ID
     41 \ ATTRIBUTE_IS_NOT_ALLOWED ATTRIBUTE_VALUE_REPLACED
     42 \ ATTR_VALUE_NOT_LCASE AUDIO_MISSING_TEXT_AIFF AUDIO_MISSING_TEXT_AU
     43 \ AUDIO_MISSING_TEXT_RA AUDIO_MISSING_TEXT_RM AUDIO_MISSING_TEXT_SND
     44 \ AUDIO_MISSING_TEXT_WAV BACKSLASH_IN_URI BAD_ATTRIBUTE_VALUE
     45 \ BAD_ATTRIBUTE_VALUE_REPLACED BAD_CDATA_CONTENT BAD_SUMMARY_HTML5
     46 \ BAD_SURROGATE_LEAD BAD_SURROGATE_PAIR BAD_SURROGATE_TAIL
     47 \ CANT_BE_NESTED COERCE_TO_ENDTAG COLOR_CONTRAST_ACTIVE_LINK
     48 \ COLOR_CONTRAST_LINK COLOR_CONTRAST_TEXT COLOR_CONTRAST_VISITED_LINK
     49 \ CONTENT_AFTER_BODY CUSTOM_TAG_DETECTED DATA_TABLE_MISSING_HEADERS
     50 \ DATA_TABLE_MISSING_HEADERS_COLUMN DATA_TABLE_MISSING_HEADERS_ROW
     51 \ DATA_TABLE_REQUIRE_MARKUP_COLUMN_HEADERS
     52 \ DATA_TABLE_REQUIRE_MARKUP_ROW_HEADERS DISCARDING_UNEXPECTED
     53 \ DOCTYPE_AFTER_TAGS DOCTYPE_MISSING DUPLICATE_FRAMESET
     54 \ ELEMENT_NOT_EMPTY ELEMENT_VERS_MISMATCH_ERROR
     55 \ ELEMENT_VERS_MISMATCH_WARN ENCODING_MISMATCH
     56 \ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_APPLET
     57 \ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_EMBED
     58 \ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_OBJECT
     59 \ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_SCRIPT ESCAPED_ILLEGAL_URI
     60 \ FILE_CANT_OPEN FILE_CANT_OPEN_CFG FILE_NOT_FILE FIXED_BACKSLASH
     61 \ FOUND_STYLE_IN_BODY FRAME_MISSING_LONGDESC FRAME_MISSING_NOFRAMES
     62 \ FRAME_MISSING_TITLE FRAME_SRC_INVALID FRAME_TITLE_INVALID_NULL
     63 \ FRAME_TITLE_INVALID_SPACES HEADERS_IMPROPERLY_NESTED
     64 \ HEADER_USED_FORMAT_TEXT ID_NAME_MISMATCH ILLEGAL_NESTING
     65 \ ILLEGAL_URI_CODEPOINT ILLEGAL_URI_REFERENCE
     66 \ IMAGE_MAP_SERVER_SIDE_REQUIRES_CONVERSION
     67 \ IMG_ALT_SUSPICIOUS_FILENAME IMG_ALT_SUSPICIOUS_FILE_SIZE
     68 \ IMG_ALT_SUSPICIOUS_PLACEHOLDER IMG_ALT_SUSPICIOUS_TOO_LONG
     69 \ IMG_BUTTON_MISSING_ALT IMG_MAP_CLIENT_MISSING_TEXT_LINKS
     70 \ IMG_MAP_SERVER_REQUIRES_TEXT_LINKS IMG_MISSING_ALT IMG_MISSING_DLINK
     71 \ IMG_MISSING_LONGDESC IMG_MISSING_LONGDESC_DLINK
     72 \ INFORMATION_NOT_CONVEYED_APPLET INFORMATION_NOT_CONVEYED_IMAGE
     73 \ INFORMATION_NOT_CONVEYED_INPUT INFORMATION_NOT_CONVEYED_OBJECT
     74 \ INFORMATION_NOT_CONVEYED_SCRIPT INSERTING_AUTO_ATTRIBUTE
     75 \ INSERTING_TAG INVALID_ATTRIBUTE INVALID_NCR INVALID_SGML_CHARS
     76 \ INVALID_UTF16 INVALID_UTF8 INVALID_XML_ID JOINING_ATTRIBUTE
     77 \ LANGUAGE_INVALID LANGUAGE_NOT_IDENTIFIED
     78 \ LAYOUT_TABLES_LINEARIZE_PROPERLY LAYOUT_TABLE_INVALID_MARKUP
     79 \ LINK_TEXT_MISSING LINK_TEXT_NOT_MEANINGFUL
     80 \ LINK_TEXT_NOT_MEANINGFUL_CLICK_HERE LINK_TEXT_TOO_LONG
     81 \ LIST_USAGE_INVALID_LI LIST_USAGE_INVALID_OL LIST_USAGE_INVALID_UL
     82 \ MALFORMED_COMMENT MALFORMED_COMMENT_DROPPING MALFORMED_COMMENT_EOS
     83 \ MALFORMED_COMMENT_WARN MALFORMED_DOCTYPE METADATA_MISSING
     84 \ METADATA_MISSING_REDIRECT_AUTOREFRESH MISMATCHED_ATTRIBUTE_ERROR
     85 \ MISMATCHED_ATTRIBUTE_WARN MISSING_ATTRIBUTE MISSING_ATTR_VALUE
     86 \ MISSING_DOCTYPE MISSING_ENDTAG_BEFORE MISSING_ENDTAG_FOR
     87 \ MISSING_ENDTAG_OPTIONAL MISSING_IMAGEMAP MISSING_QUOTEMARK
     88 \ MISSING_QUOTEMARK_OPEN MISSING_SEMICOLON MISSING_SEMICOLON_NCR
     89 \ MISSING_STARTTAG MISSING_TITLE_ELEMENT MOVED_STYLE_TO_HEAD
     90 \ MULTIMEDIA_REQUIRES_TEXT NESTED_EMPHASIS NESTED_QUOTATION
     91 \ NEWLINE_IN_URI NEW_WINDOWS_REQUIRE_WARNING_BLANK
     92 \ NEW_WINDOWS_REQUIRE_WARNING_NEW NOFRAMES_CONTENT
     93 \ NOFRAMES_INVALID_CONTENT NOFRAMES_INVALID_LINK
     94 \ NOFRAMES_INVALID_NO_VALUE NON_MATCHING_ENDTAG OBJECT_MISSING_ALT
     95 \ OBSOLETE_ELEMENT OPTION_REMOVED OPTION_REMOVED_APPLIED
     96 \ OPTION_REMOVED_UNAPPLIED POTENTIAL_HEADER_BOLD
     97 \ POTENTIAL_HEADER_ITALICS POTENTIAL_HEADER_UNDERLINE
     98 \ PREVIOUS_LOCATION PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_APPLET
     99 \ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_EMBED
    100 \ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_OBJECT
    101 \ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_SCRIPT PROPRIETARY_ATTRIBUTE
    102 \ PROPRIETARY_ATTR_VALUE PROPRIETARY_ELEMENT REMOVED_HTML5
    103 \ REMOVE_AUTO_REDIRECT REMOVE_AUTO_REFRESH REMOVE_BLINK_MARQUEE
    104 \ REMOVE_FLICKER_ANIMATED_GIF REMOVE_FLICKER_APPLET
    105 \ REMOVE_FLICKER_EMBED REMOVE_FLICKER_OBJECT REMOVE_FLICKER_SCRIPT
    106 \ REPEATED_ATTRIBUTE REPLACE_DEPRECATED_HTML_APPLET
    107 \ REPLACE_DEPRECATED_HTML_BASEFONT REPLACE_DEPRECATED_HTML_CENTER
    108 \ REPLACE_DEPRECATED_HTML_DIR REPLACE_DEPRECATED_HTML_FONT
    109 \ REPLACE_DEPRECATED_HTML_ISINDEX REPLACE_DEPRECATED_HTML_MENU
    110 \ REPLACE_DEPRECATED_HTML_S REPLACE_DEPRECATED_HTML_STRIKE
    111 \ REPLACE_DEPRECATED_HTML_U REPLACING_ELEMENT REPLACING_UNEX_ELEMENT
    112 \ SCRIPT_MISSING_NOSCRIPT SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_CLICK
    113 \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_DOWN
    114 \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_MOVE
    115 \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OUT
    116 \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OVER
    117 \ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_UP SKIPOVER_ASCII_ART
    118 \ SPACE_PRECEDING_XMLDECL STRING_ARGUMENT_BAD STRING_CONTENT_LOOKS
    119 \ STRING_DOCTYPE_GIVEN STRING_MISSING_MALFORMED STRING_MUTING_TYPE
    120 \ STRING_NO_SYSID STRING_UNKNOWN_OPTION
    121 \ STYLESHEETS_REQUIRE_TESTING_LINK
    122 \ STYLESHEETS_REQUIRE_TESTING_STYLE_ATTR
    123 \ STYLESHEETS_REQUIRE_TESTING_STYLE_ELEMENT
    124 \ STYLE_SHEET_CONTROL_PRESENTATION SUSPECTED_MISSING_QUOTE
    125 \ TABLE_MAY_REQUIRE_HEADER_ABBR TABLE_MAY_REQUIRE_HEADER_ABBR_NULL
    126 \ TABLE_MAY_REQUIRE_HEADER_ABBR_SPACES TABLE_MISSING_CAPTION
    127 \ TABLE_MISSING_SUMMARY TABLE_SUMMARY_INVALID_NULL
    128 \ TABLE_SUMMARY_INVALID_PLACEHOLDER TABLE_SUMMARY_INVALID_SPACES
    129 \ TAG_NOT_ALLOWED_IN TEXT_EQUIVALENTS_REQUIRE_UPDATING_APPLET
    130 \ TEXT_EQUIVALENTS_REQUIRE_UPDATING_OBJECT
    131 \ TEXT_EQUIVALENTS_REQUIRE_UPDATING_SCRIPT TOO_MANY_ELEMENTS
    132 \ TOO_MANY_ELEMENTS_IN TRIM_EMPTY_ELEMENT UNESCAPED_AMPERSAND
    133 \ UNEXPECTED_ENDTAG UNEXPECTED_ENDTAG_ERR UNEXPECTED_ENDTAG_IN
    134 \ UNEXPECTED_END_OF_FILE UNEXPECTED_END_OF_FILE_ATTR
    135 \ UNEXPECTED_EQUALSIGN UNEXPECTED_GT UNEXPECTED_QUOTEMARK
    136 \ UNKNOWN_ELEMENT UNKNOWN_ELEMENT_LOOKS_CUSTOM UNKNOWN_ENTITY
    137 \ USING_BR_INPLACE_OF VENDOR_SPECIFIC_CHARS WHITE_IN_URI
    138 \ XML_DECLARATION_DETECTED XML_ID_SYNTAX
    139 \ contained nextgroup=tidyMuteIDSeparator skipwhite skipnl
    140 
    141 " Options {{{1
    142 syn keyword tidyCustomTagsOption custom-tags contained nextgroup=tidyCustomTagsDelimiter
    143 syn match tidyCustomTagsDelimiter ":" nextgroup=tidyCustomTags contained skipwhite
    144 
    145 syn keyword tidyBooleanOption add-meta-charset add-xml-decl
    146 \ add-xml-pi add-xml-space anchor-as-name ascii-chars
    147 \ assume-xml-procins bare break-before-br clean coerce-endtags
    148 \ decorate-inferred-ul drop-empty-paras drop-empty-elements
    149 \ drop-font-tags drop-proprietary-attributes enclose-block-text
    150 \ enclose-text escape-cdata escape-scripts fix-backslash
    151 \ fix-style-tags fix-uri force-output gdoc gnu-emacs hide-comments
    152 \ hide-endtags indent-attributes indent-cdata indent-with-tabs
    153 \ input-xml join-classes join-styles keep-tabs keep-time language
    154 \ literal-attributes logical-emphasis lower-literals markup
    155 \ merge-emphasis mute-id ncr numeric-entities omit-optional-tags
    156 \ output-html output-xhtml output-xml preserve-entities
    157 \ punctuation-wrap quiet quote-ampersand quote-marks quote-nbsp raw
    158 \ replace-color show-filename show-info show-meta-change show-warnings
    159 \ skip-nested split strict-tags-attributes tidy-mark
    160 \ uppercase-attributes uppercase-tags warn-proprietary-attributes
    161 \ word-2000 wrap-asp wrap-attributes wrap-jste wrap-php
    162 \ wrap-script-literals wrap-sections write-back
    163 \ contained nextgroup=tidyBooleanDelimiter
    164 
    165 syn match tidyBooleanDelimiter ":" nextgroup=tidyBoolean contained skipwhite
    166 
    167 syn keyword tidyAutoBooleanOption fix-bad-comments indent merge-divs merge-spans output-bom show-body-only vertical-space contained nextgroup=tidyAutoBooleanDelimiter
    168 syn match tidyAutoBooleanDelimiter ":" nextgroup=tidyAutoBoolean contained skipwhite
    169 
    170 syn keyword tidyCSSSelectorOption css-prefix contained nextgroup=tidyCSSSelectorDelimiter
    171 syn match tidyCSSSelectorDelimiter ":" nextgroup=tidyCSSSelector contained skipwhite
    172 
    173 syn keyword tidyDoctypeOption doctype contained nextgroup=tidyDoctypeDelimiter
    174 syn match tidyDoctypeDelimiter ":" nextgroup=tidyDoctype,tidyString contained skipwhite
    175 
    176 syn keyword tidyEncodingOption char-encoding input-encoding output-encoding contained nextgroup=tidyEncodingDelimiter
    177 syn match tidyEncodingDelimiter ":" nextgroup=tidyEncoding contained skipwhite
    178 
    179 syn keyword tidyIntegerOption accessibility-check doctype-mode indent-spaces show-errors tab-size wrap contained nextgroup=tidyIntegerDelimiter
    180 syn match tidyIntegerDelimiter ":" nextgroup=tidyNumber contained skipwhite
    181 
    182 syn keyword tidyNameOption slide-style contained nextgroup=tidyNameDelimiter
    183 syn match tidyNameDelimiter ":" nextgroup=tidyName contained skipwhite
    184 
    185 syn keyword tidyNewlineOption newline contained nextgroup=tidyNewlineDelimiter
    186 syn match tidyNewlineDelimiter ":" nextgroup=tidyNewline contained skipwhite
    187 
    188 syn keyword tidyAttributesOption priority-attributes contained nextgroup=tidyAttributesDelimiter
    189 syn match tidyAttributesDelimiter ":" nextgroup=tidyWord contained skipwhite
    190 
    191 syn keyword tidyTagsOption new-blocklevel-tags new-empty-tags new-inline-tags new-pre-tags contained nextgroup=tidyTagsDelimiter
    192 syn match tidyTagsDelimiter ":" nextgroup=tidyWord contained skipwhite
    193 
    194 syn keyword tidyRepeatOption repeated-attributes contained nextgroup=tidyRepeatDelimiter
    195 syn match tidyRepeatDelimiter ":" nextgroup=tidyRepeat contained skipwhite
    196 
    197 syn keyword tidySorterOption sort-attributes contained nextgroup=tidySorterDelimiter
    198 syn match tidySorterDelimiter ":" nextgroup=tidySorter contained skipwhite
    199 
    200 syn keyword tidyStringOption alt-text error-file gnu-emacs-file output-file contained nextgroup=tidyStringDelimiter
    201 syn match tidyStringDelimiter ":" nextgroup=tidyString contained skipwhite
    202 
    203 syn keyword tidyMuteOption mute contained nextgroup=tidyMuteDelimiter
    204 syn match tidyMuteDelimiter ":" nextgroup=tidyMuteID contained skipwhite
    205 
    206 syn cluster tidyOptions contains=tidy.*Option
    207 
    208 " Option line anchor {{{1
    209 syn match tidyStart "^" nextgroup=@tidyOptions
    210 " Long standing bug - option lines (except the first) with leading whitespace
    211 " are silently ignored.
    212 syn match tidyErrorStart '^\s\+\ze\S'
    213 
    214 " Comments {{{1
    215 syn match	tidyComment	"^\s*//.*$" contains=tidyTodo
    216 syn match	tidyComment	"^\s*#.*$"  contains=tidyTodo
    217 syn keyword	tidyTodo	TODO NOTE FIXME XXX contained
    218 
    219 " Default highlighting {{{1
    220 hi def link tidyAttributesOption	Identifier
    221 hi def link tidyAutoBooleanOption	Identifier
    222 hi def link tidyBooleanOption		Identifier
    223 hi def link tidyCSSSelectorOption	Identifier
    224 hi def link tidyCustomTagsOption	Identifier
    225 hi def link tidyDoctypeOption		Identifier
    226 hi def link tidyEncodingOption		Identifier
    227 hi def link tidyIntegerOption		Identifier
    228 hi def link tidyMuteOption		Identifier
    229 hi def link tidyNameOption		Identifier
    230 hi def link tidyNewlineOption		Identifier
    231 hi def link tidyRepeatOption		Identifier
    232 hi def link tidySorterOption		Identifier
    233 hi def link tidyStringOption		Identifier
    234 hi def link tidyTagsOption		Identifier
    235 
    236 hi def link tidyAttributesDelimiter	Special
    237 hi def link tidyAutoBooleanDelimiter	Special
    238 hi def link tidyBooleanDelimiter	Special
    239 hi def link tidyCSSSelectorDelimiter	Special
    240 hi def link tidyCustomTagsDelimiter	Special
    241 hi def link tidyDoctypeDelimiter	Special
    242 hi def link tidyEncodingDelimiter	Special
    243 hi def link tidyIntegerDelimiter	Special
    244 hi def link tidyMuteDelimiter		Special
    245 hi def link tidyNameDelimiter		Special
    246 hi def link tidyNewlineDelimiter	Special
    247 hi def link tidyRepeatDelimiter		Special
    248 hi def link tidySorterDelimiter		Special
    249 hi def link tidyStringDelimiter		Special
    250 hi def link tidyTagsDelimiter		Special
    251 
    252 hi def link tidyAutoBoolean		Boolean
    253 hi def link tidyBoolean			Boolean
    254 hi def link tidyCustomTags		Constant
    255 hi def link tidyDoctype			Constant
    256 hi def link tidyEncoding		Constant
    257 hi def link tidyMuteID			Constant
    258 hi def link tidyNewline			Constant
    259 hi def link tidyNumber			Number
    260 hi def link tidyRepeat			Constant
    261 hi def link tidySorter			Constant
    262 hi def link tidyString			String
    263 hi def link tidyWord			Constant
    264 
    265 hi def link tidyComment			Comment
    266 hi def link tidyTodo			Todo
    267 
    268 hi def link tidyErrorStart		Error
    269 
    270 " Postscript {{{1
    271 let b:current_syntax = "tidy"
    272 
    273 let &cpo = s:cpo_save
    274 unlet s:cpo_save
    275 
    276 " vim: ts=8 fdm=marker