Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

file 33 lines (28 sloc) 1.157 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
import sublime, sublime_plugin
import os

class DetectFileTypeCommand(sublime_plugin.EventListener):
  """ Detects current file type if the file's extension isn't conclusive """
  """ Modified for Ruby on Rails and Sublime Text 2 """
  """ Original pastie here: http://pastie.org/private/kz8gtts0cjcvkec0d4quqa """

  def on_load(self, view):
    filename = view.file_name()
    if not filename: # buffer has never been saved
      return

    name = os.path.basename(filename.lower())
    if name[-8:] == "_spec.rb":
      set_syntax(view, "RSpec", "RSpec")
    elif name == "factories.rb":
      set_syntax(view, "RSpec", "RSpec")
    elif name[-8:] == "html.erb":
      set_syntax(view, "HTML (Rails)", "Rails")
    elif name == "gemfile":
      set_syntax(view, "Ruby on Rails", "Rails")
    elif name[-2:] == "rb":
      set_syntax(view, "Ruby on Rails", "Rails")
    elif name[-3:] == "tag"
      set_syntax(view, "Java Server Pages (JSP)", "Java")


def set_syntax(view, syntax, path=None):
  if path is None:
    path = syntax
  view.settings().set('syntax', 'Packages/'+ path + '/' + syntax + '.tmLanguage')
  print "Switched syntax to: " + syntax
Something went wrong with that request. Please try again.