Подтвердить что ты не робот

Как включить подсветку синтаксиса для моего Gemfile в Sublime Text 2?

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

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

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

4b9b3361

Ответ 1

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

  • Выключить синтаксис вручную (не рекомендуется, но легко, никаких объяснений не требуется)
  • Добавить "Gemfile" в список файлов синтаксиса Ruby
  • Используйте плагин, на который вы ссылаетесь, и создайте для него пакет

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> с именами, похожими на Ruby. Добавьте <string>Gemfile</string>, и вы все настроены.

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

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

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

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

elif name[-3] == "erb": # Needed a semi-colon here.
  set_sintax(view, "HTML (Rails)", "Rails")

Ответ 2

Если вы здесь, но используете 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

Ответ 3

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

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

Смотрите DetectSyntax на GitHub.

Ответ 4

Вы можете добиться этого, скопировав файл HTML.tmLanguage в User/folder, таким образом, он не будет перезаписан обновлением.