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 |