是否有人知道基于Windows的搜索工具易于使用且是程序员 友好。
我正在寻找的功能:
忽略搜索中的空格
=能够找到
myTestFunction ( $parameter, $another_parameter, $yet_another_parameter )
{ doThis();
使用查询
myTestFunction($parameter,$another_parameter,$yet_another_parameter){doThis();
没有Regexes。
搜索代码“语义上”(对我来说,它必须是PHP):
如果周围没有,那么有人开发它的时候了! :) 我为此开了一笔赏金。
答案 0 :(得分:3)
请参阅我们的SD Search Engine。这是一个语言敏感的搜索引擎,旨在搜索大型代码库,具有C,C ++,Java,C#,COBOL,JavaScript,Ada,Python,Ruby和许多其他语言的特殊语言分类器,包括您的特定目标语言PHP( PHP4和PHP5)。
我认为它会做你要求的一切。
它为语言元素编制索引,因此跨大代码库的搜索速度非常快(Linux Kernal ~~ 7.5百万行 - > 2.5秒)。 (索引步骤运行 在Windows上,但显示引擎是Java。)
搜索匹配显示在单行上下文命中窗口中,显示文件和行号,以及突出显示命中的行。点击命中会显示源代码,相应地展开选项卡,并且即使对于具有奇数行计数规则(例如GCC WRT表单字符)的语言,行数也是正确的,并且突出显示命中行和命中文本。单击源窗口将在文件上启动您喜欢的编辑器。
因为它理解语言元素,所以它忽略了特定于语言的空白。它会跳过评论,除非你坚持要他们接受检查。搜索因此忽略空格,注释和lineboundaries(如果语言认为lineboundaries是空格,这就是为什么有langauge特定的扫描程序)。查询语言允许您指定所需的语言标记(引号中的特定标记,或标识符I,数字N,字符串S,运算符O和标点符号P等通用标记),其中包含令牌值的约束以及一系列令牌令牌。
您的示例搜索:
myTestFunction($parameter,$another_parameter,$yet_another_parameter){doThis();
将完全表达给搜索引擎:
I=myTestFunction '(' I ',' I ',' I ')' '{' I=dothis '(' ')' ';'
但是找到它可能会更容易(更少打字):
I=myTest* ... I=dothis
其中I = myTest *表示以 myTest 开头的标识符,而 ... 表示“靠近”。
如果您坚持,搜索引擎还会对文本提供正则表达式搜索。 所以你仍然有类似grep的搜索(比索引搜索慢很多) 但也有命中窗口和源显示窗口。
答案 1 :(得分:2)
我真的成功地使用ack来做这种事情,特别是在尝试在大型代码库中查找内容时。我自己运行它,但我没有看到任何理由为什么它至少不会在Windows或Cygwin上运行。看看它,我想你会发现它正是你正在寻找的。 p>
答案 2 :(得分:1)
搜索代码“语义上”(对我来说,它必须是PHP):
为此,您可以(我认为应该)使用token_get_all()
忽略搜索中的空格
一个简单的正则表达式就足够了。这取决于您的正则表达式库,但大多数都带有空格修饰符/标记。
答案 3 :(得分:1)
对于我的Windows桌面搜索,我使用Agent Ransack。我使用它作为Windows搜索的替代品。
您可以使用正则表达式,但如果您想避免直接输入它们,则会有一个很好的输入屏幕。
答案 4 :(得分:0)
答案 5 :(得分:0)
我非常喜欢Crimson Editor,它允许RegEx搜索。在过去的六年里,它帮助了我一大堆。我认为它符合您的需求。试试吧。
答案 6 :(得分:0)
我使用TextPad在Windows中搜索代码文件。它有一个非常方便的文件查找功能(搜索/查找文件),你可以使用应该满足任何搜索要求的正则表达式。在搜索结果中,它将列出文件位置,行号和该行的片段。