gpt4 book ai didi

delphi - 将一个单元添加到项目中所有单元的使用子句中?

转载 作者:行者123 更新时间:2023-12-03 15:01:53 25 4
gpt4 key购买 nike

我发现某些类型的代码清理和重构由于向大型项目的使用子句添加单元的困难而变得非常困难。

我想将一个单元添加到单个项目中所有 delphi .pas 单元的接口(interface)使用子句中,这意味着在 500 多个地方手动执行此操作。每次我重构一个巨大的单元并将其从一个单元分成两个单元时,我可能可以使用“notepad++”之类的东西进行搜索和替换,将“MyOldUnit”更改为“MyOldUnit,MyNewUnit”,但有时,这样做并不安全。它还错过了“MyOldUnit”是uses子句中最后一个内容的情况(“uses MyOldUnit;”)。

无论如何,在文件中搜索和替换是一件危险的事情。如果不存在这样的工具,我正在考虑使用 Castalia delphi 解析器编写一个。我检查了 GExperts、Castalia、ModelMakerCodeExplorer,它们都没有办法将单元批量插入到项目中的所有 use 子句中。我希望有一个工具可以做到这一点。

其次,在很多情况下,我会将一个函数从一个不属于另一个单元的单元移出,但这意味着我需要将该单元添加到项目单元的 30% 中,而不是其他 70% 中已经添加的地方。这意味着需要解析器方法,而不是正则表达式方法。

最佳答案

因为我们都编写肯定会在其他项目中使用的代码。如果您将接口(interface)部件从一个单元移动到另一个单元,您将会破坏您的项目。新旧单位相同。

但是您可以在不破坏项目的情况下进行重构。只需将部分(单元、类、方法、过程)标记为已弃用。您的代码正在运行,但编译器会向您发出警告。

这是将过程从一个单元移动到另一个单元的示例:

unit Foo;

interface

procedure FooProc; deprecated; // new location in unit FooNew

implementation

uses
FooNew;

procedure FooProc;
begin
FooNew.FooProc;
end;

end.

关于delphi - 将一个单元添加到项目中所有单元的使用子句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com