Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Improvements to DRYML syntax highlighting

  • Loading branch information...
commit c2de31f4247ab67f25801a8a9c262f48813ec2fc 1 parent c4922cb
@jgarlick jgarlick authored
Showing with 793 additions and 3 deletions.
  1. +793 −3 Syntaxes/DRYML.tmLanguage
View
796 Syntaxes/DRYML.tmLanguage
@@ -7,9 +7,23 @@
<string>dryml</string>
</array>
<key>foldingStartMarker</key>
- <string>^\s*(&lt;[^!?%/](?!.+?(/&gt;|&lt;/.+?&gt;))|&lt;[!%]--(?!.+?--%?&gt;)|&lt;%[!]?(?!.+?%&gt;))</string>
+ <string>(?x)
+ (&lt;(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?&gt;
+ |&lt;!--(?!.*--\s*&gt;)
+ |^&lt;!--\ \#tminclude\ (?&gt;.*?--&gt;)$
+ |&lt;\?(?:php)?.*\b(if|for(each)?|while)\b.+:
+ |\{\{?(if|foreach|capture|literal|foreach|php|section|strip)
+ |\{\s*($|\?&gt;\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
+ )</string>
<key>foldingStopMarker</key>
- <string>^\s*(&lt;/[^&gt;]+&gt;|[/%]&gt;|--&gt;)\s*$</string>
+ <string>(?x)
+ (&lt;/(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)&gt;
+ |^(?!.*?&lt;!--).*?--\s*&gt;
+ |^&lt;!--\ end\ tminclude\ --&gt;$
+ |&lt;\?(?:php)?.*\bend(if|for(each)?|while)\b
+ |\{\{?/(if|foreach|capture|literal|foreach|php|section|strip)
+ |^[^{]*\}
+ )</string>
<key>keyEquivalent</key>
<string>^~D</string>
<key>name</key>
@@ -17,10 +31,786 @@
<key>patterns</key>
<array>
<dict>
+ <key>begin</key>
+ <string>(&lt;)([a-zA-Z0-9:]+)(?=[^&gt;]*&gt;&lt;/\2&gt;)</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(&gt;(&lt;)/)(\2)(&gt;)</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>meta.scope.between-tag-pair.html</string>
+ </dict>
+ <key>3</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.html</string>
+ </dict>
+ <key>4</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>meta.tag.any.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-stuff</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(&lt;\?)(xml)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.xml.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(\?&gt;)</string>
+ <key>name</key>
+ <string>meta.tag.preprocessor.xml.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-generic-attribute</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#string-double-quoted</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#string-single-quoted</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>&lt;!--</string>
+ <key>captures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>--\s*&gt;</string>
+ <key>name</key>
+ <string>comment.block.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#embedded-code</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>&lt;!</string>
+ <key>captures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>&gt;</string>
+ <key>name</key>
+ <string>meta.tag.sgml.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>begin</key>
+ <string>(DOCTYPE)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.doctype.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(?=&gt;)</string>
+ <key>name</key>
+ <string>meta.tag.sgml.doctype.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>"[^"&gt;]*"</string>
+ <key>name</key>
+ <string>string.quoted.double.doctype.identifiers-and-DTDs.html</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>\[CDATA\[</string>
+ <key>end</key>
+ <string>]](?=&gt;)</string>
+ <key>name</key>
+ <string>constant.other.inline-data.html</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>(\s*)(?!--|&gt;)\S(\s*)</string>
+ <key>name</key>
+ <string>invalid.illegal.bad-comments-or-CDATA.html</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
<key>include</key>
- <string>text.html.basic</string>
+ <string>#embedded-code</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(?:^\s+)?(&lt;)((?i:style))\b(?![^&gt;]*/&gt;)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.style.html</string>
+ </dict>
+ <key>3</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(&lt;/)((?i:style))(&gt;)(?:\s*\n)?</string>
+ <key>name</key>
+ <string>source.css.embedded.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-stuff</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(&gt;)</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(?=&lt;/(?i:style))</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#embedded-code</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>source.css</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(?:^\s+)?(&lt;)((?i:script))\b(?![^&gt;]*/&gt;)</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.script.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(?&lt;=&lt;/(script|SCRIPT))(&gt;)(?:\s*\n)?</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>source.js.embedded.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-stuff</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(?&lt;!&lt;/(?:script|SCRIPT))(&gt;)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.script.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(&lt;/)((?i:script))</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.js</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(//).*?((?=&lt;/script)|$\n?)</string>
+ <key>name</key>
+ <string>comment.line.double-slash.js</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>/\*</string>
+ <key>captures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.js</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>\*/|(?=&lt;/script)</string>
+ <key>name</key>
+ <string>comment.block.js</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#php</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>source.js</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(&lt;/?)((?i:body|head|html)\b)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.structure.any.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(&gt;)</string>
+ <key>name</key>
+ <string>meta.tag.structure.any.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-stuff</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(&lt;/?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\b)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.block.any.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(&gt;)</string>
+ <key>name</key>
+ <string>meta.tag.block.any.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-stuff</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(&lt;/?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\b)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.inline.any.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(&gt;)</string>
+ <key>name</key>
+ <string>meta.tag.inline.any.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-stuff</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(&lt;/?)([a-zA-Z0-9:-]+)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.tag.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.tag.other.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(&gt;)</string>
+ <key>name</key>
+ <string>meta.tag.other.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-stuff</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#entities</string>
</dict>
</array>
+ <key>repository</key>
+ <dict>
+ <key>embedded-code</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#ruby</string>
+ </dict>
+ </array>
+ </dict>
+ <key>entities</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.entity.html</string>
+ </dict>
+ <key>3</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.entity.html</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(&amp;)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)</string>
+ <key>name</key>
+ <string>constant.character.entity.html</string>
+ </dict>
+ </array>
+ </dict>
+ <key>ruby</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>begin</key>
+ <string>&lt;%+#</string>
+ <key>captures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.erb</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>%&gt;</string>
+ <key>name</key>
+ <string>comment.block.erb</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>&lt;%+(?!&gt;)=?</string>
+ <key>captures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.section.embedded.ruby</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>-?%&gt;</string>
+ <key>name</key>
+ <string>source.ruby.embedded.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.ruby</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(#).*?(?=-?%&gt;)</string>
+ <key>name</key>
+ <string>comment.line.number-sign.ruby</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>source.ruby</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>&lt;\?r(?!&gt;)=?</string>
+ <key>captures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.section.embedded.ruby.nitro</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>-?\?&gt;</string>
+ <key>name</key>
+ <string>source.ruby.nitro.embedded.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.ruby.nitro</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(#).*?(?=-?\?&gt;)</string>
+ <key>name</key>
+ <string>comment.line.number-sign.ruby.nitro</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>source.ruby</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ <key>string-double-quoted</key>
+ <dict>
+ <key>begin</key>
+ <string>"</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.begin.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>"</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.html</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.double.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#embedded-code</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#entities</string>
+ </dict>
+ </array>
+ </dict>
+ <key>string-single-quoted</key>
+ <dict>
+ <key>begin</key>
+ <string>'</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.begin.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>'</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.html</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.single.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#embedded-code</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#entities</string>
+ </dict>
+ </array>
+ </dict>
+ <key>tag-generic-attribute</key>
+ <dict>
+ <key>match</key>
+ <string>\b([a-zA-Z\-:_]+)</string>
+ <key>name</key>
+ <string>entity.other.attribute-name.html</string>
+ </dict>
+ <key>tag-id-attribute</key>
+ <dict>
+ <key>begin</key>
+ <string>\b(id)\b\s*(=)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>entity.other.attribute-name.id.html</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.separator.key-value.html</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(?&lt;='|")</string>
+ <key>name</key>
+ <string>meta.attribute-with-value.id.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>begin</key>
+ <string>"</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.begin.html</string>
+ </dict>
+ </dict>
+ <key>contentName</key>
+ <string>meta.toc-list.id.html</string>
+ <key>end</key>
+ <string>"</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.html</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.double.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#embedded-code</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#entities</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>'</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.begin.html</string>
+ </dict>
+ </dict>
+ <key>contentName</key>
+ <string>meta.toc-list.id.html</string>
+ <key>end</key>
+ <string>'</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.html</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.single.html</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#embedded-code</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#entities</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ <key>tag-stuff</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#tag-id-attribute</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#tag-generic-attribute</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#string-double-quoted</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#string-single-quoted</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#embedded-code</string>
+ </dict>
+ </array>
+ </dict>
+ </dict>
<key>scopeName</key>
<string>text.html.ruby.dryml</string>
<key>uuid</key>
Please sign in to comment.
Something went wrong with that request. Please try again.