需求分析
在 Lua 编程过程中,我们希望能够体验“所见即所得”的效果,即:
- 看到 this 或者 self 就知道这是一个对象的实例
- 看到 m_Name , m_Callback 就知道这是成员变量
- 看到 _var_name 就知道这是一个局部变量
- 看到 __var_func 就知道这是一个 function 类型局部变量
这是我们通过 约定命名规则 来 实现知识的“共享”,以 减少理解的成本。
实际过程中,我们看到的代码很可能是这样的:
image.png虽然在命名层面,我们达成了一致,然而,要想快速识别出 self
、this
、成员变量、局部变量、局部函数等,仍然不直观。
于是,我们希望通过 为不同命名规则的变量设置不同的颜色 来 提高大脑识别的速度。
我们希望的效果应该是这样的:
实现
要完成上述功能,我们只需要改动2个文件的配置,保存完毕即可。
文件列表
这两个文件是:
C:\Users\HX\AppData\Roaming\Sublime Text 2\Packages\Color Scheme - Default\Monokai.tmTheme
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>(?<![^.]\.|:)\b(self|_self)\b</string>
<key>name</key>
<string>user_variable.language.self.lua</string>
</dict>
<dict>
<key>match</key>
<string>(?<![^.]\.|:)\b(this|_this)\b</string>
<key>name</key>
<string>user_variable.language.lua</string>
</dict>
<dict>
<key>match</key>
<string>(?<![^.]\.|:)\b(params)\b</string>
<key>name</key>
<string>variable.language.lua</string>
</dict>
<dict>
<key>match</key>
<string>(?<![^.]\.|:)\b(class)\b</string>
<key>name</key>
<string>user_class.language.lua</string>
</dict>
<dict>
<key>match</key>
<string>(?<!:)\b(m_([a-zA-Z0-9_]*))\b</string>
<key>name</key>
<string>user_member_variable.language.lua</string>
</dict>
<dict>
<key>match</key>
<string>(?<![^.]\.|:)\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>(?<![^.]\.|:)\b(__([a-zA-Z0-9])([a-zA-Z0-9_]*))\b</string>
<key>name</key>
<string>user_local_function_variable.language.lua</string>
</dict>
上面的内容也很简单,将正则表达式匹配的文本,设置为对应的样式配置。(到这步,你已经懂得了匹配规则到样式的映射关系,那么,如何配置成你想要的样式,就任你发挥了)
保存~尽情体验所见即所得的快感吧~~
网友评论