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", "User/rspec") elif name == "factories.rb": set_syntax(view, "Rspec", "User/rspec") elif name == "gemfile": set_syntax(view, "Ruby on Rails", "Rails") elif name == "config.ru": set_syntax(view, "Ruby on Rails", "Rails") elif name[-2:] == "rb": set_syntax(view, "Ruby on Rails", "Rails") 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