pat*_*ick 3 vim ctags ruby-on-rails-3
说我有这个代码:
class User < ActiveRecord::Base
scope :recent, where(:created_at => 2.weeks.ago)
end
Run Code Online (Sandbox Code Playgroud)
...然后在vim中,我转到另一个文件,看到:
User.recent
Run Code Online (Sandbox Code Playgroud)
有没有办法我可以配置ctags,以便在查找时:标记最近,它会带我到范围声明?它似乎只查找实际方法定义的内容.
...
另外,有没有办法为标签指定路径?我得到的是,我想为给定的rails项目中的所有gem生成ctags,以便我可以从我的代码中跳转到第三方代码方法声明.这可能吗?
要为ActiveRecord范围创建自定义标记,只需使用—regex-<LANG>命令行选项.该选项需要一个正则表达式替换模式,其中包含(1)与源代码中的语言特征匹配的模式,以及(2)应为其创建的标记条目.在我们的例子中,我们想要查找范围定义,并且我们想要创建一个带有范围名称的标记.
--regex-ruby=/^[ \t]*scope[ \t]*:([a-zA-Z0-9_]+)/\1/
现在,如果我们在文本编辑器中看到ActiveRecord范围,我们可以快速跳转到模型中的定义!
添加到.ctags配置文件时,默认情况下将应用该选项.
echo '--regex-ruby=/^[ \t]*scope[ \t]*:([a-zA-Z0-9_]+)/\1/' >> .ctags