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.