2013-03-26 87 views
10

我使用Smarty來生成html模板。我目前使用html突出顯示,除了沒有突出顯示smarty標籤,ex {foreach} 我試過安裝Smarty包,但這看起來不太好。所以基本上我需要能夠使用大括號將標準HTML着色中的任何內容加亮。可能嗎?如何才能做到這一點?崇高文字:如何自定義語法高亮?

+0

這是一個模糊的問題,所以我只能模糊地說要嘗試使用brackethighlighter2。 – AGS 2013-03-26 21:42:41

回答

2

您可能需要修改您的.tmTheme,爲通過將語法設置爲Smarty定義的範圍添加自定義高亮顯示。 Packages/Smarty/Syntaxes目錄中應該有一個Smarty.tmlanguage文件。它是XML,因此對於隨意閱讀可能有點困難,但是如果您瞭解正則表達式並且範圍被智能地命名,您應該能夠弄清楚如何修改您的主題。

24

背景

@MattDMo是正確的一個.tmTheme文件是控制高亮的主要文件。它是一個包含一系列正則表達式和標記的XML文件,用於表示哪個RegEx匹配哪種類型的語法元素。

您可以在GitHub上搜索並找到許多已經創建了包含.tmTheme文件的Sublime Text包的人。請注意,您可以直接使用爲TextMate創建的包,因爲Sublime Text使用相同的約定。 (這是真的,至少只要.tmTheme.tmPreferences文件去。)

例如,我能直接拿一個語法高亮顯示包夾頭語言,最初是爲TextMate的製作,並使用它SublimeText2。 .tmTheme通過複製與TextMate一起使用的文件立即生效。我剛剛刪除了其他垃圾文件,然後對.tmTheme進行了一些更改,並增加了對軟件包管理器的支持。

查看該項目在這裏:https://github.com/nathanleiby/ChucK.tmbundle

如何安裝新的語法

包控制

理想情況下,你已經想語法包括可供下載的崇高文本包控制。在Package Control中搜索並直接安裝。如果你直接下載一個.tmTheme文件或.tmBundle

手動

,你會想要將它複製到相應的軟件包:(https://github.com/wbond/package_control_channel/如果沒有包控制的是,你必須得到它) 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
  • 您可能更喜歡使用JavaScript/JSON解析您的語法,而不是XML。使用PackageDev。你可以通過包控制來獲得這個。它具有允許您在.json(JSON)和.tmTheme(XML)文件之間來回切換的命令。
  • A related question on StackOverflow

買者

這可能是顯而易見的,但語法高亮的用處是關係到其配色方案您在崇高的文本選擇。 (Sublime Text 2 - > Preferences - > Color Scheme - > ...)

我還沒有機會探索/詳細驗證這一點,但似乎有些配色方案可能會區分更多/更少類型的語法元素。

因爲這個原因,我強烈推薦「Monokai」配色方案(特別是「Monokai蘇打水」),它似乎是「帶出顏色」。

+1

如果你想要一個與許多(可定製)示波器完美對比的主題,請查看我的[Neon.tmTheme](https://github.com/MattDMo/Neon.tmTheme)。它是明亮的黑色,雖然我主要將它用於Python,但它與許多其他語言(包括HTML/CSS/JavaScript)看起來不錯。是的,你在說明某些配色方案沒有其他配色方案的範圍時是正確的。我已經整理了一些關於我的主題的其他計劃的範圍,所以希望有些東西可供您使用。但是,這一切都取決於細粒度的。tmLanguage文件是。 – MattDMo 2013-04-08 20:06:40

+0

謝謝@MattDMo - 我會給它一個鏡頭!看起來非常簡單和乾淨。我很高興知道我的觀察是正確的,一些顏色方案區分了更多/更少的句法範圍。 – Nate 2013-04-09 22:55:01

2

這很簡單

  1. 有了崇高的文本2默認安裝
  2. 打開文件 「包\ HTML \ HTML.tmLanguage」,如果搜索字符串<!--你會發現,(目前)有是對「Smarty」評論的兩個參考。不要評論這些。
  3. 在您的Smarty.tmLanguage文件中搜索字符串scopeName。這實際上是一個關鍵,相關的字符串應該是類似text.html.smarty
  4. 該字符串複製到HTML.tmLanguage到位source.smarty的(字符串爲重點include在最後塊結束時,你只是取消註釋)

就是這樣。享受

+2

如果你能解釋「Packages \ HTML \ HTML.tmLanguage」是什麼或者如何在Sublime Text中打開,那將會很棒。我不知道這些信息是否在我頭頂。 – bafromca 2013-12-29 04:52:37

+2

在sublimetext的菜單中有一個叫做'''瀏覽包''的鏈接。這將打開你的包的目標文件夾(例如使用finder或Explorer)。 – svassr 2014-01-01 18:25:16