Sublime Text 3 - Detectar sintaxe com base no cabeçalho do arquivo

6

Como obteria o Sublime Text 3 para reconhecer o tipo de arquivo (ou seja, definir a sintaxe e o sistema de compilação) com base no cabeçalho de um arquivo?

Por exemplo: Se a primeira linha de um arquivo for <!DOCTYPE html> , ele será reconhecido como um arquivo HTML ou se a primeira linha em um arquivo for #!/usr/bin/env python3 , ele saberá que é um arquivo do Python 3.

Eu sei que normalmente extensões de arquivo ditariam isso, mas estou usando o Linux e muitos desses arquivos não têm extensões porque são comandos.

    
por DanielTA 10.05.2014 / 22:38

3 respostas

1

As definições de sintaxe têm uma regra first_line_match , por exemplo:

HTML: link

 first_line_match: (?i)<(!DOCTYPE\s*)?html

PHP: link

first_line_match: '^(#!.*[^-]php[0-9]?|<\?php)\b'

SHELL: link

first_line_match: '^#!.*\b(bash|zsh|sh|tcsh)|^#\s*-\*-[^*]*mode:\s*shell-script[^*]*-\*-'

Consulte a documentação das definições de sintaxe para obter mais detalhes.

    
por 28.08.2016 / 06:40
1

O plugin ApplySyntax lida com casos, quando você precisa de uma sintaxe diferente para arquivos com a mesma extensão e muito mais.

    
por 02.09.2017 / 01:26
1

Para expandir a resposta da Gerard Roche, se você está querendo saber como encontrar esses arquivos de definição de sintaxe no Sublime Text 3, eu encontrei esta resposta útil.

Para resumir: no MacOS X, os arquivos de pacote vivem em /Applications/Sublime Text.app/Contents/MacOS/Packages e são todos arquivos zip, mesmo que não mostrem a extensão. Para alterar as definições de sintaxe,

  1. Crie uma nova pasta para a qual você descompactará (se você descompactar no local, será mais difícil controlar todos os arquivos).
  2. Copie o arquivo de idioma que você deseja modificar para esta pasta e descompacte-o. Em seguida, renomeie o arquivo de idioma anterior como um backup.
  3. Abra o arquivo <Language>.sublime-syntax e altere a regra first_line_match para o que você precisar.
  4. Compacte todos os arquivos novamente, nomeie o arquivo zip como o arquivo original e mova-o de volta para a pasta Packages .
por 28.02.2018 / 23:31