Last active
October 24, 2015 02:05
-
-
Save jguice/a75d656cf546a0a4bc25 to your computer and use it in GitHub Desktop.
Sublime Text 3 RubyTest custom tmLanguage file (allows coloring of more rspec 3 output)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
<plist version="1.0"> | |
<!-- TODO put most specific matchers first --> | |
<!-- TODO reorg, cleanup, and comment entries (e.g. which ones are for rspec 3, etc.) --> | |
<dict> | |
<key>bundleUUID</key> | |
<string>72174d10-bb12-11e0-962b-112233445566</string> | |
<key>name</key> | |
<string>TestConsole</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>comment</key> | |
<string>pending method</string> | |
<key>match</key> | |
<string>.+\(PENDING: .+</string> | |
<key>name</key> | |
<string>test.pending</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test fail detail</string> | |
<key>match</key> | |
<string>(rspec .+:\d+)</string> | |
<key>name</key> | |
<string>test.fail</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>comment</string> | |
<key>match</key> | |
<string>\s*#\s+.+</string> | |
<key>name</key> | |
<string>test.comment</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test fail message</string> | |
<key>match</key> | |
<string>.+\(FAILED.+</string> | |
<key>name</key> | |
<string>test.fail</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test fail message</string> | |
<key>match</key> | |
<string>\s+Failure/Error: .+</string> | |
<key>name</key> | |
<string>test.fail</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test fail message</string> | |
<key>match</key> | |
<string>\s{5,}expected .+</string> | |
<key>name</key> | |
<string>test.fail</string> | |
</dict> | |
<!-- diff --> | |
<!-- TODO add scopes for diff elements instead of reusing others --> | |
<dict> | |
<key>comment</key> | |
<string>diff header</string> | |
<key>match</key> | |
<string>\s+Diff:</string> | |
<key>name</key> | |
<string>test.fail</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>diff info</string> | |
<key>match</key> | |
<string>\s+@@.+</string> | |
<key>name</key> | |
<string>test.method</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>diff removed</string> | |
<key>match</key> | |
<string>\s+-.+</string> | |
<key>name</key> | |
<string>diff.removed</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>diff added</string> | |
<key>match</key> | |
<string>\s+\+.+</string> | |
<key>name</key> | |
<string>test.pass</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>it message</string> | |
<key>match</key> | |
<string>\s{4}[^#].+</string> | |
<key>name</key> | |
<string>test.pass</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>it message</string> | |
<key>match</key> | |
<string>\s{2}#.+</string> | |
<key>name</key> | |
<string>test.method</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>pending class#method</string> | |
<key>match</key> | |
<string>\s{2}[a-zA-Z]+#[a-z]+ .*</string> | |
<key>name</key> | |
<string>test.pending</string> | |
</dict> | |
<!-- think this actually looks nice as white --> | |
<!-- <dict> | |
<key>comment</key> | |
<string>pending message</string> | |
<key>match</key> | |
<string>Pending:</string> | |
<key>name</key> | |
<string>test.pending</string> | |
</dict> --> | |
<dict> | |
<key>comment</key> | |
<string>deprecation warning</string> | |
<key>match</key> | |
<string>Deprecation Warnings:</string> | |
<key>name</key> | |
<string>test.deprecation</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test pass</string> | |
<key>match</key> | |
<string>(^|\s|)\d+ (deprecation warnings* total)</string> | |
<key>name</key> | |
<string>test.deprecation</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test pass</string> | |
<key>match</key> | |
<string>(^|\s|)\d+ (tests|assertions|examples?|passed)</string> | |
<key>name</key> | |
<string>test.pass</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test error</string> | |
<key>match</key> | |
<string>E, .+</string> | |
<key>name</key> | |
<string>test.error</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test error</string> | |
<key>match</key> | |
<string>(\d+ errors)|(\d+\) Error:|Failing \w*:|cucumber(\s\S*)|\d+ failed)</string> | |
<key>name</key> | |
<string>test.error</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test fail</string> | |
<key>match</key> | |
<string>(\d+ failures?)|(\d+\) Failure:)</string> | |
<key>name</key> | |
<string>test.fail</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>test fail</string> | |
<key>match</key> | |
<string>\s{2}\d\) .+</string> | |
<key>name</key> | |
<string>foreground</string> | |
</dict> | |
<dict> | |
<key>skipped</key> | |
<string>test cucumber skipped</string> | |
<key>match</key> | |
<string>\d+ skipped</string> | |
<key>name</key> | |
<string>test.skipped</string> | |
</dict> | |
<dict> | |
<key>pending</key> | |
<string>test cucumber pending in summary</string> | |
<key>match</key> | |
<string>(\d+ pending|\d+ undefined)</string> | |
<key>name</key> | |
<string>test.pending</string> | |
</dict> | |
<!-- Matches the Scenario: description line comment and the comment portion of the failing scenarios block of text --> | |
<dict> | |
<key>comment</key> | |
<string>test cucumber comment</string> | |
<key>match</key> | |
<string>\s#\s{1}.+</string> | |
<key>name</key> | |
<string>test.comment</string> | |
</dict> | |
<!-- Cuke PASS --> | |
<dict> | |
<key>comment</key> | |
<string>test cucumber comment</string> | |
<key>match</key> | |
<string>(\s{4}Given.+|\s{4}When.+|\s{4}Then.+|\s{4}And.+|\s{4}But.+)(#\s\S+$)</string> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>test.pass</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>test.comment</string> | |
</dict> | |
</dict> | |
</dict> | |
<!-- End Cuke PASS --> | |
<!-- Print code or other non passing/failing/pending stuff in step --> | |
<dict> | |
<key>comment</key> | |
<string>test cucumber comment</string> | |
<key>match</key> | |
<string>(^\s{6}.+)</string> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>test.skipped</string> | |
</dict> | |
</dict> | |
</dict> | |
<!-- End Print code in step --> | |
<!-- Cuke Pending --> | |
<dict> | |
<key>begin</key> | |
<string>.*(#\s\S+?\s)(#PEND)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>test.pending</string> | |
</dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>test.comment</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>test.hidden_comment</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(^\s+$)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string>^\s{6}.*</string> | |
<key>name</key> | |
<string>test.pending</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(\s{4}Given.+|\s{4}When.+|\s{4}Then.+|\s{4}And.+|\s{4}But.+)(#.+)</string> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>test.skipped</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>test.comment</string> | |
</dict> | |
</dict> | |
</dict> | |
</array> | |
</dict> | |
<!-- End Cuke Pending --> | |
<!-- Cuke Error --> | |
<dict> | |
<key>begin</key> | |
<string>.*(#\s\S+?\s)(#ERROR)</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>test.error</string> | |
</dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>test.comment</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>test.hidden_comment</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(^\s{2}Scenario:)|(^Failing Scenarios:)</string> | |
<key>endCaptures</key> | |
<dict> | |
<!-- using the 2nd key allows us to only target the Failing Scenarios: text at the bottom --> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>test.error</string> | |
</dict> | |
</dict> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string>^\s{6}.*</string> | |
<key>name</key> | |
<string>test.error</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>(\s{4}Given.+|\s{4}When.+|\s{4}Then.+|\s{4}And.+|\s{4}But.+)(#.+)</string> | |
<key>captures</key> | |
<dict> | |
<key>1</key> | |
<dict> | |
<key>name</key> | |
<string>test.skipped</string> | |
</dict> | |
<key>2</key> | |
<dict> | |
<key>name</key> | |
<string>test.comment</string> | |
</dict> | |
</dict> | |
</dict> | |
</array> | |
</dict> | |
<!-- End Cuke Error --> | |
<!-- Cuke Undefined section (at bottom) --> | |
<dict> | |
<key>begin</key> | |
<string>^You can implement step definitions.+</string> | |
<key>beginCaptures</key> | |
<dict> | |
<key>0</key> | |
<dict> | |
<key>name</key> | |
<string>test.pending</string> | |
</dict> | |
</dict> | |
<key>end</key> | |
<string>(^\t)</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string>.*</string> | |
<key>name</key> | |
<string>test.pending</string> | |
</dict> | |
</array> | |
</dict> | |
<!-- End Undefined --> | |
<dict> | |
<key>comment</key> | |
<string>dots painting</string> | |
<key>begin</key> | |
<string>Started</string> | |
<key>patterns</key> | |
<array> | |
<dict> | |
<key>match</key> | |
<string>\.+|passed</string> | |
<key>name</key> | |
<string>test.pass</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>E+</string> | |
<key>name</key> | |
<string>test.error</string> | |
</dict> | |
<dict> | |
<key>match</key> | |
<string>F+</string> | |
<key>name</key> | |
<string>test.fail</string> | |
</dict> | |
</array> | |
<key>end</key> | |
<string>Finished</string> | |
</dict> | |
<dict> | |
<key>comment</key> | |
<string>color syntax response</string> | |
<key>match</key> | |
<string>Syntax OK</string> | |
<key>name</key> | |
<string>test.pass</string> | |
</dict> | |
</array> | |
<key>scopeName</key> | |
<string>tests.ruby</string> | |
<key>uuid</key> | |
<string>72174d10-bb12-11e0-962b-112233445566</string> | |
</dict> | |
</plist> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment