Sublime Text 2 修改變量顏色

歡迎前往個人博客 駑馬點滴 和視頻空間 嗶哩嗶哩-《挨踢日志》

需求分析


在 Lua 編程過程中,我們希望能夠體驗“所見即所得”的效果,即:

  • 看到 this 或者 self 就知道這是一個對象的實例
  • 看到 m_Name , m_Callback 就知道這是成員變量
  • 看到 _var_name 就知道這是一個局部變量
  • 看到 __var_func 就知道這是一個 function 類型局部變量

這是我們通過 約定命名規則實現知識的“共享”,以 減少理解的成本

實際過程中,我們看到的代碼很可能是這樣的:

image.png

雖然在命名層面,我們達成了一致,然而,要想快速識別出 selfthis 、成員變量、局部變量、局部函數等,仍然不直觀

于是,我們希望通過 為不同命名規則的變量設置不同的顏色提高大腦識別的速度
我們希望的效果應該是這樣的:

image.png

實現


要完成上述功能,我們只需要改動2個文件的配置,保存完畢即可。

文件列表

這兩個文件是:

  1. C:\Users\HX\AppData\Roaming\Sublime Text 2\Packages\Color Scheme - Default\Monokai.tmTheme
  2. C:\Users\HX\AppData\Roaming\Sublime Text 2\Packages\Lua\Lua.tmLanguage

說明:

  • 其中的 HX 是用戶名,不要懵了,那是我的名字
  • Monokai.tmTheme 是我選擇的 color 主題, 我最喜歡這個,在這個主題上進行了一些修改
  • 只修改 Lua.tmLanguage 是因為我目前只用 Lua 語言進行開發工作

修改配置:

  • C:\Users\HX\AppData\Roaming\Sublime Text 2\Packages\Color Scheme - Default\Monokai.tmTheme
    中添加如下配置
<!-- User Define Begin -->
<dict>
    <key>name</key>
    <string>UserVariable</string>
    <key>scope</key>
    <string>user_variable</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string></string>
        <key>foreground</key>
        <string>#00BFFF</string>
    </dict>
</dict>
<dict>
    <key>name</key>
    <string>UserMemberVariable</string>
    <key>scope</key>
    <string>user_member_variable</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string></string>
        <key>foreground</key>
        <string>#EEEE00</string>
    </dict>
</dict>
<dict>
    <key>name</key>
    <string>UserLocalVariable</string>
    <key>scope</key>
    <string>user_local_variable</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string></string>
        <key>foreground</key>
        <string>#FD971F</string>
    </dict>
</dict>
<dict>
    <key>name</key>
    <string>UserLocalFunctionVariable</string>
    <key>scope</key>
    <string>user_local_function_variable</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string></string>
        <key>foreground</key>
        <string>#FF00FF</string>
    </dict>
</dict>
<dict>
    <key>name</key>
    <string>UserClass</string>
    <key>scope</key>
    <string>user_class</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string></string>
        <key>foreground</key>
        <string>#66D9EF</string>
    </dict>
</dict>
<!-- User Define End -->

內容很簡單,提供了幾類不同命名規則變量的顏色配置信息

  • C:\Users\HX\AppData\Roaming\Sublime Text 2\Packages\Lua\Lua.tmLanguage
    修改和添加以下配置
<dict>
    <key>match</key>
    <string>(?&lt;![^.]\.|:)\b(self|_self)\b</string>
    <key>name</key>
    <string>user_variable.language.self.lua</string>
</dict>
<dict>
    <key>match</key>
    <string>(?&lt;![^.]\.|:)\b(this|_this)\b</string>
    <key>name</key>
    <string>user_variable.language.lua</string>
</dict>
<dict>
    <key>match</key>
    <string>(?&lt;![^.]\.|:)\b(params)\b</string>
    <key>name</key>
    <string>variable.language.lua</string>
</dict>
<dict>
    <key>match</key>
    <string>(?&lt;![^.]\.|:)\b(class)\b</string>
    <key>name</key>
    <string>user_class.language.lua</string>
</dict>
<dict>
    <key>match</key>
    <string>(?&lt;!:)\b(m_([a-zA-Z0-9_]*))\b</string>
    <key>name</key>
    <string>user_member_variable.language.lua</string>
</dict>
<dict>
    <key>match</key>
    <string>(?&lt;![^.]\.|:)\b(_([a-zA-Z0-9])([a-zA-Z0-9_]*))\b</string>
    <key>name</key>
    <string>user_local_variable.language.lua</string>
</dict>
<dict>
    <key>match</key>
    <string>(?&lt;![^.]\.|:)\b(__([a-zA-Z0-9])([a-zA-Z0-9_]*))\b</string>
    <key>name</key>
    <string>user_local_function_variable.language.lua</string>
</dict>

上面的內容也很簡單,將正則表達式匹配的文本,設置為對應的樣式配置。(到這步,你已經懂得了匹配規則到樣式的映射關系,那么,如何配置成你想要的樣式,就任你發揮了)

保存~盡情體驗所見即所得的快感吧~~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容