2013-03-26 11 views
10

私はSmartyを使ってhtmlテンプレートを生成します。私は現在、私はSmartyのパッケージをインストールしようとしたことがSmartyのタグをハイライト表示されません除いて、ほとんどが細かいですHTMLの強調表示、元{foreachの} を使用していますが、それは非常に良い見ていません。だから、基本的には、中括弧を使って何かの強調表示を標準のhtml色付けに追加する必要があります。出来ますか?これはどうすればできますか?崇高な文章:構文ハイライトをカスタマイズするには?

+0

私はあいまいな質問のようなものですので、私は曖昧にbrackethighlighter2を試して言うことができます。 – AGS

答えて

2

おそらく、カスタムのSmartyにあなたの構文を設定することによって定義されたスコープの強調表示を追加するためにあなたの.tmThemeを変更する必要があります。 Packages/Smarty/SyntaxesディレクトリにはSmarty.tmlanguageというファイルが存在する必要があります。それはカジュアルな読書のために少し厳しいものになることができますので、それは、XMLですが、あなたは正規表現を理解し、スコープをインテリジェントに命名されている場合、あなたはあなたのテーマを変更する方法を見つけ出すことができるはずです。

24

背景

@MattDMoは.tmThemeファイルがハイライトを制御する主ファイルであること権利です。これは一連の正規表現とタグを持つXMLファイルで、どのRegExが構文要素のタイプと一致するかを示します。

あなたはGitHubの上で検索し、すでに.tmThemeファイルが含まれている崇高テキストパッケージを作成している多くの人を見つけることができます。 Sublime Textは同じ規則を使用するため、TextMate用に作成されたパッケージを直接使用することができます。 (.tmTheme.tmPreferencesファイルが行くように、これは、少なくとも限り真である。)

例えば、私が直接、もともとはTextMateのために作られたチャック言語用のパッケージをシンタックスハイライトを取る、とSublimeText2それを使用することができました。 .tmThemeは、TextMateで使用されているファイルをコピーしてすぐに機能します。追加の迷惑メールファイルを削除した後、.tmThemeに少し変更を加えただけでなく、パッケージマネージャのサポートが追加されました。 https://github.com/nathanleiby/ChucK.tmbundle

は、ここにそのプロジェクトを参照してください。

はどのように新しい構文

パッケージのコントロールをインストールする

理想的には、すでに必要な構文は崇高なテキストパッケージ制御でダウンロードできます含まれています。パッケージ内を検索し、直接インストールしてください。 (あなたはまだパッケージ制御を持っていない場合、あなたはそれを得る必要があります: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 documentation for syntax definitions
  • <ctrl> + <shift> + p。ファイルを見ているときはいつでも、任意の単語を選択してこのキーの組み合わせを押してから、フッターバーを見てください。一連の構文の説明が表示されます。例:私が見ているSQLファイルの単語を強調表示したところ、応答はsource.sql string.other.quoted.backtick.sqlでした。
  • おそらく、XMLではなくJavaScript/JSONを使用して構文を解析することをお勧めします。 PackageDevを使用してください。これはパッケージコントロールを介して取得できます。これには、.json(JSON)と.tmTheme(XML)ファイルの間を行き来するコマンドがあります。
  • related question on StackOverflow

警告

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

私はまだチャンスを探検していませんが、これを詳細に検証していますが、いくつかのカラースキームでは、 of構文要素の。

このような理由から、「モノカイソーダ」の配色(特に「モノカイソーダ」)をお勧めします。「色を出す」ようです。

+1

(カスタマイズ可能な)スコープがたくさんある対照的なテーマが必要な場合は、[Neon.tmTheme](https://github.com/MattDMo/Neon.tmTheme)を参照してください。私はPythonのためにそれを主に使用していますが、HTML/CSS/JavaScriptを含む他の多くの言語ではうまく見えます。そして、はい、あなたは、いくつかの配色が他の配色と同じくらい多くのスコープを持っていないと言っても間違いありません。私は私のテーマのために他のスキームのスコープの束を照合したので、うまくいけばそこにあなたが使うべきものがあるでしょう。しかし、それはどれほど細かいかにかかっています。tmLanguageファイルはです。 – MattDMo

+0

ありがとう@MattDMo - 私はそれを打つつもりです!非常にシンプルできれいに見えます。私の所見がオントラックであったことを知っていて、いくつかのカラースキームがより多くの/より構文的なスコープを区別していることが分かりました。 – Nate

2

それはあなたが文字列<!--を検索した場合、あなたがそこに(現在)のことを気づくでしょう、

  • ファイルを開く "パッケージ\ HTML \ HTML.tmLanguage" 崇高テキスト2デフォルトのインストールでは

    1. かなり簡単です"Smarty"への2つの言及がコメントされています。これらのコメントを解除します。
    2. Smarty.tmLanguageファイルでは、文字列scopeNameを検索します。これは実際にはキーであり、関連する文字列はtext.html.smartyのようなものにする必要があります。
    3. はこれだけです

    (あなただけの非コメントし、最後のブロックの最後にキーincludeの文字列)source.smartyの代わりにHTML.tmLanguageにその文字列をコピーします。お楽しみください

  • +2

    "Packages \ HTML \ HTML.tmLanguage"がどこにあるのか、またはSublime Textで開く方法を説明できればうれしいでしょう。私は私の頭の上からこの情報を知りませんでした。 – bafromca

    +2

    sublimetextのメニューには、 '' 'browse packages'''というリンクがあります。これにより、パッケージの宛先フォルダが開きます(たとえば、ファインダまたはエクスプローラを使用)。 – svassr

    関連する問題