web-dev-qa-db-ja.com

崇高なテキスト:構文の強調表示をカスタマイズする方法?

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

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

12
skyisred

バックグラウンド

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

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

たとえば、TextMate用に作成された、ChuckK言語の構文強調表示パッケージを直接取得して、SublimeText2を使用することができました。 .tmThemeは、TextMateで使用されるファイルをコピーすることですぐに機能しました。追加のジャンクファイルを削除し、.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。ファイルを見ているときはいつでも、Wordを選択してこのキーの組み合わせを押してから、フッターバーを調べてください。一連の構文の説明が表示されます。たとえば、私が見ているSQLファイルでWordを強調表示したところ、応答はsource.sql string.other.quoted.backtick.sqlでした。
  • XMLではなくJavaScript/JSONを使用して構文を解析することをお勧めします。 PackageDev を使用します。これは、パッケージコントロールを介して取得できます。 .json(JSON)ファイルと.tmTheme(XML)ファイル間を行き来できるコマンドがあります。
  • A StackOverflowに関する関連質問

警告

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

私はまだこれを詳細に調査/確認する機会がありませんでしたが、いくつかの配色はより多くの/より少ないタイプの構文要素を区別しているようです。

このため、「ものかい」の配色(特に「ものかいそうそう」のバリエーション)を強くお勧めします。

24
Nate

とてもシンプルです

  1. Sublime Text 2のデフォルトのインストール
  2. ファイル「Packages\HTML\HTML.tmLanguage」を開き、文字列<!--を検索すると、「現在、「Smarty」への2つの参照がコメント化されていることがわかります。これらのコメントを外します。
  3. Smarty.tmLanguageファイルで文字列scopeNameを検索します。これは実際にはキーであり、関連する文字列はtext.html.smartyのようになります。
  4. その文字列をHTML.tmLanguageの代わりにsource.smartyにコピーします(コメントを解除した最後のブロックの最後にあるキーincludeの文字列)

それでおしまい。楽しい

2
svassr

構文をSmartyに設定して定義したスコープにカスタムハイライトを追加するには、おそらく.tmThemeを変更する必要があります。 Smarty.tmlanguageディレクトリにPackages/Smarty/Syntaxesファイルがあるはずです。それはXMLなので、カジュアルな読書には少し難しいかもしれませんが、正規表現を理解し、スコープの名前がインテリジェントに付けられている場合は、テーマを変更する方法を理解できるはずです。

2
MattDMo