Ruby 变量和关键字的 Sublime color 语法
Sublime color syntax for Ruby variables vs keywords
有没有办法让 Sublime Text 2 为 Ruby "variables" 和 "keywords" 显示不同的颜色?下图是使用默认 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
,对于 x
是 variable.other.block.ruby
,因此可以根据您的喜好进行调整。
本质上,一个项目只有在具有不同范围的情况下才能被着色,并且您的配色方案包含该范围的规则(或它的更通用版本,但不是它的更具体版本)。例如,与 Python 相比,Ruby 尤其具有挑战性,因为虽然 Python 方法总是在末尾带有括号(例如 string_var.replace()
)并且可以将正则表达式写入突出显示点 .
和括号之间的任何内容作为函数调用,Ruby 不遵循此范例,因此语法突出显示定义(在各种 .tmLanguage
文件中找到)无法区分方法调用和一个简单的属性,因此无法以不同方式突出显示它们。这就是为什么list.each
在你的程序中只有source.ruby
,而each
没有作为函数高亮显示。
有没有办法让 Sublime Text 2 为 Ruby "variables" 和 "keywords" 显示不同的颜色?下图是使用默认 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
,对于 x
是 variable.other.block.ruby
,因此可以根据您的喜好进行调整。
本质上,一个项目只有在具有不同范围的情况下才能被着色,并且您的配色方案包含该范围的规则(或它的更通用版本,但不是它的更具体版本)。例如,与 Python 相比,Ruby 尤其具有挑战性,因为虽然 Python 方法总是在末尾带有括号(例如 string_var.replace()
)并且可以将正则表达式写入突出显示点 .
和括号之间的任何内容作为函数调用,Ruby 不遵循此范例,因此语法突出显示定义(在各种 .tmLanguage
文件中找到)无法区分方法调用和一个简单的属性,因此无法以不同方式突出显示它们。这就是为什么list.each
在你的程序中只有source.ruby
,而each
没有作为函数高亮显示。