ctags 5.7 改进了对Perl的支持

分类: 计算机技术 | 由 zhang发布于

当今大多数系统上的标准tags应用程序??Exuberant ctags, 已发布了5.7的版本供下载。其对Perl的支持的改进如下:(当然还有其他方面的改进)

  • 增加了对关键字 'package' 的支持
  • 增加了对多行子过程(subroutine)、package和常量定义的支持
  • 增加了对可选子过程声明的支持
  • 增加了对格式的支持
  • 忽略混杂在定义和声明中的注释
  • 修复对label名之后带空格的检测
  • Fixed misidentification of fully qualified function calls as labels

如果你还没有用过tags或者ctags,现再就开始用吧。你的生活将和以前不再一样。

例如,如果你对源代码树运行ctags,然后再从shell里运行vim -t some_function,vim将会打开此文件并将光标置于some_function之处。另外,如果你用vim编辑一个文件,并将光标置于some_function上,并按下Ctrl-],vim就跳转到这个函数。其他编辑器也都有类似的绑定。

你的编辑器并不认识Perl,它只是依赖于ctags产生的tags文件,后者是一个标准的文件。当然,ctags并不是Perl本身,所以也没有那么精确。v5.7中的改进将使你的tag文件更为精确。

如果你弄了个Perl的module,也很容易为makefile增加一个tags用的target。你可以从作者的主要的module中((WWW::Mechanize, ack, 等等))的Makefile.PL中偷一个来用,或者,你也可以在你的Makefile.PL中增加如下代码:

sub MY::postamble {
my $postamble = <<'MAKE_FRAG'; .PHONY: tags tags: ctags -f tags --recurse --totals \ --exclude=blib \ --exclude=.svn \ --exclude='*~' \ --languages=Perl --langmap=Perl:+.t \ MAKE_FRAG }
(自从有了ctags 5.7, 再也不需要 --exclude=.svn 了,因为ctags现在可以自动忽略它了。)
原文链接:http://perlbuzz.com/2007/09/ctags-57-improves-perl-support.html


我的相关文章:

最近阅读过此文章的网友:
Tags : , ,
Trackback url : u can trackback from your own site

发表看法