Как включить подсветку синтаксиса для моего Gemfile в Sublime Text 2? - PullRequest
20 голосов
/ 22 декабря 2011

Я недавно начал использовать Sublime Text 2. Какой классный редактор.Он отлично справляется с подсветкой кода Ruby, но не выделяет мой Gemfile.

Есть ли способ заставить его сделать это?

Я нашел эту суть но в нем нет инструкций по его использованию.

Ответы [ 4 ]

34 голосов
/ 22 декабря 2011

Существует как минимум три варианта:

  1. Переключение синтаксиса вручную (не предпочтительно, но легко; объяснение не требуется)
  2. Добавить "Gemfile" в список файлов синтаксиса Ruby
  3. Используйте плагин, на который вы ссылаетесь, и создайте для него пакет

1.Без объяснений, но удобный трюк

Вы можете связать нажатие клавиши, чтобы установить синтаксис, не перемещаясь по мышке.

Я связал синтаксис, изменив его на Ctrl-Opt-Space , добавив следующее в мои пользовательские сочетания клавиш:

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

2.Добавьте "Gemfile" в список файлов синтаксиса Ruby

  • 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

Вы также можете получить это, используя опцию меню Preferences -> Browse Packages и перейдя в пакет Ruby.Как только вы окажетесь в файле, это будет очевидно: это элемент <array> с именами в рубиновых именах.Добавьте <string>Gemfile</string> и все готово.

Возможно, настройка может быть перезаписана при обновлении;Я не уверен, как это работает с ST2 - может быть чище сделать это с помощью кода, как в фрагменте.

3.Используя фрагмент, который вы связали с

Дополнительная работа (и исправление одной синтаксической ошибки).Вы можете сделать это вручную, создав каталог в Packages (см. Расположение выше) или создать фактический пакет и позволить ST2 установить его.

Я создал тестовый пакет с именем "Syntax" и скопировалфрагмент, перезапустил ST2, и открытие Gemfile сработало, как и ожидалось.Для исправления потребовалось дополнительное двоеточие ( новый гист ), скорлупа:

elif name[-3] == "erb": # Needed a semi-colon here.
  set_sintax(view, "HTML (Rails)", "Rails")
5 голосов
/ 07 января 2015

Если вы здесь, но используете Sublime Text 3, вы не сможете найти «список файлов с синтаксисом Ruby» в пакетах.

Большинство других решений, найденных в Интернете, сбивают меня с толку.

Я исправил это, вручную изменив Gemfile на Ruby в пункте меню расширения файла в правом нижнем углу, когда вы открывали файл в Sublime Text 3 (что я делал каждый раз, когда открывал файл до сих пор) ,

После выбора ruby ​​перейдите в «Настройки» -> «Настройки» - «Дополнительно» -> «Синтаксис - Пользователь»

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

Когда вы переходите к «Пользователь с синтаксисом», он открывает файл, специфичный для языка, для которого этот файл имеет подсветку синтаксиса. Возможно, вам придется изменить файл обратно на тот, который по умолчанию тоже установлен (у меня было «Rd (R Documentation) .sublime-settings») и удалить Gemfile из этого файла подсветки синтаксиса.

В Ubuntu эти файлы хранятся в

~/.config/sublime-text-3/Packages/User
2 голосов
/ 07 июня 2012

Плагин DetectSyntax для ST2 предоставляет более комплексное решение для выделения файлов - позволяет подсветку файлов на основе правил.Он достаточно умен, чтобы понять разницу между файлом Rails, другими файлами, которые используют .rb в качестве расширения, и стандартными файлами ruby.

Стандартные правила включают Gemfile, Rakefile, Guardfile и другие.соответствует Ruby для форматирования синтаксиса.

См. DetectSyntax на GitHub .

0 голосов
/ 11 апреля 2012

Этого можно добиться, скопировав файл HTML.tmLanguage в папку «Пользователь /», чтобы он не был перезаписан обновлением.

...