Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I enable syntax highlighting for my Gemfile in Sublime Text 2?

Tags:

I recently started using Sublime Text 2. What an awesome editor. It does a great job of highlighting Ruby code, but it does not highlight my Gemfile.

Is there a way to get it to do that?

I found this Gist but it has no instructions on how to use it.

like image 616
Mohamad Avatar asked Dec 22 '11 17:12

Mohamad


People also ask

How do I enable syntax highlighting in sublime?

To enable Syntax Highlighting click on “View” in the top bar, then hover your mouse over “Syntax”, and select your programming language from the list. Alternatively, if you save a document with a supported file extension, Sublime Text 3 will automatically apply the Syntax Highlighting for that language.

Can you highlight in Sublime Text?

🖍 Text Marker (Highlighter)This Sublime Text plugin allows temporarily and persistently marking all occurrences of selected words in a color; multiple marked selections can be added simultaneously, each marking the selections with different colors.

Where do sublime syntax files go?

sublime-syntax should be pushed onto the context stack. It also defines another key, with_prototype . This contains a list of patterns that will be inserted into every context defined within JavaScript.

How do I disable syntax highlighting in Sublime Text 3?

Or View -> Syntax -> Plain Text.


2 Answers

There are at least three options:

  1. Switch syntax manually (not preferred, but easy; no explanation required)
  2. Add "Gemfile" to the list of Ruby-syntax files
  3. Use the plugin you link to and create a package for it

1. No explanation, but handy trick

You can bind a keystroke to set syntax without moving to the mouse.

I bound syntax changing to Ctrl-Opt-Space by adding the following to my user keybindings:

[
  { "keys": ["ctrl+alt+space"], 
    "command": "show_overlay", 
    "args": { "overlay": "command_palette", "text": "Set Syntax: " } }
]

2. Add "Gemfile" to list of Ruby-syntax files

  • Linux: ~/.config/sublime-text-2/Packages/Ruby/Ruby.tmLanguage
  • OS X: ~/Library/Application Support/Sublime Text 2/Packages/Ruby/Ruby.tmLanguage
  • Windows: %APPDATA%/Sublime Text 2/Packages/Ruby/Ruby.tmLanguage

You can also get there by using the menu option Preferences -> Browse Packages and going into the Ruby package. Once you're in the file it'll be obvious: it's the <array> element with Ruby-looking filenames. Add <string>Gemfile</string> and you're all set.

It's possible the setting could get overwritten on an upgrade; I'm not sure how that works with ST2–it may be cleaner to do it through code as in the snippet.

3. Using the snippet you linked to

More work (and the correction of one syntax error). You can either do it manually, by creating a directory in Packages (see above for location) or create an actual package and allow ST2 to install it.

I created a test package called "Syntax" and copied the snippet into it, restarted ST2, and opening a Gemfile worked as expected. The correction required an additional colon (new gist), nutshell:

elif name[-3] == "erb": # Needed a semi-colon here.
  set_sintax(view, "HTML (Rails)", "Rails")
like image 106
Dave Newton Avatar answered Nov 09 '22 07:11

Dave Newton


If you are here but are using Sublime Text 3 you might not be able able to find the 'list of Ruby-syntax files' in packages.

Most other solutions found online were confusing to me.

I fixed this by manually changing Gemfile to Ruby in the bottom right hand corner file extension menu item when you have opened the file in Sublime Text 3 (which is what I had been doing each time I opened the file up until now).

Once you have selected ruby then go to Preferences -> Settings-More -> Syntax Specific-User

{
  "extensions":
  [
    "Gemfile",
    "Gemfile.lock"
  ]
}

When you navigate to Syntax Specific User it opens a file specific to the language that the file has syntax highlighting for. You may need to change the file back to whatever it is defaulting too (mine was 'Rd (R Documentation).sublime-settings') and removing Gemfile from that Syntax highlighting file.

In Ubuntu these files are stored at

~/.config/sublime-text-3/Packages/User
like image 30
Jay Killeen Avatar answered Nov 09 '22 06:11

Jay Killeen