未声明的标识符,查找单元而不使用Google。

3

Delphi中是否有一种“自动神奇”的方法来查找可能包含未声明标识符的单元格?

例如,我打开一个新项目,并添加了TEditTButton。我只需键入:

TFile

我遇到了一个未声明的标识符,但在这种情况下幸运的是当我按下F1时,我得知它在System.IOUtils中。但有时我就没那么幸运了。

有没有什么快捷键或者大家是怎么做的呢?

(我必须承认,我通常会在谷歌上搜索这个)


2
有“查找单元”功能(重构菜单或Shift+Ctrl+A)。但大多数情况下它会失败,经常在IDE中出现访问冲突。可能谷歌是最好的选择... - Andreas Rejbrand
4
如果F1失效,接下来我会通过Delphi的源文件(或适用于我使用的组件的任何其他位置,如果它是第三方组件)进行“查找文件”操作。 - MartynA
2
您还可以在后台打开命令行窗口,进入C:\Program Files (x86)\Embarcadero\Studio\NN.N\source文件夹,然后执行findstr /S /I /C:"TFile =" *.pas命令。 - Andreas Rejbrand
2
如果您关心隐私,为什么要使用谷歌(涉及跟踪),而不是使用DuckDuckGo?在那里也可以找到单元中的类型声明。否则,我会像@AndreasRejbrand一样使用findstr,因为这是一个“在文件中查找”的工具,保证在每个Windows安装中都存在。 - AmigoJack
1
对于 Delphi RTL/VCL/FMX,我使用相当可靠的 F1。对于我自己的代码和我喜欢使用的组件,我使用 MMX Code Explorer,这是一个免费工具,具有索引器。您可以索引硬盘上拥有的任何源代码。如果您有很多源文件(我有几千个单元需要扫描),扫描文件可能需要几分钟,但之后搜索将是即时的。 - fpiette
显示剩余2条评论
2个回答

1
我知道以下几种方便的方法:
  1. IDE内置的“查找单元”重构。不幸的是,我觉得它不太可靠。
  2. GExperts中的“Uses Clause Manager”专家(切换到右侧的标识符选项卡
  3. 由Stefan Glienke编写的“Delphi Uses Helper”IDE插件。

评论中列出了一些我认为不太方便的工具(可能除了我不知道的 MMX Code Explorer)。GExperts 中的 "Grep 搜索" 专家也可能会有所帮助。或者,您可以使用 "Delphi 帮助专家",而不是手动将搜索词输入到 Google 中,该工具允许您指定一个搜索引擎,当您按下 F1 + 修改键时,它就会打开。


对我来说,最好的选择是GExperts的Grep搜索。在Delphi IDE中使用“查找单元”会导致大约80%的崩溃,并且在剩下的20%中,它甚至无法找到任何Delphi类。 - Miroslav Penchev

1

我偏爱的选择顺序:

  1. Alt + F11 - 在活动项目的单位列表中使用“使用单元”,以防我知道我需要哪个单位。
  2. GExperts 的 Grep 搜索

我从不使用 IDE 的查找单元,它在最近几个版本的 RAD Studio 中几乎总是崩溃,之后我需要重新启动 IDE 并重新加载项目组,这比 Grep 搜索花费的时间要多得多。

也许你正在寻找像 Android Studio 中那样神奇的工具 - 抱歉,在 RAD Studio 中我们没有这样的工具。也许现在是时候有人制作它了。


你有没有尝试过Uses Clause Manager的Identifier选项卡?它比Grep快得多,对我很有效。 - dummzeuch
@dummzeuch 老实说 - 我从未尝试过,因为 grep 搜索结果总能给我一些额外的信息,并且对我的需求来说速度足够快 - 在我们的一个项目组中,大约有1000个源代码文件,它只用了不到一秒钟,而在完整的 RAD Studio 源文件夹中则需要大约2-3秒钟。 - Miroslav Penchev
你提到的Android Studio中那个“神奇”的东西是什么? - dummzeuch
@dummzeuch,我指的是Android Studio中的功能,即在您首次在源文件中使用类时自动添加包导入。 - Miroslav Penchev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接