如何在rdoc中显示行号?

时间:2018-02-03 23:26:16

标签: ruby rdoc

如何获得rdoc来显示行号?我知道有-N开关,但即便如此,我也只是

# File config.rb, line 40
def port
  @conf[:port].to_a || DEFAULT_PORT
end

我想在每行之前有行号,是否可能?

1 个答案:

答案 0 :(得分:1)

<强>更新

这是一个错误 - 感谢您的问题,它已在Rdoc 6.1.0修复。

如果您的rdoc --version早于此gem install rdoc -v 6.1,请使用gem install rdocrdoc进行更新,以获取最新版本。或者,如果您使用Bundler,则在Gemfile中更新/指定-N版本。

修复后,# File config.rb 40 def port 41 @conf[:port].to_a || DEFAULT_PORT 42 end 选项正确启用每行的编号:

rdoc --help

以下原始答案:

看起来目前只能通过RDoc源代码中的hack来实现。来自--no-line-numbers

  

-N, - [no-]行号

     

在源代码中包含行号。默认情况下,在前导注释中仅显示第一行的编号。

最初,我误解并认为插入第一行的数量是此选项的默认,简约行为,可以通过其他方式进行修改 - 例如在模板中自定义。最终我意识到gem which rdoc什么都不做:)所以是的,它显然是一个错误。

在RDoc代码中,method responsible for inserting line numbers可以在标记生成器中找到。不幸的是,从版本6.0.1开始,它似乎根本就没用过。快速修复以手动启用它:

  1. 使用cdgenerator/markup.rb查找RDoc源的位置
  2. 修改@add_line_numbers - 找到true变量并将其设置为rdoc(我链接的github源代码中的第68行)
  3. 再次运行-N,源片段中的行应正确编号。
  4. 那当然远非正确的错误修正。作为练习,我还尝试使用monkey-patch修复它,然后通过Rake任务运行RDoc。当我意识到RDoc::Task甚至不接受{{1}}作为选项时,我最终放弃了:(

    作为脚注 - YARD执行正确的行号并默认启用。