我正在尝试利用RubyMine快速文档和代码完成。我很高兴地发现它整合了YARD风格的评论:
# @param [Numeric] width
# @param [Array<String>] values
# @return [Widget]
def foo(width, values)
...这些注释适用于参数,返回类型,甚至是类型集合。但是我找不到任何类似的标签或者局部变量,我很确定Ruby中没有类型转换(我是否提到我是新手?)
有没有办法将RubyMine引入本地和/或实例变量的类型?
答案 0 :(得分:14)
根据Matt Connolly引用的问题跟踪器上发布的最新评论,这似乎即将发布:http://youtrack.jetbrains.com/issue/RUBY-9142#comment=27-787975
&#34;局部变量可以使用或不使用变量名进行注释:&#34;
# @type [String]
my_var = magic_method
# @type my_var [String]
my_var = magic_method
# @type [String] my_var
my_var = magic_method
# @type [String] my_var And some documentation is allowed
my_var = magic_method
&#34;还支持多项作业:&#34;
# @type my_var [String] The first part
# @type other_var [Range] The second part
my_var, other_var = magic_method
&#34;但是在多项任务的情况下,没有var名称的表格将不起作用(这是有争议的,但我倾向于它可能会导致一些错误)
也可以注释块参数:&#34;
method_with_block do
# @type [String] param1
# @type [Range] param2
| param1, param2 |
# some code...
end
&#34;需要注意的是,类型注释将放在do或{和块参数列表之后,以帮助避免可能的歧义。在单行的情况下,它看起来很麻烦,但我不确定它们是否需要大量注释。无论如何,任何建议都是非常受欢迎的。&#34;
答案 1 :(得分:5)
对于这个特定问题,这不是100%的答案,但可以指出其他有用的技巧。
在测试中,我这样做是为了欺骗RubyMine(5.0.2)
user = users(:normal) || User.new
因为使用fixtures我确信用户(:first)将返回该对象,并且由于Use.new - IDE认为它应该是User实例。
答案 2 :(得分:4)
似乎没有。我建议在问题跟踪器中查找现有功能请求,并添加让您的声音在那里听到。例如:
http://youtrack.jetbrains.com/issue/RUBY-9142
<强>更新强>
此功能现在随RubyMine 7.0(Tsubaki)EAP(138.1968)及更高版本(但请注意Rubymine 7.0目前处于EAP(即测试版)),并且总有可能无法进入最终发行版。)