Thanks! It works fine now.
[debug]#23 0x02207a6a in wxAppConsoleBase::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
[debug]#24 0x02207cb6 in wxDefaultAssertHandler(wxString const&, int, wxString const&, wxString const&, wxString const&) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
[debug]#25 0x02204866 in wxOnAssert(char const*, int, char const*, char const*, char const*) () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
[debug]#26 0x025b3c7b in wxFontBase::GetWeight() const () from F:\code\wxWidgets-3.1.3\lib\gcc_dll\wxmsw313u_gcc_cb.dll
[debug]#27 0x695b425a in wxScintilla::StyleSetFont (this=0x1d249608, styleNum=32, font=...) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\wxscintilla\src\wxscintilla.cpp:4896
[debug]#28 0x6948fea6 in cbEditor::InternalSetEditorStyleBeforeFileOpen (control=0x1d249608) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbeditor.cpp:1566
[debug]#29 0x6948ed31 in cbEditor::SetEditorStyleBeforeFileOpen (this=0x1d2b8ac8) at D:\code\cb\cb_sf_git\cccrash2019\src\sdk\cbeditor.cpp:1391
void cbEditor::InternalSetEditorStyleBeforeFileOpen(cbStyledTextCtrl* control)
{
if (!control)
return;
ConfigManager* mgr = Manager::Get()->GetConfigManager(_T("editor"));
// setting the default editor font size to 10 point
wxFont font(10, wxFONTFAMILY_MODERN, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);
wxString fontstring = mgr->Read(_T("/font"), wxEmptyString);
if (!fontstring.IsEmpty())
{
wxNativeFontInfo nfi;
nfi.FromString(fontstring);
font.SetNativeFontInfo(nfi);
}
control->SetMouseDwellTime(1000);
int caretStyle = mgr->ReadInt(_T("/caret/style"), wxSCI_CARETSTYLE_LINE);
control->SetCaretStyle(caretStyle);
if (caretStyle == wxSCI_CARETSTYLE_LINE)
control->SetCaretWidth(mgr->ReadInt(_T("/caret/width"), 1));
else
control->SetCaretWidth(1);
ColourManager *colours = Manager::Get()->GetColourManager();
control->SetCaretForeground(colours->GetColour(wxT("editor_caret")));
control->SetCaretPeriod(mgr->ReadInt(_T("/caret/period"), 500));
control->SetCaretLineVisible(mgr->ReadBool(_T("/highlight_caret_line"), false));
control->SetFoldMarginColour(true, colours->GetColour(wxT("editor_margin_chrome")));
control->SetFoldMarginHiColour(true, colours->GetColour(wxT("editor_margin_chrome_highlight")));
control->SetWhitespaceForeground(true, colours->GetColour(wxT("editor_whitespace")));
// setup for "CamelCase selection"
if (mgr->ReadBool(_T("/camel_case"), false))
{
// consider CamelCase for both: cursor movement with CTRL and selection with CTRL+SHIFT:
control->CmdKeyAssign(wxSCI_KEY_LEFT, wxSCI_KEYMOD_CTRL, wxSCI_CMD_WORDPARTLEFT);
control->CmdKeyAssign(wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL, wxSCI_CMD_WORDPARTRIGHT);
control->CmdKeyAssign(wxSCI_KEY_LEFT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT, wxSCI_CMD_WORDPARTLEFTEXTEND);
control->CmdKeyAssign(wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT, wxSCI_CMD_WORDPARTRIGHTEXTEND);
}
else // else set default "none CamelCase" key behavior (also default scintilla behaviour, see scintilla docs)
{
control->CmdKeyAssign(wxSCI_KEY_LEFT, wxSCI_KEYMOD_CTRL, wxSCI_CMD_WORDLEFT);
control->CmdKeyAssign(wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL, wxSCI_CMD_WORDRIGHT);
control->CmdKeyAssign(wxSCI_KEY_LEFT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT, wxSCI_CMD_WORDLEFTEXTEND);
control->CmdKeyAssign(wxSCI_KEY_RIGHT, wxSCI_KEYMOD_CTRL|wxSCI_KEYMOD_SHIFT, wxSCI_CMD_WORDRIGHTEXTEND);
}
control->SetUseTabs(mgr->ReadBool(_T("/use_tab"), false));
control->SetIndentationGuides(mgr->ReadBool(_T("/show_indent_guides"), false)?wxSCI_IV_LOOKBOTH:wxSCI_IV_NONE);
control->SetTabIndents(mgr->ReadBool(_T("/tab_indents"), true));
control->SetBackSpaceUnIndents(mgr->ReadBool(_T("/backspace_unindents"), true));
control->SetWrapMode(mgr->ReadBool(_T("/word_wrap"), false));
if (mgr->ReadBool(_T("/word_wrap_style_home_end"), true))
{
// in word wrap mode, home/end keys goto the wrap point if not already there,
// otherwise to the start/end of the entire line.
// alt+home/end go to start/end of the entire line.
// in unwrapped mode, there is no difference between home/end and alt+home/end
control->CmdKeyAssign(wxSCI_KEY_END, wxSCI_KEYMOD_NORM, wxSCI_CMD_LINEENDWRAP);
control->CmdKeyAssign(wxSCI_KEY_END, wxSCI_KEYMOD_ALT, wxSCI_CMD_LINEEND);
control->CmdKeyAssign(wxSCI_KEY_END, wxSCI_KEYMOD_SHIFT, wxSCI_CMD_LINEENDWRAPEXTEND);
control->CmdKeyAssign(wxSCI_KEY_END, wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT, wxSCI_CMD_LINEENDEXTEND);
// if user wants "Home" key to set cursor to the very beginning of line
if (mgr->ReadBool(_T("/simplified_home"), false))
{
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_NORM,wxSCI_CMD_HOMEWRAP);
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT,wxSCI_CMD_HOME);
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT,wxSCI_CMD_HOMEWRAPEXTEND);
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT,wxSCI_CMD_HOMEEXTEND);
}
else // else set default "Home" key behaviour
{
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_NORM,wxSCI_CMD_VCHOMEWRAP);
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT,wxSCI_CMD_VCHOME);
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT,wxSCI_CMD_VCHOMEWRAPEXTEND);
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT,wxSCI_CMD_VCHOMEEXTEND);
}
}
else
{ // in word wrap mode, home/end keys goto start/end of the entire line. alt+home/end goes to wrap points
control->CmdKeyAssign(wxSCI_KEY_END, wxSCI_KEYMOD_ALT, wxSCI_CMD_LINEENDWRAP);
control->CmdKeyAssign(wxSCI_KEY_END, wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT, wxSCI_CMD_LINEENDWRAPEXTEND);
// if user wants "Home" key to set cursor to the very beginning of line
if (mgr->ReadBool(_T("/simplified_home"), false))
{
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT,wxSCI_CMD_HOMEWRAP);
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT,wxSCI_CMD_HOMEWRAPEXTEND);
}
else // else set default "Home" key behaviour
{
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_ALT,wxSCI_CMD_VCHOMEWRAP);
control->CmdKeyAssign(wxSCI_KEY_HOME,wxSCI_KEYMOD_SHIFT|wxSCI_KEYMOD_ALT,wxSCI_CMD_VCHOMEWRAPEXTEND);
}
}
control->SetViewEOL(mgr->ReadBool(_T("/show_eol"), false));
control->SetViewWhiteSpace(mgr->ReadInt(_T("/view_whitespace"), 0));
const int caretBuffer = mgr->ReadInt(wxT("/caret_buffer"), 2);
if (caretBuffer == 0)
{
control->SetYCaretPolicy(wxSCI_CARET_EVEN, 0); // default
control->SetVisiblePolicy(wxSCI_CARET_EVEN, 0); // default
}
else if (caretBuffer > 0 && caretBuffer <= 10)
{
// margin of N lines at top/bottom
control->SetYCaretPolicy(wxSCI_CARET_SLOP | wxSCI_CARET_STRICT | wxSCI_CARET_EVEN,
caretBuffer);
control->SetVisiblePolicy(wxSCI_CARET_SLOP | wxSCI_CARET_STRICT | wxSCI_CARET_EVEN,
caretBuffer);
}
else
{
// centred mode
control->SetYCaretPolicy(wxSCI_CARET_STRICT | wxSCI_CARET_EVEN, 4);
control->SetVisiblePolicy(wxSCI_CARET_STRICT | wxSCI_CARET_EVEN, 4);
}
// gutter
control->SetEdgeMode(mgr->ReadInt(_T("/gutter/mode"), 0));
control->SetEdgeColour(colours->GetColour(wxT("editor_gutter")));
control->SetEdgeColumn(mgr->ReadInt(_T("/gutter/column"), 80));
control->StyleSetFont(wxSCI_STYLE_DEFAULT, font);
control->StyleClearAll();
It looks like the font is not loaded correctly, but I just tried to use different fonts(even I delete the default.conf file), which always got the same alert.