A sublime text 2 plugin to set the file syntax based on a shebang line
Python
Switch branches/tags
Nothing to show
Pull request Compare This branch is 1 commit behind vxnick:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
README.md
ShebangSyntax.py
ShebangSyntax.sublime-settings

README.md

Shebang Syntax

This plugin doesn't try to be too clever - it only operates on files without an extension (that is, without a dot (i.e. a period) anywhere in the file name). Anything with a file extension is probably best left to Sublime and other plugins. This plugin operates whenever the file is loaded or saved.

The first line is checked to see if it contains a shebang (#!). If it does, the path is matched along with an optional second group (after one or more spaces). This allows the plugin to work with /usr/bin/env ruby without thinking that env is the syntax type.

Once the plugin has figured out what the syntax type is (i.e. ruby, php, etc), it does a simple uppercase check to see if there's a match in the Packages directory. So for example, ruby would be checked against Packages/Ruby/Ruby.tmLanguage.

If there's no match (as in the case of PHP, due to all-capitals), then the plugin refers to its ShebangSyntax.sublime-settings file. You should make your own copy of this file and add any additional associations.

You'll notice that in this file values are set as lists - this is because some syntax types have differing directory and file names. More information on this can be found within the settings file, and it's pretty self-explanatory.