标签:
在程序开发过程中,程序员经常用到的一个功能就是查找引用(Find Reference),Visual Studio里面的对应功能是“查找所有引用”(Find All References)。
本人在使用notepad++写代码的时候一直因为找不到类似的功能和苦恼。只好每次使用“在文件中查找”(Find in files)来找到所有引用。
但是这样每次查找都需要遍历目标目录的整个文件系统,文件多的话会耗费很长时间。
notepad++有插件可以实现同样的功能,但是相比于搜索整个文件系统,这种插件只需要执行一次生成关键词索引,后面就只需要在关键词索引里面查找就行了。速度很快,出结果是瞬间的。
我目前发现两种这类插件,一个在plugin manager里面叫“Gtags Search",安装好后叫做"gtagfornplus"。但是经过试用,我发现在当前最新版本(6.7.9.2)的notepad++中无法使用。使用方法参见:http://sourceforge.net/p/gtagfornplus/code/HEAD/tree/
另一个插件是NppGTags。
这个插件的官方声明里是这样说的:GTags built-in code parser supports C, C++, Yacc, Java, PHP4 and Assembly. Other languages are supported through Pygments + CTags parser.就是说默认的(内建的)语法解析器只支持C C++ Yacc Java PHP4和汇编语言,而可选的Pygments和CTags parser这两个解析器是可以支持其他语言的。我用notepad++是开发lua脚本的,所以看来只能选择后两种解析器了。可是CTags parser实际上只能用到Find Definitions而Find Reference(查找引用)这个功能没有用。Pygments这个一直不能成功使用,提示"gtags: cannot open shared object ‘pygments-parser.dll‘.
发现lua不能被支持挺沮丧的。不过后来试了一下将.lua后缀名改成.c后竟然能用!于是想了一下将整个工程文件下的.lua重命名为.c或.hpp来支持lua的查找引用。我也实际写了个脚本这么做了,可以这样查找所有的引用,但是运行的时候还是需要.lua。如果复制一份并修改复制的.lua为.c或.hpp,则无法在完美支持查找引用的同时进行修改,因为修改了以后需要将相应的修改应用到修改了后缀名的文件上,并且查找引用里面的点击跳转无法跳转到.lua文件,只能跳转到改了后缀名的文件里面,这样无法及时对相应lua文件进行修改。
在查找pygments不能使用(因为网上有人说跳出提示说pygments-parser.dll打不开的原因是指定的路径不对)的过程中发现在NppGTags目录下面有一个文件gtags.conf
这里面指定了在使用非默认的解析器时对不同的语言用不同的解析器文件(dll)。往上翻发现在使用build-in的解析器的时候指定了不同的语言对应的文件后缀名!于是我猜想这里添加.lua就能支持lua文件的关键词索引数据库创建。如下所示:
接下来(确保在setting里面切回默认解析器,而不是pygments或ctags),然后点击插件->NppGtags->Create Database创建索引数据库,然后选中关键词后就可以查找引用(点击插件->NppGtags->Find Reference)了,结果如下图所示(查找结果在最下面的窗口,这里是查找对”rect“的引用):
配合快捷键使用就很方便了。从查找结果点击可以进入源文件。怎么样,还是很酷的吧 :D
版权声明:本文为博主原创文章,未经博主允许不得转载。
notepad++ 查找引用(Find Reference)(适用于c c++及各类脚本比如lua)
标签:
原文地址:http://blog.csdn.net/o_oxo_o/article/details/46755629