1. ホーム
  2. syntax-highlighting

[解決済み] Sublime 2/3での言語のシンタックスハイライトの変更・追加

2023-02-06 05:52:46

質問

Sublime 2/3で、ある言語のシンタックスハイライトを変更・追加したいのですが、可能でしょうか?

例えば、私はキーワード this をJavaScriptで色付けしたい。

どうすればいいのでしょうか?

私は、環境設定 JavaScript ファイルが C:\Program Files\Sublime Text 3\Packages にあることは知っていますが、何を変更すればよいのか、あるいはこのフォルダのどこかに新しい JavaScript 環境設定ファイルを作成しなければならないのかわかりません。 %APPDATA%\Sublime Text 3 .

どのように解決するのですか?

シンタックスハイライトは、使用しているテーマによって制御され、以下の方法でアクセスできます。 Preferences -> Color Scheme . テーマはスコープを使って異なるキーワード、関数、変数などを強調します。スコープは .tmLanguage ファイルに含まれる一連の正規表現によって定義されます。例えば JavaScript.tmLanguage ファイルでは、スコープを source.jsvariable.language.js this というキーワードを追加しました。Sublime Text 3 は .sublime-package zip ファイル形式を使用しているため、個々のファイルを編集するのはあまり簡単ではありません。

残念ながら、すべてのテーマがすべてのスコープを含んでいるわけではないので、いろいろなテーマで遊んでみて、見栄えがよく、探しているハイライトが得られるものを見つける必要があります。Sublime Text には多くのテーマが含まれていますし、さらに多くのテーマが パッケージコントロール で利用できます。 非常に まだインストールしていない場合は、インストールすることをお勧めします。必ず ST3 の指示 .

偶然にも、私が開発した Neon Color Scheme を開発しました。これは Package Control から利用可能で、見てみるといいかもしれません。私の主な目標は、広範囲の言語をできるだけ見やすくすること以外に、できるだけ多くの異なるスコープを識別することでした。JavaScriptの言語定義はPythonほど徹底していませんが、たとえば Neon のようなデフォルトのものよりもはるかに多様性があります。 MonokaiSolarized .

<イグ

なお、@int3hの Better JavaScript の言語定義を使っています。パッケージコントロールでインストールすることができます。

アップデイト

最近になって、JavaScriptの置換言語の定義をもう一つ発見しました。 JavaScriptNext - ES6 Syntax . これは、ベースとなるJavaScriptやBetter JavaScriptよりも多くのスコープを持っています。同じコードで見るとこんな感じです。

また、最初にこの回答を書いてから、@skuroda がリリースした PackageResourceViewer をパッケージコントロール経由でリリースしました。の一部または全体をシームレスに表示、編集、抽出することができます。 .sublime-package パッケージの一部または全体をシームレスに表示、編集、抽出することができます。そのため、Sublime に含まれるカラースキームを直接編集することができます。

その他の更新

ほぼすべてのデフォルトパッケージのリリースに伴い を Github で公開しています。 で公開され、変更は急速に進んでいます。古い JS 構文は JavaScript Next ES6 Syntax の最良の部分を含むように完全に書き直され、今では限りなく ES6 互換になっています。A ton の変更が行われ、コーナーケースやエッジケースをカバーし、一貫性を高め、全体的に良くなっています。新しい構文は、(現時点では) 最新の 開発ビルド 3111.

新しい構文のいずれかを、現在の ベータ版 3103 で使用したい場合は、Github リポジトリをどこかにクローンし、その中の JavaScript (または任意の言語) をあなたの Packages ディレクトリにコピーします - システム上で Preferences -> Browse Packages... . そして、単純に git pull を実行して変更を反映させれば、最新かつ最高の状態で楽しむことができます! なお、このレポでは新しい .sublime-syntax の代わりに、新しい .tmLanguage を使用するため、3084 より前の ST3 ビルドや ST2 では動作しません(いずれの場合も、最新のベータまたは開発ビルドにアップグレードしている必要があります)。

現在、新しい JS 構文のすべての新しいスコープを処理するために Neon Color Scheme を微調整していますが、ほとんどはすでにカバーされているはずです。