12

Smartyを使用して HTML テンプレートを生成します。私は現在 html の強調表示を使用していますが、Smarty タグを強調表示しないことを除いて、ほとんど問題ありません。たとえば{foreach} 、Smarty パッケージをインストールしようとしましたが、あまり良くありません。

したがって、基本的には、中括弧内のハイライトを標準の HTML カラーリングに追加できる必要があります。これはどのように行うことができますか?

4

3 に答える 3

26

バックグラウンド

@MattDMo は、.tmThemeファイルが強調表示を制御する主要なファイルであることは正しいです。これは、一連の正規表現と、どの正規表現がどのタイプの構文要素に一致するかを示すタグを含む XML ファイルです。

GitHub で検索すると、.tmThemeファイルを含む Sublime Text パッケージを既に作成している多くの人を見つけることができます。Sublime Text は同じ規則を使用するため、TextMate 用に作成されたパッケージを直接使用できることに注意してください。.tmTheme(これは、ファイルに関する限り、少なくとも当てはまり.tmPreferencesます。)

たとえば、もともと TextMate 用に作成された ChucK 言語用の構文強調表示パッケージを直接取得し、それを SublimeText2 で使用することができました。.tmThemeTextMateで使うファイルをコピーするだけですぐに動作しました。.tmTheme追加のジャンク ファイルを削除し、パッケージ マネージャーのサポートを追加するだけでなく、にいくつかの変更を加えました。

ここでそのプロジェクトを参照してください: https://github.com/nathanleiby/ChucK.tmbundle

新しい構文をインストールする方法

荷物管理

理想的には、既に必要な構文が Sublime Text Package Control にダウンロード可能に含まれています。Package Control で検索し、直接インストールします。(パッケージ コントロールをまだお持ちでない場合は、取得する必要があります: https://github.com/wbond/package_control_channel/ )

手動で

.tmThemeファイルをダウンロードする場合、または.tmBundle直接ダウンロードする場合は、ST の適切なパッケージ フォルダーにコピーする必要があります。/Packagesフォルダーとフォルダーがあることに注意して/Packages/Userください。ST2 のドキュメントでは、更新中にメイン フォルダー内の他のパッケージが消去または変更された場合でも保持されることが保証されているため、後者にコピーすることを提案しています。

OSX では、そのディレクトリは次のとおりです。~/Library/Application Support/Sublime Text 2/Packages/User/

(注:git clone簡単に更新できるように、パッケージをこのフォルダーに入れることをお勧めします。)

独自の作成方法

構文の強調表示を掘り下げてカスタマイズしたい場合は、ここから始めましょう。

  • 正規表現をブラッシュアップします。
  • 構文定義の Sublime Text ドキュメント
  • <ctrl> + <shift> + p. ファイルを見ているときはいつでも、任意の単語を選択してこのキーの組み合わせを押してから、フッター バーを見てください。一連の構文の説明が表示されます。例: 見ている SQL ファイル内の単語を強調表示したところ、応答は次のとおりでした: source.sql string.other.quoted.backtick.sql.
  • XML ではなく、JavaScript / JSON を使用して構文を解析することをお勧めします。PackageDevを使用します。これは、Package Control を介して取得できます。.json (JSON) ファイルと .tmTheme (XML) ファイルの間を行き来できるコマンドがあります。
  • StackOverflow に関する関連する質問。

警告

これは明白かもしれませんが、構文強調表示の有用性は、Sublime Text で選択した配色に関連しています。(Sublime Text 2 -> 設定 -> 配色 -> ...)

これを詳細に調査/検証する機会はまだありませんが、一部の配色では、構文要素の種類が多い/少ないと区別されるようです。

この理由から、「もののかい」配色(特に「もののかいソーダ」バリアント)を強くお勧めします-「色を引き出す」ようです.

于 2013-04-08T19:38:27.240 に答える
2

You probably need to modify your .tmTheme to add custom highlighting for the scopes defined by setting your syntax to Smarty. There should be a Smarty.tmlanguage file in the Packages/Smarty/Syntaxes directory. It's XML, so it can be a little tough for casual reading, but if you understand regexes and the scopes are named intelligently, you should be able to figure out how to modify your theme.

于 2013-03-26T22:03:33.720 に答える