Gibt die Programmiersprache in einer Datei ohne Erweiterung an

8

Beim Schreiben ausführbarer Skripte und deklarativer Konfigurationsdateien, die eine gemeinsame Sprache verwenden (zB Python), finde ich es oft nicht wünschenswert, dem Dateinamen eine Erweiterung hinzuzufügen. Viele Syntax-Hervorhebung Texteditor (z. B. Geany) können anschließend nicht automatisch den Dateityp bestimmen.

Gibt es eine Standardmethode, um Editoren den Typ der Quelle in der Datei anzuzeigen?

    
Matt Joiner 31.12.2009, 05:35
quelle

3 Antworten

6

Normalerweise wird die Shebang-Linie als Fallback verwendet.

Zum Beispiel würde ein Ruby-Skript ohne Erweiterung mit folgendem beginnen:

%Vor%     
Bob Aman 31.12.2009, 05:39
quelle
18

Vim

Vim hat ein Konzept namens modeline . Eine Modeline ist eine speziell formatierte Zeile innerhalb der ersten oder letzten 5 Zeilen der Textdatei, die es Ihnen ermöglicht,% local_% lokale Variablen zu verwenden. Zum Beispiel für C:

%Vor%

oder Ruby:

%Vor%

Weitere Dokumentation .

Emacs

Emacs hat ein ähnliches Konzept, das File Variables genannt wird .

Dateivariablen werden entweder am Anfang der Datei (in der ersten Zeile oder wenn es eine Shebang-Zeile gibt, dann in der zweiten) in dieser Form angegeben:

%Vor%

oder am Ende:

%Vor%

jEdit

jEdit ruft diese pufferlokalen Eigenschaften auf. Die müssen innerhalb der ersten oder letzten 10 Zeilen sitzen und so aussehen:

%Vor%

jEdit verwendet die Shebang-Linie auch als Fallback für die Moduserkennung.

Komodo Bearbeiten

Es gibt ein Plugin namens Komode (Wortspiel beabsichtigt), das Komodo Modelline-Unterstützung hinzufügt Bearbeiten:

%Vor%

Es versteht auch eine begrenzte Teilmenge von Vim-Modellen.

Andere

Viele andere Editoren haben auch ihre eigenen Varianten oder unterstützen eins der oben genannten (normalerweise Vim).

Python / Ruby-Kodierung

Sowohl für Ruby 1.9 als auch für Python muss die Codierung für Nicht-ASCII-Quelldateien explizit angegeben werden. Glücklicherweise tun sie das auf eine Weise, die sowohl mit Emacs als auch mit Vim-Modellen kompatibel ist. (Im Grunde suchen sie nach der Zeichenkette :setlocal gefolgt von einem Nicht-Wort-Zeichen gefolgt von einem Leerzeichen gefolgt von einem gültigen Kodierungsnamen. Sowohl Vim's coding als auch Emacs ' fileencoding= erfüllen diese Anforderungen.)

Modellgenerator

Hier ist ein einfacher Modelliniengenerator , der Modelines für Vim, Emacs und jEdit erzeugt.

    
Jörg W Mittag 31.12.2009 12:38
quelle
0

Dies funktioniert für viele Editoren, wenn Sie Nicht-Standard-Shebang verwenden:

%Vor%     
Matt Joiner 18.03.2011 15:46
quelle