【发布时间】:2014-10-26 11:32:42
【问题描述】:
我正在尝试在文本编辑器上将 ruby 源代码编写为字符串(作为真实 Ruby 代码的一部分),并为 Ruby 代码提供语法高亮,但希望 Ruby 语法高亮能够在字符串内的代码上工作。使用双引号或单引号、百分比表示法、heredoc 都可以让文本编辑器识别它是一个字符串,因此整个代码块都以单一颜色作为字符串着色。
<<_
class Foo
def bar
# blah blah
end
end
_
有没有办法让编辑器上的 Ruby 语法高亮忽略字符串的边界,使其内容作为 Ruby 代码高亮显示?
编辑
Stefan 注意到 Atom、Sublime Text 和 RubyMine 上有一个很棒的功能可以做到这一点。但不幸的是,它似乎不适用于 Emacs ruby 模式。有人知道修改后的ruby-mode.el 或 emacs 上的一些附加库来执行此操作吗?
编辑
或者任何人都可以编写一个简单的 elisp 代码(如果很难实现其他语言的突出显示,那么当 heredoc 标识符为 RUBY 时忽略 heredoc 的开始和结束)?
【问题讨论】:
-
在某些编辑器中使用
RUBY(或HTML或SQL)作为heredoc标识符,即str = <<-RUBY -
您应该可以使用
mmm-mode进行设置,但这需要一些修改。
标签: ruby emacs elisp syntax-highlighting text-editor