Sublime Text 2 有没有办法为 Ruby“变量”和“关键字”显示不同的颜色?下图是具有默认 Monokai 配色方案的 Ruby 代码示例。我希望变量(list、x)的颜色与关键字(each、print)的颜色不同。
目前,它们都与<key>foreground</key>
相关联。 。我确实尝试更改 variable
颜色,但只改变了 |x|
.
最佳答案
不,没有办法使用 Sublime 附带的默认 Ruby 语法来执行此操作。 list
、each
、print
和 x
的作用域均为 source.ruby
,这意味着它们没有可以通过配色方案定位的特定范围。另一方面,end
的作用域是 keyword.control.ruby
,do
的作用域是 keyword.control.start-block.ruby
(除了适用于所有元素的基本 source.ruby
范围之外),因此,如果您的配色方案中有 keyword
或 的规则>keyword.control
,它们可以有不同的颜色。 |x|
是管道 |
的 punctuation.separator.variable.ruby
和 variable.other.block.ruby
code> 为 x
,因此可以根据您的喜好进行调整。
本质上,只有当项目具有不同的范围,并且您的配色方案包含该范围的规则(或其更通用的版本,但不是更具体的版本)时,才可以对其进行着色。例如,与 Python 相比,Ruby 尤其具有挑战性,因为 Python 方法末尾总是有括号(例如,string_var.replace()
),并且可以编写正则表达式来突出显示点之间的任何内容.
和括号作为函数调用,Ruby 不遵循这种范例,因此语法高亮定义(在各种 .tmLanguage
文件中找到)无法区分方法调用和一个简单的属性,因此无法区分地突出显示它们。这就是为什么程序中的 list.each
只是 source.ruby
,并且 each
没有突出显示为函数。
关于ruby - Ruby 变量和关键字的 Sublime 颜色语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398732/