標籤:

codeblocks寫代碼有時候會自動補全,有時候不補全?

類中的成員變數以及方法的提示不出現,變數提示也沒有。

例如cin.get()的get(),有時候會出現,有時候不出現,實在搞糊塗了


建立工程


右鍵單擊,選擇Format use AStyle,然後代碼補全就恢復了。應該是文本格式不統一導致的代碼補全功能失效。


我裝的是版本是16.01,前幾天的情況是:有的關鍵詞會自動補全,有的不會。
今天又試了下,不知道怎麼就可以了。整理下百度到的信息,貌似跟以下操作相關。
1. 需要建立工程(project)。而不只是寫一個 .c或 .cpp文本文件。
2.快捷鍵設置(16.01版本默認為shift-space)(菜單欄Settings-Editor--&>左側Keyboard shortcuts--&>Edit-Complete code)

可以參考下這個codeblocks代碼補全,(可能版本不同,他說的這些我一個也沒改)


把"stay here"關掉


我是出了問題來找答案的,結果也沒弄好。結果試了一下保存重開cb就好了(ー_ー)!!


可能在 code completion 功能中有bug,我也在苦惱中。

看codeblocks wiki 說這個功能好像是已經停止開發,有bug在裡面

The current Code::Completion plug-in has some flaws, and is currently development frozen.

http://wiki.codeblocks.org/index.php?title=Code::Completion_Rewrite

============================

不過我剛才又測試了一下,其實這個自帶的codeblocks的代碼補全功能還是比較完善的。

有時不能自動補全是因為源碼文件書寫格式不正確,我的原因是換行符不統一造成的

把 CR LF 統一成了 LF 就解決問題了。


昨天試了試,感覺codeblocks和QtCreator的代碼補全還是有差距。我工程里有兩個文件,暫且叫它們XXX.h和XXX.cpp吧,在XXX.h里我定義了一個class A,它被放在了namespace N裡面,就像這樣:

namespace N
{
class A
{
public:
...
void foo();

private:
int m_data;
}
}

然後我在XXX.cpp里是這樣寫的:

using namespace N;
void A::foo()
{
m_data = 5;
}

在A::foo()的實現里就識別不出m_data來,可是成員函數是有補全提示的。


我是工程一定有補全,非工程看心情


這個bug應該和文件名字有關,你把你的x.cpp文件命名成strlen.cpp這種庫裡面有的文件,然後輸入類名就會自動提示對象了。。。

strlen.cpp有提示~

xxx.cpp無提示


我也這樣,不過更詭異,工程的編譯器如果是clang就沒法補全,把配置文件改成用gcc編譯然後重啟code::blocks就可以補全了,有人知道為什麼的么


同樣遇到相同的問題,而且沒有解決,所以我改用codelite了。


一樣一樣的,求解答!!!


我這兒的情況是這樣的:

1. 如果你在前面聲明了using std::cin (/cout),然後在後文中直接使用cin (/cout),代碼就不會自動補全;

2. 如果你聲明的是using namespace std; 然後在後文中直接使用cin (/cout),或是乾脆不聲明,而使用std::cin (/cout),代碼就可以自動補全。

你可以試試。


推薦閱讀:

在輪子哥的 UnitTest.h 當中這段代碼是什麼意思?
如何解決光線跟蹤中浮點數誤差導致的渲染錯誤?
c++里有沒有類似python中list的結構?
本人熟悉window下C/C++開發,windows網路/多線程編程,怎麼快速轉到linux下做開發?

TAG:C | Code::Blocks |