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

Intelligent file search for windows that can ignore whitespace and search in code?

提问人:Pekka 提问时间:10/31/2009 最后编辑:Pekka 更新时间:7/20/2010 访问量:801

问:

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

我正在寻找的功能:

忽略搜索中的空格

= 能够找到

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

使用查询

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

没有正则表达式。

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

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

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

搜索 IDE 工作流 文本编辑器

评论

2赞 o.k.w 10/31/2009
您指的是 IDE 还是任何实用程序?大多数 PHP IDE 应该能够按语法上下文进行搜索。
0赞 Pekka 11/1/2009
我的 IDE,phpED,似乎没有。因此,我正在寻找独立的替代品。
2赞 rfunduk 11/19/2009
为什么“没有正则表达式”?我的意思是,正则表达式对程序员很友好。您列出的所有这些示例都可以使用正则表达式轻松完成。

答:

0赞 Jorge Córdoba 11/20/2009 #1

看看 Google 桌面 API,它有一套非常强大的方法来做你正在寻找的事情。

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

稍加审查后,它提供了一些功能,但不是您需要的那么具体。

评论

0赞 Pekka 11/22/2009
Google Desktop 看起来既有趣又简单,但不幸的是,它并没有提供我想要的开箱即用的东西。另一方面,它可以件化。嗯......也许我会看看它。
2赞 sgargan 11/21/2009 #2

我非常成功地将 ack 用于这种事情,尤其是在尝试在大型代码库中查找内容时。我自己在 linux 上运行它,但我看不出它有什么理由不能在 Windows 或至少在 Cygwin 上运行。看看吧,我想你会发现它正是你要找的。

0赞 user195488 11/22/2009 #3

我真的很喜欢 Crimson Editor,它允许正则表达式搜索。在过去的六年里,它帮助了我很多。我认为它会满足您的需求。试试吧。

评论

0赞 Pekka 11/22/2009
我使用过 Crimson Editor,它的搜索功能很好,但我更喜欢一个独立的工具,并且能够对其进行一些预设,这样我就不必在每次搜索时都变出正则表达式。(他们真的不是我的强项。
1赞 Exception e 11/22/2009 #4

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

为此,您可以(我认为应该)使用 token_get_all() 使用一些自定义代码

另请参阅可用令牌

忽略搜索中的空格

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

评论

0赞 Pekka 11/22/2009
你的意思是,实际上使用PHP在PHP代码中搜索?没想到!我只是担心它有点慢。会尝试一下。
0赞 Exception e 11/22/2009
是的,只需使用 php。我不认为它太慢。您需要想象 php 解释器需要执行相同的标记化。如果需要快速重复执行此操作,可以缓存每个文件的结果。当文件发生更改时,缓存将失效。
1赞 Matthew Farwell 11/22/2009 #5

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

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

评论

0赞 Pekka 11/22/2009
Ransack特工还在吗?会检查一下。
3赞 Ira Baxter 11/23/2009 #6

请参阅我们的 SD 搜索引擎。这是一个语言敏感的搜索引擎,旨在搜索大型代码库,具有针对C,C++,Java,C#,COBOL,JavaScript,Ada,Python,Ruby和许多其他语言的特殊语言分类器,包括您的特定目标语言PHP(PHP4和PHP5)。

我认为它满足了您的所有要求。

它为语言元素编制索引,因此跨大型代码库的搜索速度非常快(Linux 内核 ~~ 750 万行 --> 2.5 秒)。(索引步骤运行 在 Windows 上,但显示引擎是 Java 语言。

Search hits are shown in one-line context hit window showing the file and line number, as well as the line with the hit highlighted. Clicks on hits bring up the source code, tabs expanded appropriately, and the line count right even for languages which have odd line counting rules (such as GCC WRT form characters), with the hit line and hit text highlighted. Clicking in the source window will launch your favorite editor on the file.

Because it understands language elements, it ignores language-specific whitespace. It skips over comments unless you insist they be inspected. Searches thus ignore whitespace, comments and lineboundaries (if the language thinks lineboundaries are whitespace, which is why there are langauge-specific scanners). The query language allows you to specify which language tokens you want (specific tokens in quotes, or generic tokens such as identifiers I, numbers N, strings S, operators O and punctuation P) with constraints on the token value as well as a series of tokens.

Your example search:

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

would be expressed to the search engine precisely as:

 I=myTestFunction '(' I ',' I ',' I ')' '{' I=dothis '(' ')' ';'

but it would probably be easier (less typing) to find it as:

 I=myTest* ... I=dothis

where I=myTest* means an identifier starting with myTest and ... means "near".

The Search Engine also offer regular expressions searches on the text, if you insist. So you still have grep-like searches (a lot slower than indexed searches) but with the hit window and source display windows too.

评论

0赞 Pekka 11/23/2009
Hi Ira, nice to meet you again here. We have E-mailed years back about your site. Well this looks like the mother of all code searching solutions :) What's the price tag for this? I can't find it on the site.
0赞 Ira Baxter 11/23/2009
Contact SD for pricing at the website. I'm just the CTO :-} There is a demo download at the site. The download doesn't come equipped for PHP, but there is PHP module.
0赞 Stuntbeaver 11/24/2009 #7

I use TextPad for searching code files in Windows. It has a very handy find-in-files function (Search / Find In Files) and you can use regex which should meet any search requirements. In the search results it will list the file location, line number and a snippet from that line.