【问题标题】:Sublime color syntax for Ruby variables vs keywordsRuby 变量和关键字的崇高颜色语法
【发布时间】:2015-06-06 13:39:01
【问题描述】:

Sublime Text 2 有没有办法为 Ruby“变量”和“关键字”显示不同的颜色?下图是具有默认 Monokai 配色方案的 Ruby 代码示例。我希望我可以让变量(列表,x)与关键字(每个,打印)的颜色不同。

目前,它们都与<key>foreground</key> 绑定。我确实尝试过更改variable 颜色,但这只更改了|x|。

【问题讨论】:

    标签: ruby sublimetext2


    【解决方案1】:

    不,没有办法使用 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 用于x,因此可以根据您的喜好进行调整。

    本质上,一个项目只有在具有不同范围的情况下才能着色,并且您的配色方案包含该范围的规则(或更通用的版本,但不是更具体的版本)。例如,与 Python 相比,Ruby 尤其具有挑战性,因为 Python 方法的末尾总是有括号(例如string_var.replace()),并且可以编写正则表达式来突出显示点 . 和括号之间的任何内容作为函数调用,Ruby 不遵循这种范式,因此语法高亮定义(在各种.tmLanguage 文件中找到)无法区分方法调用和简单属性,因此无法区分它们。这就是为什么你的程序中的list.each只有source.ruby,而each没有作为函数高亮显示。

    【讨论】:

    • 非常感谢您的澄清。我遇到过同样的问题。希望这一天可以解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2018-01-11
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多