Pregunta:
¿Cómo puedo conseguir que Sublime Text 3 reconozca el tipo de archivo (es decir, establecer la sintaxis y el sistema de compilación) según el encabezado de un archivo?
Por ejemplo: si la primera línea de un archivo fuera <!DOCTYPE html>
, se reconocería como un archivo HTML o si la primera línea de un archivo fuera #!/usr/bin/env python3
, sabría que es un Python 3 archivo.
Sé que normalmente las extensiones de archivo dictarían esto, pero estoy usando Linux y muchos de estos archivos no tienen extensiones porque son comandos.
Respuesta:
Las definiciones de sintaxis tienen una regla first_line_match
, por ejemplo:
HTML: https://github.com/sublimehq/Packages/blob/master/HTML/HTML.sublime-syntax#L12
first_line_match: (?i)<(!DOCTYPE\s*)?html
PHP: https://github.com/sublimehq/Packages/blob/master/PHP/PHP.sublime-syntax#L13
first_line_match: '^(#!.*[^-]php[0-9]?|<\?php)\b'
SHELL: https://github.com/sublimehq/Packages/blob/master/ShellScript/Shell-Unix-Generic.sublime-syntax#L18
first_line_match: '^#!.*\b(bash|zsh|sh|tcsh)|^#\s*-\*-[^*]*mode:\s*shell-script[^*]*-\*-'
Consulte la documentación de definiciones de sintaxis para obtener más detalles.