PHP / Python/等中内置函数的ctags信息


ctags info for built-in functions in PHP/Python/Etc

有什么方法可以让ctags以某种方式支持PHP/Python提供的内置函数(或者我当时正在使用的任何函数),以便我也可以在源代码资源管理器中使用它们vim和类似的东西?

更新:

好的,所以使用 python,我可以在源文件夹上运行 ctags 以获取带有内置函数的标签文件,尽管使用 PHP 它似乎不起作用,但是 PHP 的源文件包含如下行:

/* {{{ proto resource mysql_connect([string hostname[:port][:/path/to/socket] [, string username [, string password [, bool new [, int flags]]]]])

因此,如果我能以某种方式使用 ctags 解析它,我将在我的标签文件中获得适当的函数。我尝试使用 --regex-C 让它拾取它,但以下内容似乎不起作用。

--regex-C='/'/'* '{'{'{ proto ([^ ]+) ([^ (]*)/'2/f/'

知道如何让它工作吗?

同样使用 python,我似乎得到了带有类的"类类名:"行,有没有办法也包含 init 函数?

更新:我将为PHP创建一个单独的问题,感谢您的回答。

>ctags允许您使用 --append 选项以增量方式构建标签数据库;如果你想要 Python 例程的 C 定义(很多?一些?一点点?直接用 C 实现,一些用 Python 本身实现),你可以运行:

ctags -R
ctags --append -R /path/to/python-source

如果你只想包含一部分Python源代码,你可以只提供这部分;正如你在评论中所说,Lib/是开始:)

ctags -R
ctags --append -R /path/to/python-source/Lib

鉴于大多数解释型语言(甚至是字节码编译的语言)最终在幕后用 C 语言实现了相当数量的接口,因此可能很难在源代码和所依赖的 API 源代码之间实现无缝过渡。

我发现拥有多个源代码数据库很有帮助;有时问题最好用cscope回答,有时用gid,有时ctagsctags非常适合集成到vim中,但gid通常更容易编写脚本。

ctags在python语法方面有很多麻烦,因为它试图寻找大括号,而python没有任何大括号。

我会说看看这个。