ruby - 使用语法高亮将代码编写为字符串

标签 ruby emacs elisp syntax-highlighting text-editor

我正在尝试在文本编辑器上将 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 开始和结束)?

最佳答案

至少 Atom、Sublime Text 和 RubyMine 支持基于 heredoc 的语法高亮显示标识符。 <<-RUBY呈现为 Ruby,<<-SQL如 SQL 等。

这是 Atom 的屏幕截图:

Atom Editor Screenshot

关于ruby - 使用语法高亮将代码编写为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26572499/

相关文章:

emacs - Emacs Lisp 的有趣错误

ruby-on-rails - 更新 crontab (Whenever gem)

ruby-on-rails - Rails 4 Devise 3.1.1 ActionController::UnknownFormat 在 Devise::RegistrationsController#new

ubuntu - Emacs Tramp 在挂起/恢复后保存并打开当前缓冲区时挂起

emacs - 在所有文件的顶部隐藏长版权信息

emacs - 我如何应用新的 Emacs C 样式来重新格式化我的所有源文件?

mysql - Rails - 安装 Gem 时出错

ruby - 如何使用 Ruby 在字符串中显示变量

emacs - 如何在 Emacs 中打开/关闭特定模式?

pattern-matching - elisp pcase谓词模式匹配