智能文件搜索可以忽略空格并在代码中搜索的窗口?

时间:2009-10-31 14:27:47

标签: search ide workflow text-editor

是否有人知道基于Windows的搜索工具易于使用且是程序员 友好。

我正在寻找的功能:

忽略搜索中的空格

=能够找到

myTestFunction ( $parameter, $another_parameter, $yet_another_parameter )
{ doThis();

使用查询

myTestFunction($parameter,$another_parameter,$yet_another_parameter){doThis();

没有Regexes。

搜索代码“语义上”(对我来说,它必须是PHP):

  • 仅在评论中搜索
  • 仅在函数名称中搜索
  • 搜索名为$ xyz
  • 的参数
  • 仅在<(em>插入代码构造)中搜索

如果周围没有,那么有人开发它的时候了! :) 我为此开了一笔赏金。

7 个答案:

答案 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上运行。看看它,我想你会发现它正是你正在寻找的。

答案 2 :(得分:1)

  

搜索代码“语义上”(对我来说,它必须是PHP):

为此,您可以(我认为应该)使用token_get_all()

使用一些自定义代码

See also the available tokens

  

忽略搜索中的空格

一个简单的正则表达式就足够了。这取决于您的正则表达式库,但大多数都带有空格修饰符/标记。

答案 3 :(得分:1)

对于我的Windows桌面搜索,我使用Agent Ransack。我使用它作为Windows搜索的替代品。

您可以使用正则表达式,但如果您想避免直接输入它们,则会有一个很好的输入屏幕。

答案 4 :(得分:0)

看看Google Desktop API,它有非常强大的方法来完成你正在寻找的东西。

当然,它要求您安装Google桌面。

稍微检查一下后,它会提供一些功能,但不具备您所需要的功能。

答案 5 :(得分:0)

我非常喜欢Crimson Editor,它允许RegEx搜索。在过去的六年里,它帮助了我一大堆。我认为它符合您的需求。试试吧。

答案 6 :(得分:0)

我使用TextPad在Windows中搜索代码文件。它有一个非常方便的文件查找功能(搜索/查找文件),你可以使用应该满足任何搜索要求的正则表达式。在搜索结果中,它将列出文件位置,行号和该行的片段。