Hey, Kristian, for us TextMate noobs can you explain how to add this bundle?
Thank, Owen On Aug 22, 4:39 pm, Kristian <[email protected]> wrote: > I just created this: > > { scopeName = 'text.dryml'; > fileTypes = ( 'dryml' ); > foldingStartMarker = '(?x) > > (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style| > script|ul|ol|li|form|dl|wrap|repeat|if|else|unless|view|section-group| > section|aside|header|footer|page|def)\b.*?> > |<!--(?!.*--\s*>) > |^<!--\ \#tminclude\ (?>.*?-->)$ > |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/))) > )'; > foldingStopMarker = '(?x) > > (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset| > style|script|ul|ol|li|form|dl|wrap|repeat|if|else|unless|view|section- > group|section|aside|header|footer|page|def)> > |^(?!.*?<!--).*?--\s*> > |^<!--\ end\ tminclude\ -->$ > |^[^{]*\} > )'; > patterns = ( > { name = 'meta.tag.any.dryml'; > begin = '(<)([a-zA-Z0-9:]++)(?=[^>]*></\2>)'; > end = '(>(<)/)(\2)(>)'; > beginCaptures = { > 1 = { name = > 'punctuation.definition.tag.html'; }; > 2 = { name = 'entity.name.tag.html'; }; > }; > endCaptures = { > 1 = { name = > 'punctuation.definition.tag.html'; }; > 2 = { name = > 'meta.scope.between-tag-pair.html'; }; > 3 = { name = 'entity.name.tag.html'; }; > 4 = { name = > 'punctuation.definition.tag.html'; }; > }; > patterns = ( { include = '#tag-stuff'; } ); > }, > { name = 'meta.tag.preprocessor.xml.html'; > begin = '(<\?)(xml)'; > end = '(\?>)'; > captures = { > 1 = { name = > 'punctuation.definition.tag.html'; }; > 2 = { name = 'entity.name.tag.xml.html'; }; > }; > patterns = ( > { include = '#tag-generic-attribute'; }, > { include = '#string-double-quoted'; }, > { include = '#string-single-quoted'; }, > ); > }, > { name = 'comment.block.html'; > begin = '<!--'; > end = '--\s*>'; > captures = { 0 = { name = > 'punctuation.definition.comment.html'; }; }; > patterns = ( > { name = > 'invalid.illegal.bad-comments-or-CDATA.html'; > match = '--'; > }, > { include = '#embedded-code'; }, > ); > }, > { name = 'meta.tag.block.any.html'; > begin = > '(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|frame| > frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet| > center|dir|hr|menu|pre)\b)'; > end = '(>)'; > beginCaptures = { > 1 = { name = > 'punctuation.definition.tag.begin.html'; }; > 2 = { name = > 'entity.name.tag.block.any.html'; }; > }; > endCaptures = { 1 = { name = > 'punctuation.definition.tag.end.html'; }; }; > patterns = ( { include = '#tag-stuff'; } ); > }, > { name = 'meta.tag.block.any.dryml'; > begin = > '(</?)((?i:def|table|form|wrap|repeat|with|if|else|unless| > view|section-group|section|aside|header|footer|page|field-list|view| > error-messages|select-many|card|collection|navigation|account-nav| > flash-messages|table-plus|sortable-collection|preview-with-more|login- > page|forgot-password-page|forgot-password-email-sent-page|account- > disabled-page|account-page)\b)'; > end = '(>)'; > beginCaptures = { > 1 = { name = > 'punctuation.definition.tag.begin.html'; }; > 2 = { name = > 'entity.name.tag.block.any.html'; }; > }; > endCaptures = { 1 = { name = > 'punctuation.definition.tag.end.html'; }; }; > patterns = ( { include = '#tag-stuff'; } ); > }, > { name = 'meta.tag.inline.any.dryml'; > begin = > '(</?)((?i:call-tag|partial|do|dev-user-changer|nil-view| > image|spinner|hobo-rapid-javascripts|name|type-name|collection-name|a| > count|theme-stylesheet|You|Your|A-or-An|a-or-a|comma-list|collection- > view|links-for-collection|has-many-editor|belongs-to-editor|select-one- > editor|string-select-editor|boolean-checkbox-editor|integer-select- > editor|editor|or-cancel|submit|remote-method-button|update-button| > delete-button|create-button|select-one|name-one|select-input|after- > submit|select-menu|check-many|hidden-id-field|input-many|input-all| > input|collection-input|search-card|empty-collection-message|record- > flags|transition-buton|nav-item|page-nav|page-scripts|permission- > denied-page|not-found-page|doctype|html|if-ie|stylesheet|javascript| > flash-message|ajax-progress|live-search|filter-menu|with-fields|with- > field-names|simple-page)\b)'; > end = '((?: ?/)?>)'; > beginCaptures = { > 1 = { name = > 'punctuation.definition.tag.begin.html'; }; > 2 = { name = > 'entity.name.tag.inline.any.html'; }; > }; > endCaptures = { 1 = { name = > 'punctuation.definition.tag.end.html'; }; }; > patterns = ( { include = '#tag-stuff'; } ); > }, > > { name = 'meta.tag.inline.any.html'; > begin = > '(</?)((?i:abbr|acronym|area|b|base|basefont|bdo|big|br| > button|caption|cite|code|col|colgroup|del|dfn|em|font|head|i|img|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)'; > end = '((?: ?/)?>)'; > beginCaptures = { > 1 = { name = > 'punctuation.definition.tag.begin.html'; }; > 2 = { name = > 'entity.name.tag.inline.any.html'; }; > }; > endCaptures = { 1 = { name = > 'punctuation.definition.tag.end.html'; }; }; > patterns = ( { include = '#tag-stuff'; } ); > }, > { name = 'meta.tag.other.html'; > begin = '(</?)([a-zA-Z0-9:]+)'; > end = '(>)'; > beginCaptures = { > 1 = { name = > 'punctuation.definition.tag.begin.html'; }; > 2 = { name = 'entity.name.tag.other.html'; }; > }; > endCaptures = { 1 = { name = > 'punctuation.definition.tag.end.html'; }; }; > patterns = ( { include = '#tag-stuff'; } ); > }, > { include = '#entities'; }, > { name = 'invalid.illegal.incomplete.html'; > match = '<>'; > }, > { name = 'invalid.illegal.bad-angle-bracket.html'; > match = '<'; > }, > ); > repository = { > embedded-code = { > patterns = ( > { include = '#ruby'; }, > { include = '#php'; }, > { include = '#smarty'; }, > { include = '#python'; }, > ); > }; > entities = { > patterns = ( > { name = > 'constant.character.entity.html'; > match = > '(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)'; > captures = { > 1 = { name = > 'punctuation.definition.entity.html'; }; > 3 = { name = > 'punctuation.definition.entity.html'; }; > }; > }, > { name = > 'invalid.illegal.bad-ampersand.html'; > match = '&'; > }, > ); > }; > ruby = { > patterns = ( > { name = 'comment.block.erb'; > begin = '<%+#'; > end = '%>'; > captures = { 0 = { name = > 'punctuation.definition.comment.erb'; }; }; > }, > { name = 'source.ruby.embedded.html'; > begin = '<%+(?!>)=?'; > end = '-?%>'; > captures = { 0 = { name = > 'punctuation.section.embedded.ruby'; }; }; > patterns = ( > { name = > 'comment.line.number-sign.ruby'; > match = > '(#).*?(?=-?%>)'; > captures = { 1 = { > name = > 'punctuation.definition.comment.ruby'; }; }; > }, > { include = > 'source.ruby'; }, > ); > }, > { name = > 'source.ruby.nitro.embedded.html'; > begin = '<\?r(?!>)=?'; > end = '-?\?>'; > captures = { 0 = { name = > 'punctuation.section.embedded.ruby.nitro'; }; }; > patterns = ( > { name = > 'comment.line.number-sign.ruby.nitro'; > match = > '(#).*?(?=-?\?>)'; > captures = { 1 = { > name = > 'punctuation.definition.comment.ruby.nitro'; }; }; > }, > { include = > 'source.ruby'; }, > ); > }, > ); > }; > string-double-quoted = { > name = 'string.quoted.double.html'; > begin = '"'; > end = '"'; > beginCaptures = { 0 = { name = > 'punctuation.definition.string.begin.html'; }; }; > endCaptures = { 0 = { name = > 'punctuation.definition.string.end.html'; }; }; > patterns = ( > { include = '#embedded-code'; }, > { include = '#entities'; }, > ); > }; > string-single-quoted = { > name = 'string.quoted.single.html'; > begin = "'"; > end = "'"; > beginCaptures = { 0 = { name = > 'punctuation.definition.string.begin.html'; }; }; > endCaptures = { 0 = { name = > 'punctuation.definition.string.end.html'; }; }; > patterns = ( > { include = '#embedded-code'; }, > { include = '#entities'; }, > ); > }; > tag-generic-attribute = { > name = 'entity.other.attribute-name.html'; > match = '\b([a-zA-Z\-:]+)'; > }; > tag-id-attribute = { > name = 'meta.attribute-with-value.id.html'; > begin = '\b(id)\b\s*(=)'; > end = '(?<=''|")'; > captures = { > 1 = { name = > 'entity.other.attribute-name.id.html'; }; > 2 = { name = > 'punctuation.separator.key-value.html'; }; > }; > patterns = ( > { name = 'string.quoted.double.html'; > contentName = 'meta.toc-list.id.html'; > begin = '"'; > end = '"'; > beginCaptures = { 0 = { name = > 'punctuation.definition.string.begin.html'; }; }; > endCaptures = { 0 = { name = > 'punctuation.definition.string.end.html'; }; }; > patterns = ( > { include = > '#embedded-code'; }, > { include = > '#entities'; }, > ); > }, > { name = 'string.quoted.single.html'; > contentName = 'meta.toc-list.id.html'; > begin = "'"; > end = "'"; > beginCaptures = { 0 = { name = > 'punctuation.definition.string.begin.html'; }; }; > endCaptures = { 0 = { name = > 'punctuation.definition.string.end.html'; }; }; > patterns = ( > { include = > '#embedded-code'; }, > { include = > '#entities'; }, > ); > }, > ); > }; > tag-stuff = { > patterns = ( > { include = '#tag-id-attribute'; }, > { include = '#tag-generic-attribute'; }, > { include = '#string-double-quoted'; }, > { include = '#string-single-quoted'; }, > { include = '#embedded-code'; }, > ); > }; > }; > > } > > -- > > Seems to work ok, but anyone please fix any bugs... > It should be easy to build on this with some commands and snippets to > speed development (content assist etc.) > Anyone? > > On Aug 22, 10:28 pm, Owen <[email protected]> wrote: > > > I think NicWilliamsstarted one, but my memory is hazy about this.... > > > On Aug 22, 2:51 pm, Kristian <[email protected]> wrote: > > > > Anyone out there knows of a DRYML plugin for textmate or any other IDE/ > > > editor that can do some highlighting or > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Hobo Users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/hobousers?hl=en -~----------~----~----~----~------~----~------~--~---
