Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Subtree merged in CoffeeScript.tmbundle

  • Loading branch information...
commit 77154d1e3d755aa66ffa02491f81339994cf2d4c 2 parents bdfd68f + beb4d7e
@noniq noniq authored
Showing with 1,582 additions and 0 deletions.
  1. +1 −0  CoffeeScript.tmbundle/.gitignore
  2. +159 −0 CoffeeScript.tmbundle/Commands/Align Assignments.tmCommand
  3. +6 −0 CoffeeScript.tmbundle/Commands/CoffeeScript.sublime-build
  4. +35 −0 CoffeeScript.tmbundle/Commands/Compile and Display JS.tmCommand
  5. +34 −0 CoffeeScript.tmbundle/Commands/Insert Heredoc comment.tmCommand
  6. +34 −0 CoffeeScript.tmbundle/Commands/Insert Heredoc triple double quotes.tmCommand
  7. +34 −0 CoffeeScript.tmbundle/Commands/Insert Heredoc triple single quotes.tmCommand
  8. +27 −0 CoffeeScript.tmbundle/Commands/New Function.tmCommand
  9. +25 −0 CoffeeScript.tmbundle/Commands/Run selected text.tmCommand
  10. +24 −0 CoffeeScript.tmbundle/Commands/Run.tmCommand
  11. +36 −0 CoffeeScript.tmbundle/Preferences/CoffeeScript.tmPreferences
  12. +27 −0 CoffeeScript.tmbundle/Preferences/Indent.tmPreferences
  13. +19 −0 CoffeeScript.tmbundle/Preferences/Symbol List Method 2.tmPreferences
  14. +17 −0 CoffeeScript.tmbundle/Preferences/Symbol List Method.tmPreferences
  15. +36 −0 CoffeeScript.tmbundle/README.markdown
  16. +17 −0 CoffeeScript.tmbundle/Snippets/Array comprehension.tmSnippet
  17. +17 −0 CoffeeScript.tmbundle/Snippets/Bound Function.tmSnippet
  18. +20 −0 CoffeeScript.tmbundle/Snippets/Class.tmSnippet
  19. +17 −0 CoffeeScript.tmbundle/Snippets/Else if.tmSnippet
  20. +19 −0 CoffeeScript.tmbundle/Snippets/Function.tmSnippet
  21. +19 −0 CoffeeScript.tmbundle/Snippets/If __ Else.tmSnippet
  22. +17 −0 CoffeeScript.tmbundle/Snippets/If.tmSnippet
  23. +18 −0 CoffeeScript.tmbundle/Snippets/Interpolated Code.tmSnippet
  24. +17 −0 CoffeeScript.tmbundle/Snippets/Object comprehension.tmSnippet
  25. +17 −0 CoffeeScript.tmbundle/Snippets/Range comprehension (exclusive).tmSnippet
  26. +17 −0 CoffeeScript.tmbundle/Snippets/Range comprehension (inclusive).tmSnippet
  27. +16 −0 CoffeeScript.tmbundle/Snippets/Raw javascript.tmSnippet
  28. +18 −0 CoffeeScript.tmbundle/Snippets/Switch.tmSnippet
  29. +16 −0 CoffeeScript.tmbundle/Snippets/Ternary If.tmSnippet
  30. +19 −0 CoffeeScript.tmbundle/Snippets/Try __ Catch.tmSnippet
  31. +16 −0 CoffeeScript.tmbundle/Snippets/Unless.tmSnippet
  32. +16 −0 CoffeeScript.tmbundle/Snippets/log.tmSnippet
  33. +16 −0 CoffeeScript.tmbundle/Snippets/require.tmSnippet
  34. +642 −0 CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage
  35. +114 −0 CoffeeScript.tmbundle/info.plist
View
1  CoffeeScript.tmbundle/.gitignore
@@ -0,0 +1 @@
+*.cache
View
159 CoffeeScript.tmbundle/Commands/Align Assignments.tmCommand
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/usr/bin/env ruby
+#
+# Based on (from Source.tmbundle):
+#
+# Assignment block tidier, version 0.1.
+#
+# Copyright Chris Poirier 2006.
+# Licensed under the Academic Free License version 3.0.
+#
+# This script can be used as a command for TextMate to align all
+# of the assignment signs within a block of text. When using it with
+# TextMate, set the command input to "Selected Text" or "Document",
+# and the output to "Replace Selected Text". Map it to a key
+# equivalent, and any time you want to tidy up a block, either
+# select it, or put your cursor somewhere within it; then hit the
+# key equivalent. Voila.
+#
+# Note that this is the first version of the script, and it hasn't
+# been heavily tested. You might encounter a bug or two.
+#
+# Note (by Dr Nic) - the "first version" seems to have worked for years.
+# I hope the CoffeeScript version is as successful.
+#
+# Per the license, use of this script is ENTIRELY at your own risk.
+# See the license for full details (they override anything I've
+# said here).
+
+lines = STDIN.readlines()
+selected_text = ENV.member?("TM_SELECTED_TEXT")
+
+relevant_line_pattern = /^[^:]+:/
+column_search_pattern = /[\t ]*:/
+
+comments = []
+
+begin
+ #
+ # If called on a selection, every assignment statement
+ # is in the block. If called on the document, we start on the
+ # current line and look up and down for the start and end of the
+ # block.
+
+ if selected_text then
+ block_top = 1
+ block_bottom = lines.length
+ else
+
+ #
+ # We start looking on the current line. However, if the
+ # current line doesn't match the pattern, we may be just
+ # after or just before a block, and we should check. If
+ # neither, we are done.
+
+ start_on = ENV["TM_LINE_NUMBER"].to_i
+ block_top = lines.length + 1
+ block_bottom = 0
+ search_top = 1
+ search_bottom = lines.length
+ search_failed = false
+
+ if lines[start_on - 1] !~ relevant_line_pattern then
+ if lines[start_on - 2] =~ relevant_line_pattern then
+ search_bottom = start_on = start_on - 1
+ elsif lines[start_on] =~ relevant_line_pattern then
+ search_top = start_on = start_on
+ else
+ search_failed = true
+ end
+ end
+
+ #
+ # Now with the search boundaries set, start looking for
+ # the block top and bottom.
+
+ unless search_failed
+ start_on.downto(search_top) do |number|
+ if lines[number-1] =~ relevant_line_pattern then
+ block_top = number
+ else
+ break
+ end
+ end
+
+ start_on.upto(search_bottom) do |number|
+ if lines[number-1] =~ relevant_line_pattern then
+ block_bottom = number
+ else
+ break
+ end
+ end
+ end
+ end
+
+ #
+ # Now, iterate over the block and find the best column number
+ # for the = sign. The pattern will tell us the position of the
+ # first bit of whitespace before the equal sign. We put the
+ # equals sign to the right of the furthest-right one. Note that
+ # we cannot assume every line in the block is relevant.
+
+ best_column = 0
+ block_top.upto(block_bottom) do |number|
+ line = lines[number - 1]
+ if line =~ relevant_line_pattern then
+ m = column_search_pattern.match(line)
+ best_column = m.begin(0) if m.begin(0) &gt; best_column
+ end
+ end
+
+
+ #
+ # Reformat the block. Again, we cannot assume all lines in the
+ # block are relevant.
+
+ block_top.upto(block_bottom) do |number|
+ if lines[number-1] =~ relevant_line_pattern then
+ before, after = lines[number-1].split(/[\t ]*:[\t ]*/, 2)
+ # lines[number-1] = [before.ljust(best_column), after].join(after[0,1] == '&gt;' ? ":" : ": ")
+ lines[number-1] = ["#{before}:".ljust(best_column + 2), after].join
+ end
+ end
+
+
+rescue =&gt; e
+ comments &lt;&lt; "Error: #{e.inspect}"
+ comments &lt;&lt; e.backtrace
+end
+
+#
+# Output the replacement text
+
+lines.each do |line|
+ puts line
+end
+
+comments.flatten.each { |c| puts "# #{c}" }
+
+</string>
+ <key>input</key>
+ <string>selection</string>
+ <key>keyEquivalent</key>
+ <string>~@]</string>
+ <key>name</key>
+ <string>Align Assignments</string>
+ <key>output</key>
+ <string>replaceSelectedText</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>EE3293A5-3761-40BD-9CA8-DAAA176AA19E</string>
+</dict>
+</plist>
View
6 CoffeeScript.tmbundle/Commands/CoffeeScript.sublime-build
@@ -0,0 +1,6 @@
+{
+ "path": "$HOME/bin:/usr/local/bin:$PATH",
+ "cmd": ["coffee","-c","$file"],
+ "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
+ "selector": "source.coffee"
+}
View
35 CoffeeScript.tmbundle/Commands/Compile and Display JS.tmCommand
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/bin/bash
+
+function highlight {
+ test `which pygmentize`
+ if [[ $? -eq 0 ]]; then
+ pygmentize -Onoclasses,nobackground=True,style=autumn,encoding=utf8 -l js -f html
+ else
+ pre
+ fi
+}
+
+${TM_COFFEE:=coffee} -scp --bare | highlight</string>
+ <key>fallbackInput</key>
+ <string>document</string>
+ <key>input</key>
+ <string>selection</string>
+ <key>keyEquivalent</key>
+ <string>@b</string>
+ <key>name</key>
+ <string>Compile and Display JS</string>
+ <key>output</key>
+ <string>showAsHTML</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>D749F761-1740-4918-9490-90DF376BA72E</string>
+</dict>
+</plist>
View
34 CoffeeScript.tmbundle/Commands/Insert Heredoc comment.tmCommand
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/usr/bin/env ruby
+
+column_number = ENV['TM_COLUMN_NUMBER']
+whitespace = " " * (column_number.to_i - 1)
+
+print &lt;&lt;-EOS
+###
+#{whitespace}$0
+#{whitespace}###
+EOS
+</string>
+ <key>fallbackInput</key>
+ <string>line</string>
+ <key>input</key>
+ <string>none</string>
+ <key>keyEquivalent</key>
+ <string>^#</string>
+ <key>name</key>
+ <string>Insert Heredoc """ comment</string>
+ <key>output</key>
+ <string>insertAsSnippet</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>68A86250-0280-11E0-A976-0800200C9A66</string>
+</dict>
+</plist>
View
34 CoffeeScript.tmbundle/Commands/Insert Heredoc triple double quotes.tmCommand
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/usr/bin/env ruby
+
+column_number = ENV['TM_COLUMN_NUMBER']
+whitespace = " " * (column_number.to_i - 1)
+
+print &lt;&lt;-EOS
+"""
+#{whitespace}$0
+#{whitespace}"""
+EOS
+</string>
+ <key>fallbackInput</key>
+ <string>line</string>
+ <key>input</key>
+ <string>none</string>
+ <key>keyEquivalent</key>
+ <string>@"</string>
+ <key>name</key>
+ <string>Insert Heredoc """ quotes</string>
+ <key>output</key>
+ <string>insertAsSnippet</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>F08537AF-4F02-4040-999D-F0785CF64C02</string>
+</dict>
+</plist>
View
34 CoffeeScript.tmbundle/Commands/Insert Heredoc triple single quotes.tmCommand
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/usr/bin/env ruby
+
+column_number = ENV['TM_COLUMN_NUMBER']
+whitespace = " " * (column_number.to_i - 1)
+
+print &lt;&lt;-EOS
+'''
+#{whitespace}$0
+#{whitespace}'''
+EOS
+</string>
+ <key>fallbackInput</key>
+ <string>line</string>
+ <key>input</key>
+ <string>none</string>
+ <key>keyEquivalent</key>
+ <string>@'</string>
+ <key>name</key>
+ <string>Insert Heredoc ''' quotes</string>
+ <key>output</key>
+ <string>insertAsSnippet</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>C4F99E3D-1540-4BC1-8038-0A19D65BABC8</string>
+</dict>
+</plist>
View
27 CoffeeScript.tmbundle/Commands/New Function.tmCommand
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>cat &lt;&lt;SNIPPET
+${TM_SELECTED_TEXT:-$TM_CURRENT_WORD} = (\${1:args}) -&gt;
+ \$0
+SNIPPET</string>
+ <key>fallbackInput</key>
+ <string>word</string>
+ <key>input</key>
+ <string>selection</string>
+ <key>keyEquivalent</key>
+ <string>$
+</string>
+ <key>name</key>
+ <string>New Function</string>
+ <key>output</key>
+ <string>insertAsSnippet</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>192428A1-8684-4172-8728-225B4C9E532F</string>
+</dict>
View
25 CoffeeScript.tmbundle/Commands/Run selected text.tmCommand
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/bin/bash
+
+${TM_COFFEE:=coffee} -s
+</string>
+ <key>input</key>
+ <string>selection</string>
+ <key>keyEquivalent</key>
+ <string>@R</string>
+ <key>name</key>
+ <string>Run selected text</string>
+ <key>output</key>
+ <string>showAsTooltip</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>90424631-D00B-448C-B157-DAC92DFB2858</string>
+</dict>
+</plist>
View
24 CoffeeScript.tmbundle/Commands/Run.tmCommand
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>beforeRunningCommand</key>
+ <string>nop</string>
+ <key>command</key>
+ <string>#!/bin/bash
+
+${TM_COFFEE:=coffee} -s | pre</string>
+ <key>input</key>
+ <string>selection</string>
+ <key>keyEquivalent</key>
+ <string>@r</string>
+ <key>name</key>
+ <string>Run</string>
+ <key>output</key>
+ <string>showAsHTML</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>30395DAB-44A6-44F7-99E1-02D64621303A</string>
+</dict>
+</plist>
View
36 CoffeeScript.tmbundle/Preferences/CoffeeScript.tmPreferences
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>name</key>
+ <string>Comments</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>settings</key>
+ <dict>
+ <key>shellVariables</key>
+ <array>
+ <dict>
+ <key>name</key>
+ <string>TM_COMMENT_START</string>
+ <key>value</key>
+ <string># </string>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TM_COMMENT_START_2</string>
+ <key>value</key>
+ <string>###</string>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TM_COMMENT_END_2</string>
+ <key>value</key>
+ <string>###</string>
+ </dict>
+ </array>
+ </dict>
+ <key>uuid</key>
+ <string>0A92C6F6-4D73-4859-B38C-4CC19CBC191F</string>
+</dict>
+</plist>
View
27 CoffeeScript.tmbundle/Preferences/Indent.tmPreferences
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>name</key>
+ <string>Indent</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>settings</key>
+ <dict>
+ <key>decreaseIndentPattern</key>
+ <string>^\s*(\}|\]|else|catch|finally)$</string>
+ <key>increaseIndentPattern</key>
+ <string>(?x)
+ ^\s*
+ (.*class
+ |[a-zA-Z\$_](\w|\$|:|\.)*\s*(?=\:(\s*\(.*\))?\s*((=|-)&gt;\s*$)) # function that is not one line
+ |[a-zA-Z\$_](\w|\$|\.)*\s*(:|=)\s*((if|while)(?!.*?then)|for|$) # assignment using multiline if/while/for
+ |(if|while)\b(?!.*?then)|for\b
+ |(try|finally|catch\s+\S.*)\s*$
+ |.*[-=]&gt;$
+ |.*[\{\[]$)</string>
+ </dict>
+ <key>uuid</key>
+ <string>C5D6C716-12FE-4CE8-A916-6CABEDE8AFE7</string>
+</dict>
+</plist>
View
19 CoffeeScript.tmbundle/Preferences/Symbol List Method 2.tmPreferences
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>name</key>
+ <string>Symbol List: Method</string>
+ <key>scope</key>
+ <string>source.coffee meta.function.coffee</string>
+ <key>settings</key>
+ <dict>
+ <key>showInSymbolList</key>
+ <integer>1</integer>
+ <key>symbolTransformation</key>
+ <string>s/^\s*([a-zA-Z\$_]+)\s*=/$2/</string>
+ </dict>
+ <key>uuid</key>
+ <string>419D24D8-0DD6-4D9A-8CA0-6D9CD740BEEC</string>
+</dict>
+</plist>
View
17 CoffeeScript.tmbundle/Preferences/Symbol List Method.tmPreferences
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>name</key>
+ <string>Symbol List: Method Instance</string>
+ <key>scope</key>
+ <string>source.coffee entity.name.type.instance</string>
+ <key>settings</key>
+ <dict>
+ <key>showInSymbolList</key>
+ <integer>0</integer>
+ </dict>
+ <key>uuid</key>
+ <string>B087AF2F-8946-4EA9-8409-49E7C4A2EEF0</string>
+</dict>
+</plist>
View
36 CoffeeScript.tmbundle/README.markdown
@@ -0,0 +1,36 @@
+CoffeeScript.tmbundle
+---------------------
+
+A **TextMate Bundle** for the **CoffeeScript** programming language.
+
+Installation:
+
+ mkdir -p ~/Library/Application\ Support/TextMate/Bundles
+ cd ~/Library/Application\ Support/TextMate/Bundles
+ git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript.tmbundle
+
+The bundle includes syntax highlighting, the ability to compile or evaluate CoffeeScript inline, convenient symbol listing for functions, and a number of expando snippets.
+
+Patches for additions are always welcome.
+
+![screenshot](http://jashkenas.s3.amazonaws.com/images/coffeescript/textmate-highlighting.png)
+
+If your TextMate.app is having trouble finding the `coffee` command, remember that [TextMate doesn't inherit your regular PATH](http://wiki.macromates.com/Troubleshooting/TextMateAndThePath).
+
+Using with Sublime Text 2
+-------------------------
+
+Installation for with Sublime Text 2 on OSX:
+
+ cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages
+ git clone https://github.com/jashkenas/coffee-script-tmbundle.git CoffeeScript
+
+Installation for Sublime Text 2 on Linux (tested in Ubuntu 11.04):
+
+ git clone https://github.com/jashkenas/coffee-script-tmbundle.git
+ cd coffee-script-tmbundle
+ zip -r CoffeeScript.sublime-package *
+ mv CoffeeScript.sublime-package ~/Applications/Sublime\ Text\ 2/Pristine\ Packages
+
+Quit and restart Sublime Text 2.
+
View
17 CoffeeScript.tmbundle/Snippets/Array comprehension.tmSnippet
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>for ${1:name} in ${2:array}
+ ${0:# body...}</string>
+ <key>name</key>
+ <string>Array Comprehension</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>fora</string>
+ <key>uuid</key>
+ <string>2D4AC0B4-47AA-4E38-9A11-09A48C2A9439</string>
+</dict>
+</plist>
View
17 CoffeeScript.tmbundle/Snippets/Bound Function.tmSnippet
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>(${1:args}) =&gt;
+ ${0:# body...}</string>
+ <key>name</key>
+ <string>Function (bound)</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>bfun</string>
+ <key>uuid</key>
+ <string>20BDC055-ED67-4D0E-A47F-ADAA828EFF2B</string>
+</dict>
+</plist>
View
20 CoffeeScript.tmbundle/Snippets/Class.tmSnippet
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>class ${1:ClassName}${2: extends ${3:Ancestor}}
+
+ ${4:constructor: (${5:args}) -&gt;
+ ${6:# body...}}
+ $7</string>
+ <key>name</key>
+ <string>Class</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>cla</string>
+ <key>uuid</key>
+ <string>765ACBD3-380A-4CF8-9111-345A36A0DAE7</string>
+</dict>
+</plist>
View
17 CoffeeScript.tmbundle/Snippets/Else if.tmSnippet
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>else if ${1:condition}
+ ${0:# body...}</string>
+ <key>name</key>
+ <string>Else if</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>elif</string>
+ <key>uuid</key>
+ <string>EA8F5EDB-6E1E-4C36-9CA5-12B108F1A7C9</string>
+</dict>
+</plist>
View
19 CoffeeScript.tmbundle/Snippets/Function.tmSnippet
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>(${1:args}) -&gt;
+ ${0:# body...}
+
+</string>
+ <key>name</key>
+ <string>Function</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>fun</string>
+ <key>uuid</key>
+ <string>F2E2E79A-A85D-471D-9847-72AE40205942</string>
+</dict>
+</plist>
View
19 CoffeeScript.tmbundle/Snippets/If __ Else.tmSnippet
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>if ${1:condition}
+ ${2:# body...}
+else
+ ${3:# body...}</string>
+ <key>name</key>
+ <string>If .. Else</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>ife</string>
+ <key>uuid</key>
+ <string>2AD19F12-E499-4715-9A47-FC8D594BC550</string>
+</dict>
+</plist>
View
17 CoffeeScript.tmbundle/Snippets/If.tmSnippet
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>if ${1:condition}
+ ${0:# body...}</string>
+ <key>name</key>
+ <string>If</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>if</string>
+ <key>uuid</key>
+ <string>F4FDFB3A-71EF-48A4-93F4-178B949546B1</string>
+</dict>
+</plist>
View
18 CoffeeScript.tmbundle/Snippets/Interpolated Code.tmSnippet
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>#{${1:$TM_SELECTED_TEXT}}</string>
+ <key>keyEquivalent</key>
+ <string>#</string>
+ <key>name</key>
+ <string>Interpolated Code</string>
+ <key>scope</key>
+ <string>(string.quoted.double.coffee) - string source, (string.quoted.double.heredoc.coffee) - string source</string>
+ <key>tabTrigger</key>
+ <string>#</string>
+ <key>uuid</key>
+ <string>C04ED189-6ACB-44E6-AD5B-911B760AD1CC</string>
+</dict>
+</plist>
View
17 CoffeeScript.tmbundle/Snippets/Object comprehension.tmSnippet
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>for ${1:key}, ${2:value} of ${3:Object}
+ ${0:# body...}</string>
+ <key>name</key>
+ <string>Object comprehension</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>foro</string>
+ <key>uuid</key>
+ <string>9D126CC5-EA14-4A40-B6D3-6A5FC1AC1420</string>
+</dict>
+</plist>
View
17 CoffeeScript.tmbundle/Snippets/Range comprehension (exclusive).tmSnippet
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>for ${1:name} in [${2:start}...${3:finish}]${4: by ${5:step}}
+ ${0:# body...}</string>
+ <key>name</key>
+ <string>Range comprehension (exclusive)</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>forrex</string>
+ <key>uuid</key>
+ <string>FA6AB9BF-3444-4A8C-B010-C95C2CF5BAB3</string>
+</dict>
+</plist>
View
17 CoffeeScript.tmbundle/Snippets/Range comprehension (inclusive).tmSnippet
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>for ${1:name} in [${2:start}..${3:finish}]${4: by ${5:step}}
+ ${0:# body...}</string>
+ <key>name</key>
+ <string>Range comprehension (inclusive)</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>forr</string>
+ <key>uuid</key>
+ <string>E0F8E45A-9262-4DD6-ADFF-B5B9D6CE99C2</string>
+</dict>
+</plist>
View
16 CoffeeScript.tmbundle/Snippets/Raw javascript.tmSnippet
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>\`${1:`pbpaste`}\`</string>
+ <key>keyEquivalent</key>
+ <string>^j</string>
+ <key>name</key>
+ <string>Raw javascript</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>422A59E7-FC36-4E99-B01C-6353515BB544</string>
+</dict>
+</plist>
View
18 CoffeeScript.tmbundle/Snippets/Switch.tmSnippet
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>switch ${1:object}
+ when ${2:value}
+ ${0:# body...}</string>
+ <key>name</key>
+ <string>Switch</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>swi</string>
+ <key>uuid</key>
+ <string>3931A7C6-F1FB-484F-82D1-26F5A8F779D0</string>
+</dict>
+</plist>
View
16 CoffeeScript.tmbundle/Snippets/Ternary If.tmSnippet
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>if ${1:condition} then ${2:value} else ${3:other}</string>
+ <key>name</key>
+ <string>Ternary If</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>ifte</string>
+ <key>uuid</key>
+ <string>CF0B4684-E4CB-4E10-8C25-4D15400C3385</string>
+</dict>
+</plist>
View
19 CoffeeScript.tmbundle/Snippets/Try __ Catch.tmSnippet
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>try
+ $1
+catch ${2:error}
+ $3</string>
+ <key>name</key>
+ <string>Try .. Catch</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>try</string>
+ <key>uuid</key>
+ <string>CAFB0DED-5E23-4A84-AC20-87FBAF22DBAC</string>
+</dict>
+</plist>
View
16 CoffeeScript.tmbundle/Snippets/Unless.tmSnippet
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>${1:action} unless ${2:condition}</string>
+ <key>name</key>
+ <string>Unless</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>unl</string>
+ <key>uuid</key>
+ <string>E561AECD-5933-4F59-A6F7-FA96E1203606</string>
+</dict>
+</plist>
View
16 CoffeeScript.tmbundle/Snippets/log.tmSnippet
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>console.log $0</string>
+ <key>name</key>
+ <string>log</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>log</string>
+ <key>uuid</key>
+ <string>FBC44B18-323A-4C00-A35B-15E41830C5AD</string>
+</dict>
+</plist>
View
16 CoffeeScript.tmbundle/Snippets/require.tmSnippet
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>content</key>
+ <string>${2/^.*?([\w_]+).*$/\L$1/} = require ${2:'${1:sys}'}$3</string>
+ <key>name</key>
+ <string>require</string>
+ <key>scope</key>
+ <string>source.coffee</string>
+ <key>tabTrigger</key>
+ <string>req</string>
+ <key>uuid</key>
+ <string>8A65E175-18F2-428F-A695-73E01139E41A</string>
+</dict>
+</plist>
View
642 CoffeeScript.tmbundle/Syntaxes/CoffeeScript.tmLanguage
@@ -0,0 +1,642 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>comment</key>
+ <string>CoffeeScript Syntax: version 1</string>
+ <key>fileTypes</key>
+ <array>
+ <string>coffee</string>
+ <string>Cakefile</string>
+ <string>coffee.erb</string>
+ </array>
+ <key>firstLineMatch</key>
+ <string>^#!.*\bcoffee</string>
+ <key>foldingStartMarker</key>
+ <string>^\s*class\s+\S.*$|.*(-&gt;|=&gt;)\s*$|.*[\[{]\s*$</string>
+ <key>foldingStopMarker</key>
+ <string>^\s*$|^\s*[}\]]\s*$</string>
+ <key>keyEquivalent</key>
+ <string>^~C</string>
+ <key>name</key>
+ <string>CoffeeScript</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>variable.parameter.function.coffee</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>storage.type.function.coffee</string>
+ </dict>
+ </dict>
+ <key>comment</key>
+ <string>match stuff like: a -&gt; … </string>
+ <key>match</key>
+ <string>(\([^()]*?\))\s*([=-]&gt;)</string>
+ <key>name</key>
+ <string>meta.inline.function.coffee</string>
+ </dict>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>keyword.operator.new.coffee</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.type.instance.coffee</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(new)\s+(\w+(?:\.\w*)*)</string>
+ <key>name</key>
+ <string>meta.class.instance.constructor</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>'''</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.begin.coffee</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>'''</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.coffee</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.heredoc.coffee</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>"""</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.begin.coffee</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>"""</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.coffee</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.double.heredoc.coffee</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>\\.</string>
+ <key>name</key>
+ <string>constant.character.escape.coffee</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#interpolated_coffee</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.coffee</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>`</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.coffee</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.script.coffee</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)</string>
+ <key>name</key>
+ <string>constant.character.escape.coffee</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.coffee</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>###(?:[ \t]*\n)</string>
+ <key>name</key>
+ <string>comment.block.coffee</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>@\w*</string>
+ <key>name</key>
+ <string>storage.type.annotation.coffeescript</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.coffee</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(#).*$\n?</string>
+ <key>name</key>
+ <string>comment.line.number-sign.coffee</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>/{3}</string>
+ <key>end</key>
+ <string>/{3}[imgy]{0,4}</string>
+ <key>name</key>
+ <string>string.regexp.coffee</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#interpolated_coffee</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#embedded_comment</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>/(?![\s=/*+{}?]).*?[^\\]/[igmy]{0,4}(?![a-zA-Z0-9])</string>
+ <key>name</key>
+ <string>string.regexp.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(?&lt;![\.\$])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|(?&lt;=for)\s+own)(?!\s*:)\b</string>
+ <key>name</key>
+ <string>keyword.control.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>and=|or=|!|%|&amp;|\^|\*|\/|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|&lt;=|&gt;=|&lt;&lt;=|&gt;&gt;=|&gt;&gt;&gt;=|&lt;&gt;|&lt;|&gt;|!|&amp;&amp;|\?|\||\|\||\:|\*=|(?&lt;!\()/=|%=|\+=|\-=|&amp;=|\^=|\b(?&lt;![\.\$])(instanceof|new|delete|typeof|and|or|is|isnt|not)\b</string>
+ <key>name</key>
+ <string>keyword.operator.coffee</string>
+ </dict>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>variable.assignment.coffee</string>
+ </dict>
+ <key>4</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.separator.key-value</string>
+ </dict>
+ <key>5</key>
+ <dict>
+ <key>name</key>
+ <string>keyword.operator.coffee</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>([a-zA-Z\$_](\w|\$|\.)*\s*(?!\::)((:)|(=))(?!(\s*\(.*\))?\s*((=|-)&gt;)))</string>
+ <key>name</key>
+ <string>variable.assignment.coffee</string>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>(?&lt;=\s|^)([\[\{])(?=.*?[\]\}]\s+[:=])</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>keyword.operator.coffee</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>([\]\}]\s*[:=])</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>keyword.operator.coffee</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>meta.variable.assignment.destructured.coffee</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#variable_name</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#instance_variable</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#single_quoted_string</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#double_quoted_string</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#numeric</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.function.coffee</string>
+ </dict>
+ <key>3</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.function.coffee</string>
+ </dict>
+ <key>4</key>
+ <dict>
+ <key>name</key>
+ <string>variable.parameter.function.coffee</string>
+ </dict>
+ <key>5</key>
+ <dict>
+ <key>name</key>
+ <string>storage.type.function.coffee</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(\s*)(?=[a-zA-Z\$_])([a-zA-Z\$_](\w|\$|:|\.)*\s*(?=[:=](\s*\(.*\))?\s*((=|-)&gt;)))</string>
+ <key>name</key>
+ <string>meta.function.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>(=|-)&gt;</string>
+ <key>name</key>
+ <string>storage.type.function.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(?&lt;!\.)(true|on|yes)(?!\s*[:=])\b</string>
+ <key>name</key>
+ <string>constant.language.boolean.true.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(?&lt;!\.)(false|off|no)(?!\s*[:=])\b</string>
+ <key>name</key>
+ <string>constant.language.boolean.false.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(?&lt;!\.)null(?!\s*[:=])\b</string>
+ <key>name</key>
+ <string>constant.language.null.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(?&lt;!\.)(super|this|extends)(?!\s*[:=])\b</string>
+ <key>name</key>
+ <string>variable.language.coffee</string>
+ </dict>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>storage.type.class.coffee</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>entity.name.type.class.coffee</string>
+ </dict>
+ <key>3</key>
+ <dict>
+ <key>name</key>
+ <string>keyword.control.inheritance.coffee</string>
+ </dict>
+ <key>4</key>
+ <dict>
+ <key>name</key>
+ <string>entity.other.inherited-class.coffee</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(class\b)\s+([a-zA-Z\$_][\w\.]+)?(?:\s+(extends)\s+([a-zA-Z\$\._][\w\.]*))?</string>
+ <key>name</key>
+ <string>meta.class.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(debugger|\\)\b</string>
+ <key>name</key>
+ <string>keyword.other.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(Infinity|NaN|undefined)\b</string>
+ <key>name</key>
+ <string>constant.language.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\;</string>
+ <key>name</key>
+ <string>punctuation.terminator.statement.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>,[ |\t]*</string>
+ <key>name</key>
+ <string>meta.delimiter.object.comma.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\.</string>
+ <key>name</key>
+ <string>meta.delimiter.method.period.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\{|\}</string>
+ <key>name</key>
+ <string>meta.brace.curly.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\(|\)</string>
+ <key>name</key>
+ <string>meta.brace.round.coffee</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\[|\]\s*</string>
+ <key>name</key>
+ <string>meta.brace.square.coffee</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#instance_variable</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#single_quoted_string</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#double_quoted_string</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#numeric</string>
+ </dict>
+ </array>
+ <key>repository</key>
+ <dict>
+ <key>double_quoted_string</key>
+ <dict>
+ <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.coffee</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>"</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.coffee</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.double.coffee</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)</string>
+ <key>name</key>
+ <string>constant.character.escape.coffee</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#interpolated_coffee</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ <key>embedded_comment</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.coffee</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>(?&lt;!\\)(#).*$\n?</string>
+ <key>name</key>
+ <string>comment.line.number-sign.coffee</string>
+ </dict>
+ </array>
+ </dict>
+ <key>instance_variable</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>(@)([a-zA-Z_\$]\w*)?</string>
+ <key>name</key>
+ <string>variable.other.readwrite.instance.coffee</string>
+ </dict>
+ </array>
+ </dict>
+ <key>interpolated_coffee</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>begin</key>
+ <string>\#\{</string>
+ <key>captures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.section.embedded.coffee</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>\}</string>
+ <key>name</key>
+ <string>source.coffee.embedded.source</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>$self</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ <key>numeric</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>(?&lt;!\$)\b((0(x|X)[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?(e[+\-]?[0-9]+)?))\b</string>
+ <key>name</key>
+ <string>constant.numeric.coffee</string>
+ </dict>
+ </array>
+ </dict>
+ <key>single_quoted_string</key>
+ <dict>
+ <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.coffee</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>'</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.coffee</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.single.coffee</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)</string>
+ <key>name</key>
+ <string>constant.character.escape.coffee</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ <key>variable_name</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>variable.assignment.coffee</string>
+ </dict>
+ </dict>
+ <key>match</key>
+ <string>([a-zA-Z\$_]\w*(\.\w+)*)</string>
+ <key>name</key>
+ <string>variable.assignment.coffee</string>
+ </dict>
+ </array>
+ </dict>
+ </dict>
+ <key>scopeName</key>
+ <string>source.coffee</string>
+ <key>uuid</key>
+ <string>5B520980-A7D5-4E10-8582-1A4C889A8DE5</string>
+</dict>
+</plist>
View
114 CoffeeScript.tmbundle/info.plist
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>mainMenu</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>D77D67C9-7BA6-4B42-A563-2E2416DEEB53</string>
+ <string>E11D7545-67B4-4191-8012-756E2C9AD382</string>
+ <string>5786C9CC-C7ED-46FA-9D0B-069E52DAF268</string>
+ <string>1C7FD768-1DEA-4825-8220-FACA8D507E80</string>
+ </array>
+ <key>submenus</key>
+ <dict>
+ <key>1C7FD768-1DEA-4825-8220-FACA8D507E80</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>F08537AF-4F02-4040-999D-F0785CF64C02</string>
+ <string>C4F99E3D-1540-4BC1-8038-0A19D65BABC8</string>
+ <string>68A86250-0280-11E0-A976-0800200C9A66</string>
+ <string>EE3293A5-3761-40BD-9CA8-DAAA176AA19E</string>
+ <string>422A59E7-FC36-4E99-B01C-6353515BB544</string>
+ <string>8A65E175-18F2-428F-A695-73E01139E41A</string>
+ <string>C04ED189-6ACB-44E6-AD5B-911B760AD1CC</string>
+ <string>FBC44B18-323A-4C00-A35B-15E41830C5AD</string>
+ </array>
+ <key>name</key>
+ <string>Other</string>
+ </dict>
+ <key>5786C9CC-C7ED-46FA-9D0B-069E52DAF268</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>192428A1-8684-4172-8728-225B4C9E532F</string>
+ <string>F2E2E79A-A85D-471D-9847-72AE40205942</string>
+ <string>20BDC055-ED67-4D0E-A47F-ADAA828EFF2B</string>
+ <string>2D4AC0B4-47AA-4E38-9A11-09A48C2A9439</string>
+ <string>9D126CC5-EA14-4A40-B6D3-6A5FC1AC1420</string>
+ <string>FA6AB9BF-3444-4A8C-B010-C95C2CF5BAB3</string>
+ <string>E0F8E45A-9262-4DD6-ADFF-B5B9D6CE99C2</string>
+ <string>3931A7C6-F1FB-484F-82D1-26F5A8F779D0</string>
+ <string>765ACBD3-380A-4CF8-9111-345A36A0DAE7</string>
+ <string>CAFB0DED-5E23-4A84-AC20-87FBAF22DBAC</string>
+ </array>
+ <key>name</key>
+ <string>Constructs</string>
+ </dict>
+ <key>D77D67C9-7BA6-4B42-A563-2E2416DEEB53</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>30395DAB-44A6-44F7-99E1-02D64621303A</string>
+ <string>D749F761-1740-4918-9490-90DF376BA72E</string>
+ <string>90424631-D00B-448C-B157-DAC92DFB2858</string>
+ </array>
+ <key>name</key>
+ <string>Run</string>
+ </dict>
+ <key>E11D7545-67B4-4191-8012-756E2C9AD382</key>
+ <dict>
+ <key>items</key>
+ <array>
+ <string>F4FDFB3A-71EF-48A4-93F4-178B949546B1</string>
+ <string>2AD19F12-E499-4715-9A47-FC8D594BC550</string>
+ <string>EA8F5EDB-6E1E-4C36-9CA5-12B108F1A7C9</string>
+ <string>CF0B4684-E4CB-4E10-8C25-4D15400C3385</string>
+ <string>E561AECD-5933-4F59-A6F7-FA96E1203606</string>
+ </array>
+ <key>name</key>
+ <string>Control</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>CoffeeScript</string>
+ <key>ordering</key>
+ <array>
+ <string>5B520980-A7D5-4E10-8582-1A4C889A8DE5</string>
+ <string>0A92C6F6-4D73-4859-B38C-4CC19CBC191F</string>
+ <string>419D24D8-0DD6-4D9A-8CA0-6D9CD740BEEC</string>
+ <string>B087AF2F-8946-4EA9-8409-49E7C4A2EEF0</string>
+ <string>C5D6C716-12FE-4CE8-A916-6CABEDE8AFE7</string>
+ <string>EE3293A5-3761-40BD-9CA8-DAAA176AA19E</string>
+ <string>192428A1-8684-4172-8728-225B4C9E532F</string>
+ <string>30395DAB-44A6-44F7-99E1-02D64621303A</string>
+ <string>D749F761-1740-4918-9490-90DF376BA72E</string>
+ <string>90424631-D00B-448C-B157-DAC92DFB2858</string>
+ <string>F08537AF-4F02-4040-999D-F0785CF64C02</string>
+ <string>C4F99E3D-1540-4BC1-8038-0A19D65BABC8</string>
+ <string>F2E2E79A-A85D-471D-9847-72AE40205942</string>
+ <string>20BDC055-ED67-4D0E-A47F-ADAA828EFF2B</string>
+ <string>F4FDFB3A-71EF-48A4-93F4-178B949546B1</string>
+ <string>2AD19F12-E499-4715-9A47-FC8D594BC550</string>
+ <string>EA8F5EDB-6E1E-4C36-9CA5-12B108F1A7C9</string>
+ <string>CF0B4684-E4CB-4E10-8C25-4D15400C3385</string>
+ <string>E561AECD-5933-4F59-A6F7-FA96E1203606</string>
+ <string>2D4AC0B4-47AA-4E38-9A11-09A48C2A9439</string>
+ <string>9D126CC5-EA14-4A40-B6D3-6A5FC1AC1420</string>
+ <string>FA6AB9BF-3444-4A8C-B010-C95C2CF5BAB3</string>
+ <string>E0F8E45A-9262-4DD6-ADFF-B5B9D6CE99C2</string>
+ <string>3931A7C6-F1FB-484F-82D1-26F5A8F779D0</string>
+ <string>765ACBD3-380A-4CF8-9111-345A36A0DAE7</string>
+ <string>CAFB0DED-5E23-4A84-AC20-87FBAF22DBAC</string>
+ <string>422A59E7-FC36-4E99-B01C-6353515BB544</string>
+ <string>8A65E175-18F2-428F-A695-73E01139E41A</string>
+ <string>C04ED189-6ACB-44E6-AD5B-911B760AD1CC</string>
+ <string>FBC44B18-323A-4C00-A35B-15E41830C5AD</string>
+ </array>
+ <key>uuid</key>
+ <string>A46E4382-F1AC-405B-8F22-65FF470F34D7</string>
+</dict>
+</plist>
Please sign in to comment.
Something went wrong with that request. Please try again.