User forums > Using Code::Blocks
code completion settings do not take effect.
plainzw:
Code completion settings changing takes no effect on recently nightly builds.
Even when I disable code completion, it still works.
ollydbg:
--- Quote from: plainzw on October 14, 2014, 09:36:29 am ---Code completion settings changing takes no effect on recently nightly builds.
Even when I disable code completion, it still works.
--- End quote ---
Which one does not save correctly? Any settings?
I will look at it later.
ollydbg:
Bug confirmed in latest nightly builds, which is svn build rev 9958 (2014-10-12 15:53:58) gcc 4.8.1 Windows/unicode - 32 bit.
scarphin:
I remember alpha mentioning that they were hardcoded on the clang code completion thread.
ollydbg:
--- Quote from: scarphin on October 14, 2014, 12:13:01 pm ---I remember alpha mentioning that they were hardcoded on the clang code completion thread.
--- End quote ---
But I believe this bug was cause by my commit rev9920.
Here, I have create two empty virtual function:
--- Code: --- /** read Parser options from configure file */
virtual void ReadOptions() {}
/** write Parse options to configure file */
virtual void WriteOptions() {}
--- End code ---
But in NativeParser's constructor
--- Code: ---NativeParser::NativeParser() :
m_TimerParsingOneByOne(this, idTimerParsingOneByOne),
m_ClassBrowser(nullptr),
m_ClassBrowserIsFloating(false),
m_ImageList(nullptr),
m_ParserPerWorkspace(false),
m_EditorStartWord(-1),
m_EditorEndWord(-1),
m_LastAISearchWasGlobal(false),
m_LastControl(nullptr),
m_LastFunctionIndex(-1),
m_LastFuncTokenIdx(-1),
m_LastLine(-1),
m_LastResult(-1)
{
m_TempParser = new ParserBase;
m_Parser = m_TempParser;
--- End code ---
The temp parser will call:
--- Code: ---ParserBase::ParserBase()
{
m_TokenTree = new TokenTree;
m_TempTokenTree = new TokenTree;
ReadOptions();
}
--- End code ---
Thus, ReadOptions() does nothing.
But ReadOptions() does do some jobs in
--- Code: ---void Parser::ReadOptions()
{
ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("code_completion"));
// one-time default settings change: upgrade everyone
bool force_all_on = !cfg->ReadBool(_T("/parser_defaults_changed"), false);
if (force_all_on)
{
cfg->Write(_T("/parser_defaults_changed"), true);
cfg->Write(_T("/parser_follow_local_includes"), true);
cfg->Write(_T("/parser_follow_global_includes"), true);
cfg->Write(_T("/want_preprocessor"), true);
cfg->Write(_T("/parse_complex_macros"), true);
}
// Page "Code Completion"
m_Options.useSmartSense = cfg->ReadBool(_T("/use_SmartSense"), true);
m_Options.whileTyping = cfg->ReadBool(_T("/while_typing"), true);
m_Options.caseSensitive = cfg->ReadBool(_T("/case_sensitive"), false);
// Page "C / C++ parser"
m_Options.followLocalIncludes = cfg->ReadBool(_T("/parser_follow_local_includes"), true);
m_Options.followGlobalIncludes = cfg->ReadBool(_T("/parser_follow_global_includes"), true);
m_Options.wantPreprocessor = cfg->ReadBool(_T("/want_preprocessor"), true);
m_Options.parseComplexMacros = cfg->ReadBool(_T("/parse_complex_macros"), true);
// Page "Symbol browser"
m_BrowserOptions.showInheritance = cfg->ReadBool(_T("/browser_show_inheritance"), false);
m_BrowserOptions.expandNS = cfg->ReadBool(_T("/browser_expand_ns"), false);
m_BrowserOptions.treeMembers = cfg->ReadBool(_T("/browser_tree_members"), true);
// Token tree
m_BrowserOptions.displayFilter = (BrowserDisplayFilter)cfg->ReadInt(_T("/browser_display_filter"), bdfFile);
m_BrowserOptions.sortType = (BrowserSortType)cfg->ReadInt(_T("/browser_sort_type"), bstKind);
// Page "Documentation:
m_Options.storeDocumentation = cfg->ReadBool(_T("/use_documentation_helper"), false);
// force re-read of file types
ParserCommon::EFileType ft_dummy = ParserCommon::FileType(wxEmptyString, true);
wxUnusedVar(ft_dummy);
}
--- End code ---
I'm thinking a solution.
Navigation
[0] Message Index
[#] Next page
Go to full version