Как настроить тип файла для синтаксических ассоциаций в Sublime Text?

517

Я бы хотел, чтобы редактор Sublime 2 рассматривал файлы * .sbt (чтобы выделить синтаксис) как язык Scala, так же как и * .scala, но я не могу найти, где это настроить. Вы случайно не знаете?

Иван
источник
6
Это дубликат: stackoverflow.com/q/7574502/1346682
Николас Мальбран,

Ответы:

1166

В Sublime Text (подтверждено в v2.x и v3.x) есть команда меню:

Вид -> Синтаксис -> Открыть все с текущим расширением как ...

TedG
источник
18
Есть ли у вас какие-либо идеи, как это отражается в файлах конфигурации возвышенного текста? Я пытаюсь добиться этого с помощью автоматического рецепта шеф-повара, и я не могу понять, что установить в настройках JSON.
Брэд
24
Точно так же работает в Sublime Text 3. Спасибо @TedG
fusion27
11
@brad Откройте настройки, относящиеся к синтаксису (Scala.sublime-settings в папке Users), и добавьте к ним: {"extensions": ["scala", "sbt"]}
пропуски
5
Также не работает должным образом для имен файлов с двойным расширением. Редактирование *.sublime-settings делает работу.
ММ.
9
Как установить синтаксис по умолчанию для открытых файлов, которые не имеют расширения?
кавалькада
38

Я нашел ответ (путем дальнейшего изучения структуры файлов конфигурации Sublime 2):

Я должен был открыть

~/.config/sublime-text-2/Packages/Scala/Scala.tmLanguage

И отредактируйте его, чтобы добавить sbt(расширение файлов, которые я хочу открыть как файлы кода Scala) в массив после fileTypesключа:

<dict>
  <key>bundleUUID</key>
  <string>452017E8-0065-49EF-AB9D-7849B27D9367</string>
  <key>fileTypes</key>
  <array>
    <string>scala</string>
    <string>sbt</string>
  <array>
  ...

PS: может быть, есть лучший способ, где-то вроде подходящего места для размещения моих настроек (вместо изменения самих пакетов), я все еще хотел бы знать.

Иван
источник
1
это сейчас в/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
Гийом Масс
2
Я думаю, что это пользовательская библиотека, а не системная библиотека:~/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
seren
4
@Eric, вы должны читать более внимательно .. Он открывает все файлы с этим конкретным расширением с указанным синтаксисом. В большинстве случаев это то, что вы хотите.
Винсент Кетелаарс
28

Я внес свои изменения в пакет User:

*nix: ~/.config/sublime-text-2/Packages/User/Scala.tmLanguage
*Windows: %APPDATA%\Sublime Text 2\Packages\User\Scala.tmLanguage

Что также означает, что это в формате JSON:

{
  "extensions":
  [
    "sbt"
  ]
}

Это то же самое место, где

View -> Syntax -> Open all with current extension as ...

пункт меню добавляет его (создание файла, если он не существует).

резиновая швабра
источник
2
Обратите внимание, что это единственный метод (по крайней мере, в ST2), который позволяет установить определенный синтаксис для файлов с двойным расширением (например, whatever.twig.html), поскольку метод меню принимает только последний!
ММ.
1
Я нашел это работает с Sublime Text 3. Я использовал View -> Syntax -> Open all with current extension as ...для создания файла языка Markdown.sublime-settingsв ~/Library/Application Support/Sublime Text 3/Packages/User/, а затем редактировать этот файл , чтобы добавить дополнительные расширения файлов.
Джейк Рэйсон,
13

Есть отличный плагин под названием ApplySyntax (ранее DetectSyntax), который предоставляет некоторые другие тонкости для сопоставления синтаксиса файла. позволяет выражения регулярных выражений и т. д.

Каушик Гопал
источник
9

Существует быстрый способ установить синтаксис: Ctrl+ Shift+ P, затем введите в поле ввода

ss + (какой тип вы хотите установить)

например: ss html +Enter

а ss означает «установить синтаксис»

это действительно быстрее, чем установить флажок в меню.

Привет Wor1d
источник
7

для ST3

$ language = "language u wish"

если существует,

перейдите в ~ / .config / sublime-text-3 / Packages / User / $ language .sublime-settings

еще

создать ~ / .config / sublime-text-3 / Packages / User / $ language .sublime-settings

и установить

{"extensions": [" yourextension "]}

Этот способ позволяет вам включить синтаксис для составных расширений (например, sql.mustache, js.php и т. Д.)

xpeiro
источник
2
Итак, чтобы связать файлы .js.php с JavaScript, я должен создать файл с именем Javascript.sublime-settings, заполненный { "extensions": [ "js.php" ] }?
Остин Шмидт
Да, если файл не существует, если он уже существует, просто добавьте желаемое расширение в массив «extensions».
xpeiro