Codeblocks中的自动完成功能

5

每次我在CodeBlocks编程时,一开始自动完成功能都很好。但是经过一些操作和几分钟后(我不知道原因),自动完成只能部分工作。

它可以补全基础变量的名称,但不能补全结构体内部的名称等。

这是什么原因?

我所说的“结构体内部的名称”是指例如变量gl.A:

typedef struct
{
bool A;

} B;          
B gl;

谢谢你,

很抱歉我的英文不太好...

4个回答

13

此外(作为 Lubulos 回答的补充),当您遇到这种情况时,尝试转到左侧面板(项目管理),右键单击您的项目,然后单击“重新解析此项目”。您将注意到顶部显示当前代码块的条将变为灰色一段时间。恢复后,请尝试重新输入您正在输入的内容,并检查问题是否已解决。

如果您从开始(或上次重新解析以来)仅编辑了一个文件,则有时也可以使用“重新解析此文件”,这样会更快一些。


8
Code::Blocks的代码补全插件(Code::Completion)非常棒,但存在一些bug。例如,如果你在编写C++代码时,有时方法和属性的补全功能无法正常工作。
目前,在Code::Blocks论坛上有一个名为CodeCompletion Redesign的板块,开发者们不断改进这个插件。如果你确认了插件设置正确(Plugin > Manage Plugins或Setting > Editor... > Code::Completion & Symbol Browser),但问题仍然存在,可以尝试访问论坛。

很不寻常,他们没有将.inl文件包含在默认文件类型中...最长时间我以为C::B有模板问题,哈哈。谢谢! - Conduit
3
CodeCompletion Redesign 的实际下载位置在哪里?除非它深埋在论坛的某个地方... - Enigma

0
对我来说,问题出在一个 include 语句的末尾多了一个单引号,导致代码补全插件无法正常工作。由于代码仍然可以编译,这个问题很难被发现。
删除这个多余的单引号就解决了问题。原始代码如下:
#include "DialogSA.h"'

将此行更改为以下内容(即删除错误的“'”)可修复C :: B中的CodeComplete:
#include "DialogSA.h"

简言之,你的问题可能不是由插件本身引起的,而是代码中的微小错误(在我的情况下仍然编译通过,因此很难找到)。

0
此外(作为对Lubulos答案的补充),在您检查设置后,如果仍然无法正常工作,请确保关闭并重新打开文件/项目,因为它不会自动更新,至少对我来说是这样。

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