代码自动补全突然停止工作

3

我有一个 .pas 文件,在编程的过程中 - 代码自动完成功能停止工作了。我已经删除了 IDEFixPack,但没有任何改变。这可能是什么原因呢?

(我自己找到答案了,只是把这个发现留给社区。)

unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

end.

编辑:我怀疑这可能是由奇怪的行尾符引起的(文件中混合了CR、LR和CRLF):

unit Unit2;[CR]
[LF]
interface[CR][LF]
[LF]
uses[LF]
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,[CR]
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;[LF]

And so on...


1
Delphi IDE的代码完成存在大量问题。我每个月至少会发现一两个新问题。每次出现的原因似乎仍然是随机的,而且每次都不同(在我找到原因的几次情况下)。 - Jerry Dodge
没有什么特别的,只是换行符的问题。 - Fabricio Araujo
投票关闭。这是一个重复的问题,为什么应该成为维基? - RBA
1
Delphi IDE非常不一般。它在某些方面做得非常好,而在其他方面则完全失败了。自动代码完成和错误提示马上就会想到。即使是窗体设计器也充斥着错误和怪异之处。这几乎像是一个悖论,因为Delphi语言本身、编译器和RTL/VCL相对来说都非常稳定且易于使用。我几乎已经放弃了Delphi中的代码自动完成。如果我很幸运,它能正常工作,我就接受了它,否则你只能逐渐习惯它不会出现的事实。 - J...
2
只是作为旁注,这个问题在Meta上已经讨论过了。 - bummi
显示剩余5条评论
1个回答

6

这种情况的一个原因是:行尾字符混合在源文件中。使用Dos2Unix(批处理方式)或Notepad ++(如果只有单个或少量文件),将其更正为Windows行尾(CRLF),则代码补全将恢复。

我现在遇到了这个问题,让我花费了一个多小时来找出发生了什么。当然,Delphi上的代码补全存在缺陷,这只是一个原因。但它是一个棘手的问题。


6
因为这是一个常见问题,而且我不想增加回答次数。 - Fabricio Araujo

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