it-swarm.com.de

Ändern / Hinzufügen von Syntaxhervorhebungen für eine Sprache in Sublime 2/3

Ich möchte die Syntaxhervorhebung für eine Sprache in Sublime 2/3 ändern/hinzufügen.

Zum Beispiel möchte ich das Schlüsselwort this in JavaScript einfärben.

Wie kann ich das machen?

Ich weiß, dass es in C:\Program Files\Sublime Text 3\Packages Eine JavaScript-Voreinstellungsdatei gibt, aber ich weiß nicht, was ich ändern soll oder ob ich irgendwo in diesem Ordner eine neue JavaScript-Voreinstellungsdatei erstellen muss %APPDATA%\Sublime Text 3.

91
Niklas

Die Hervorhebung der Syntax wird durch das von Ihnen verwendete Thema gesteuert, auf das Sie mit Preferences -> Color Scheme zugreifen können. Themen heben verschiedene Schlüsselwörter, Funktionen, Variablen usw. mithilfe von Gültigkeitsbereichen hervor, die durch eine Reihe regulärer Ausdrücke definiert sind, die in einer .tmLanguage - Datei im Verzeichnis/Paket einer Sprache enthalten sind. Beispielsweise weist die Datei JavaScript.tmLanguage Die Bereiche source.js Und variable.language.js Dem Schlüsselwort this zu. Da Sublime Text 3 das Zip-Dateiformat .sublime-package Verwendet, um alle Standardeinstellungen zu speichern, ist es nicht sehr einfach, die einzelnen Dateien zu bearbeiten.

Leider enthalten nicht alle Themen alle Bereiche. Sie müssen also mit verschiedenen herumspielen, um einen zu finden, der gut aussieht und Ihnen die gewünschte Hervorhebung bietet. Es gibt eine Reihe von Themen, die in Sublime Text enthalten sind, und viele weitere sind über Package Control verfügbar, das ich in hohem Maße empfehlen die Installation, falls Sie dies noch nicht getan haben. Stellen Sie sicher, dass Sie den Anweisungen ST folgen.

Zufällig habe ich das Neon Color Scheme entwickelt, das über die Paketsteuerung verfügbar ist und das Sie sich vielleicht ansehen möchten. Mein Hauptziel war es, neben dem Versuch, eine breite Palette von Sprachen so gut wie möglich darzustellen, so viele verschiedene Bereiche zu identifizieren, wie ich konnte - viel mehr als in den Standardthemen enthalten sind. Obwohl die JavaScript-Sprachdefinition nicht so gründlich ist wie die von Python, weist Neon immer noch eine viel größere Vielfalt auf als einige der Standardeinstellungen wie Monokai oder Solarized.

jQuery highlighted with Neon Theme

Ich sollte beachten, dass ich @ int3hs Better JavaScript Sprachdefinition für dieses Bild anstelle der mit Sublime gelieferten verwendet habe. Es kann über Package Control installiert werden.

[~ # ~] Update [~ # ~]

In letzter Zeit habe ich eine andere JavaScript-Ersatzsprachendefinition entdeckt - JavaScriptNext - ES6 Syntax . Es hat mehr Gültigkeitsbereiche als das Basis-JavaScript oder sogar besseres JavaScript. Es sieht im selben Code so aus:

JavaScriptNext

Seit ich diese Antwort ursprünglich geschrieben habe, hat @skuroda PackageResourceViewer über die Paketsteuerung veröffentlicht. Sie können damit Teile oder ganze Pakete .sublime-package Nahtlos anzeigen, bearbeiten und/oder extrahieren. Wenn Sie möchten, können Sie die in Sublime enthaltenen Farbschemata direkt bearbeiten.

EIN ANDERES UPDATE

Mit der Veröffentlichung fast aller Standardpakete auf Github haben sich die Änderungen schnell und rasend schnell vollzogen. Die alte JS-Syntax wurde komplett neu geschrieben, um die besten Teile der JavaScript Next ES6-Syntax zu enthalten, und ist jetzt so vollständig ES6-kompatibel wie möglich. Ein ton anderer Änderungen wurde vorgenommen, um Ecken- und Kantenfälle abzudecken, die Konsistenz zu verbessern und sie insgesamt zu verbessern. Die neue Syntax wurde (zu diesem Zeitpunkt) in dev build 3111 aufgenommen.

Wenn Sie eine der neuen Syntaxen mit dem aktuellen Beta-Build 3103 verwenden möchten, klonen Sie einfach das Github-Repository und verknüpfen Sie die JavaScript (oder die gewünschten Sprachen) ) in Ihr Packages Verzeichnis - finden Sie es auf Ihrem System, indem Sie Preferences -> Browse Packages... auswählen. Führen Sie dann einfach von Zeit zu Zeit einen git pull Im ursprünglichen Repo-Verzeichnis aus, um etwaige Änderungen zu aktualisieren, und genießen Sie das Neueste und Beste! Ich sollte beachten, dass das Repo das neue .sublime-syntax - Format anstelle des alten .tmLanguage - Formats verwendet, sodass es nicht mit ST3-Builds vor 3084 oder mit ST2 funktioniert (In beiden Fällen sollten Sie ohnehin auf die neueste Beta- oder Entwicklungsversion aktualisiert haben).

Ich optimiere derzeit mein Neon-Farbschema, um alle neuen Bereiche in der neuen JS-Syntax abzudecken, aber die meisten sollten bereits abgedeckt sein.

93
MattDMo

Endlich habe ich eine Möglichkeit gefunden, die vorgegebenen Themes anzupassen.

Gehen Sie zu C:\Program Files\Sublime Text 3\Packages Und kopieren Sie Color Scheme - Default.sublime-package Und benennen Sie es in Color Scheme - Default.Zip Um. Entpacken Sie es anschließend und kopieren Sie das Theme, das Sie in %APPDATA%\Sublime Text 3\Packages\User Ändern möchten. (In meinem Fall All Hallow's Eve.tmTheme).

Dann können Sie es mit einem beliebigen Texteditor öffnen und etwas ändern/hinzufügen, zum Beispiel um this in JavaScript zu ändern:

<dict>
    <key>name</key>
    <string>Lang Variable</string>
    <key>scope</key>
    <string>variable.language</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FF0000</string>
    </dict>
</dict>

Dadurch wird this in JavaScript-Dateien rot markiert. Sie können Ihr Theme unter Preferences -> Color Scheme -> User -> <Your Name> Auswählen.

30
Niklas

Verwenden Sie das Plugin PackageResourceViewer , das über Package Control installiert wurde (wie von MattDMo erwähnt). Auf diese Weise können Sie die komprimierten Ressourcen überschreiben, indem Sie sie einfach in Sublime Text öffnen und die Datei speichern. Es werden automatisch nur die bearbeiteten Ressourcen in% APPDATA%/Roaming/Sublime Text 3/Packages/oder ~/.config/sublime-text-3/Packages/gespeichert.

Spezifisch für die Operation, sobald das Plugin installiert ist, führen Sie die PackageResourceViewer: Open Resource Befehl. Wählen Sie dann JavaScript gefolgt von JavaScript.tmLanguage. Dadurch wird eine XML-Datei im Editor geöffnet. Sie können jede der Sprachdefinitionen bearbeiten und die Datei speichern. Dadurch wird eine Überschreibungskopie der Datei JavaScript.tmLanguage in das Benutzerverzeichnis geschrieben.

Dieselbe Methode kann zum Bearbeiten der Sprachdefinition einer beliebigen Sprache im System verwendet werden.

14
chawkinsuf

Das "dies" ist bereits in Javascript eingefärbt.

Ansicht-> Syntax-> und wählen Sie die Sprache aus, die hervorgehoben werden soll.

5
Epirocks