Sublime Text 3 - Ermitteln Sie die Syntax anhand des Datei-Headers

6

Wie kann ich erreichen, dass Sublime Text 3 den Dateityp (d. H. Die Syntax und das Build-System) anhand eines Datei-Headers erkennt?

Zum Beispiel: Wenn die erste Zeile einer Datei war <!DOCTYPE html>Wird es als HTML-Datei erkannt oder wäre die erste Zeile in einer Datei #!/usr/bin/env python3 es würde wissen, dass es eine Python 3-Datei ist.

Ich weiß, dass normalerweise Dateierweiterungen dies diktieren würden, aber ich verwende Linux und viele dieser Dateien haben keine Erweiterungen, weil es sich um Befehle handelt.

DanielTA
quelle

Antworten:

1

Syntaxdefinitionen haben a first_line_match Regel, zum Beispiel:

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'

SCHALE: 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[^*]*-\*-'

Siehe die Dokumentation zu Syntaxdefinitionen für mehr Details.

Gerard
quelle
1

ApplySyntax Plugin behandelt Fälle, in denen Sie für Dateien mit der gleichen Erweiterung und vielem mehr eine andere Syntax benötigen.

Alexei Danchenkov
quelle
1

Um die Antwort von Gerard Roche zu erweitern: Wenn Sie sich fragen, wie Sie diese Syntaxdefinitionsdateien in Sublime Text 3 finden, habe ich gefunden diese Antwort hilfreich.

Zusammenfassend: Unter MacOS X befinden sich die Paketdateien unter /Applications/Sublime Text.app/Contents/MacOS/Packages und sind alle zip-Dateien, auch wenn sie die Erweiterung nicht zeigen. So ändern Sie die Syntaxdefinitionen:

  1. Erstellen Sie einen neuen Ordner, in den Sie entpacken möchten (wenn Sie die Datei entpacken, ist es schwieriger, den Überblick über alle Dateien zu behalten).
  2. Kopieren Sie die zu ändernde Sprachdatei in diesen Ordner und entpacken Sie sie. Benennen Sie dann die vorherige Sprachdatei als Sicherung um.
  3. Öffne das <Language>.sublime-syntax Datei und ändern Sie die first_line_match Regel zu was auch immer Sie brauchen.
  4. Packen Sie alle Dateien wieder zusammen, benennen Sie die Zip-Datei genauso wie die Originaldatei und verschieben Sie sie dann wieder in den Ordner Packages Mappe.
JeffP
quelle