Como personalizar o tipo de arquivo para associações de sintaxe no Sublime Text?

Respostas:

1166

No Sublime Text (confirmado nas v2.xe v3.x), existe um comando de menu:

Ver -> Sintaxe -> Abrir tudo com a extensão atual como ...

TedG
fonte
18
você tem alguma idéia de como isso se reflete nos arquivos de configuração de texto sublime? Estou tentando conseguir isso com uma receita automatizada de chef e não consigo descobrir o que definir nas configurações JSON.
brad
24
Funciona de forma idêntica no Sublime Text 3 também. Graças @TedG
fusion27
11
@brad Abra configurações específicas de sintaxe (configurações Scala.sublime na pasta Usuários) e adicione a elas: {"extensions": ["scala", "sbt"]}
omittones
5
Também não funciona como esperado para nomes de arquivos com extensão dupla. Editando o *.sublime-settings faz trabalho.
MM.
9
Como você define uma sintaxe padrão para arquivos abertos que não têm extensão?
cavalcade 27/02
38

Encontrei a resposta (examinando melhor a estrutura dos arquivos de configuração do Sublime 2):

Eu deveria abrir

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

E edite-o para adicionar sbt(a extensão dos arquivos que eu quero que sejam abertos como arquivos de código Scala) à matriz após a fileTypeschave:

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

PS: Pode haver uma maneira melhor, algo como um lugar certo para colocar minhas personalizações (em vez de modificar os próprios pacotes), eu ainda gostaria de saber.

Ivan
fonte
1
está agora em/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
Guillaume Massé
2
Eu acho que é a biblioteca de usuário ao invés da biblioteca do sistema:~/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
seren
4
@ Eric, você deve ler com mais cuidado. Ele abre todos os arquivos com essa extensão específica com a sintaxe especificada. Na maioria das vezes, é isso que você deseja.
Vincent Ketelaars
28

Coloquei minhas alterações personalizadas no pacote do usuário:

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

O que também significa que está no formato JSON:

{
  "extensions":
  [
    "sbt"
  ]
}

Este é o mesmo lugar que

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

o item de menu o adiciona (criando o arquivo se ele não existir).

rodo
fonte
2
Observe que este é o único método (pelo menos no ST2) que permite definir sintaxe específica para arquivos com extensões duplas (por exemplo, whatever.twig.html), pois o método de menu leva apenas o último!
MM.
1
Eu achei isso funciona com Sublime Texto 3. I utilizado View -> Syntax -> Open all with current extension as ...para criar o arquivo de idioma Markdown.sublime-settingsem ~/Library/Application Support/Sublime Text 3/Packages/User/e, em seguida, editado este arquivo para adicionar extensões de arquivo extra.
Jake Rayson
13

Existe um excelente plug-in chamado ApplySyntax (anteriormente DetectSyntax) que fornece outras outras informações para a correspondência de sintaxe de arquivo. permite expressões regex etc.

Kaushik Gopal
fonte
9

Existe um método rápido para definir a sintaxe: Ctrl+ Shift+ Pe digite na caixa de entrada

ss + (qual o tipo que você deseja definir)

por exemplo: ss html +Enter

e ss significa "definir sintaxe"

é realmente mais rápido que marcar na caixa de seleção do menu.

Hello Wor1d
fonte
7

para ST3

$ language = "idioma que você deseja"

se existir,

vá para ~ / .config / sublime-text-3 / Pacotes / Usuário / $ language .sublime-settings

outro

crie ~ / .config / sublime-text-3 / Pacotes / Usuário / $ language .sublime-settings

E definir

{"extensions": [" yourextension "]}

Dessa maneira, você pode habilitar a sintaxe para extensões compostas (por exemplo, sql.mustache, js.php, etc ...)

xpeiro
fonte
2
Então, para associar arquivos .js.php ao JavaScript, devo criar um arquivo chamado Javascript.sublime-settings preenchido { "extensions": [ "js.php" ] }?
Austin Schmidt
Sim, se o arquivo não existir, se já existir, basta adicionar a extensão desejada na matriz "extensions".
Xpeiro