void CodeFormatterDlg::InitDialog() { long formatOptions = m_options.GetOptions() & AS_ALL_FORMAT_OPTIONS; long indentOptions = m_options.GetOptions() & AS_ALL_INDENT_OPTIONS; m_pgPropIndentation->SetValue(indentOptions); m_pgPropFormatting->SetValue(formatOptions); // Bracket options if(m_options.GetOptions() & AS_BRACKETS_BREAK_CLOSING) m_pgPropBrackets->SetValue("Break closing"); else if(m_options.GetOptions() & AS_BRACKETS_BREAK) m_pgPropBrackets->SetValue("Break"); else if(m_options.GetOptions() & AS_BRACKETS_ATTACH) m_pgPropBrackets->SetValue("Attach"); else if(m_options.GetOptions() & AS_BRACKETS_LINUX) m_pgPropBrackets->SetValue("Linux"); // Styles if(m_options.GetOptions() & AS_GNU) m_pgPropPreDefinedStyles->SetValue("GNU"); else if(m_options.GetOptions() & AS_JAVA) m_pgPropPreDefinedStyles->SetValue("Java"); else if(m_options.GetOptions() & AS_KR) m_pgPropPreDefinedStyles->SetValue("K&R"); else if(m_options.GetOptions() & AS_LINUX) m_pgPropPreDefinedStyles->SetValue("Linux"); else if(m_options.GetOptions() & AS_ANSI) m_pgPropPreDefinedStyles->SetValue("ANSI"); m_textCtrlPreview->SetLexer(wxSTC_LEX_CPP); LexerConf::Ptr_t lexer = EditorConfigST::Get()->GetLexer("C++"); if(lexer) { lexer->Apply(m_textCtrlPreview, true); lexer->Apply(m_textCtrlPreview_Clang, true); } LexerConf::Ptr_t phpLexer = EditorConfigST::Get()->GetLexer("php"); if(phpLexer) { phpLexer->Apply(m_stcPhpPreview, true); } m_textCtrlPreview->SetViewWhiteSpace(wxSTC_WS_VISIBLEALWAYS); m_textCtrlPreview_Clang->SetViewWhiteSpace(wxSTC_WS_VISIBLEALWAYS); m_stcPhpPreview->SetViewWhiteSpace(wxSTC_WS_VISIBLEALWAYS); // Select the proper engine m_choiceCxxEngine->SetSelection((int)m_options.GetEngine()); //------------------------------------------------------------------ // Clang options //------------------------------------------------------------------ m_pgPropClangFormatExePath->SetValue(m_options.GetClangFormatExe()); if(m_options.GetClangFormatOptions() & kClangFormatChromium) { m_pgPropClangFormatStyle->SetValueFromInt(kClangFormatChromium, wxPG_FULL_VALUE); } else if(m_options.GetClangFormatOptions() & kClangFormatMozilla) { m_pgPropClangFormatStyle->SetValueFromInt(kClangFormatMozilla, wxPG_FULL_VALUE); } else if(m_options.GetClangFormatOptions() & kClangFormatWebKit) { m_pgPropClangFormatStyle->SetValueFromInt(kClangFormatWebKit, wxPG_FULL_VALUE); } else if(m_options.GetClangFormatOptions() & kClangFormatGoogle) { m_pgPropClangFormatStyle->SetValueFromInt(kClangFormatGoogle, wxPG_FULL_VALUE); } else if(m_options.GetClangFormatOptions() & kClangFormatLLVM) { m_pgPropClangFormatStyle->SetValueFromInt(kClangFormatLLVM, wxPG_FULL_VALUE); } m_pgPropClangFormattingOptions->SetValue((int)m_options.GetClangFormatOptions()); m_pgPropClangBraceBreakStyle->SetValue((int)m_options.GetClangBreakBeforeBrace()); m_pgPropColumnLimit->SetValue((int)m_options.GetClangColumnLimit()); // PHP flags m_pgPropPhpFormatterOptions->SetValue((int)m_options.GetPHPFormatterOptions()); // General Options m_checkBoxFormatOnSave->SetValue(m_options.HasFlag(kCF_AutoFormatOnFileSave)); // User custom flags m_textCtrlUserFlags->ChangeValue(m_options.GetCustomFlags()); }
void clFindResultsStyler::SetStyles(wxStyledTextCtrl* sci) { LexerConf::Ptr_t lexer = ColoursAndFontsManager::Get().GetLexer("c++"); if(!lexer) { lexer = ColoursAndFontsManager::Get().GetLexer("text"); } const StyleProperty& defaultStyle = lexer->GetProperty(0); wxFont defaultFont = lexer->GetFontForSyle(0); for(size_t i = 0; i < wxSTC_STYLE_MAX; ++i) { sci->StyleSetForeground(i, defaultStyle.GetFgColour()); sci->StyleSetBackground(i, defaultStyle.GetBgColour()); sci->StyleSetFont(i, defaultFont); } // Show/hide whitespace sci->SetViewWhiteSpace(EditorConfigST::Get()->GetOptions()->GetShowWhitspaces()); StyleProperty::Map_t& props = lexer->GetLexerProperties(); // Set the whitespace colours sci->SetWhitespaceForeground(true, props[WHITE_SPACE_ATTR_ID].GetFgColour()); sci->StyleSetForeground(LEX_FIF_HEADER, props[11].GetFgColour()); sci->StyleSetBackground(LEX_FIF_HEADER, props[11].GetBgColour()); // 33 is the style for line numbers sci->StyleSetForeground(LEX_FIF_LINE_NUMBER, props[33].GetFgColour()); // 11 is the style number for "identifier" sci->StyleSetForeground(LEX_FIF_MATCH, props[11].GetFgColour()); // 16 is the stule for colouring classes sci->StyleSetForeground(LEX_FIF_SCOPE, props[16].GetFgColour()); sci->StyleSetForeground(LEX_FIF_MATCH_COMMENT, props[wxSTC_C_COMMENTLINE].GetFgColour()); sci->StyleSetForeground(LEX_FIF_FILE, props[wxSTC_C_WORD].GetFgColour()); sci->StyleSetEOLFilled(LEX_FIF_FILE, true); sci->StyleSetForeground(LEX_FIF_DEFAULT, props[11].GetFgColour()); sci->StyleSetBackground(LEX_FIF_DEFAULT, props[11].GetBgColour()); sci->StyleSetHotSpot(LEX_FIF_MATCH, true); sci->StyleSetHotSpot(LEX_FIF_FILE, true); sci->StyleSetHotSpot(LEX_FIF_MATCH_COMMENT, true); sci->SetHotspotActiveForeground(true, lexer->IsDark() ? "WHITE" : "BLACK"); sci->SetHotspotActiveUnderline(false); sci->MarkerDefine(7, wxSTC_MARK_ARROW); #if wxVERSION_NUMBER < 3100 // On GTK we dont have the wxSTC_INDIC_TEXTFORE symbol yet (old wx version) sci->MarkerDefine(7, wxSTC_MARK_ARROW); sci->MarkerSetBackground(7, lexer->IsDark() ? "CYAN" : "ORANGE"); sci->MarkerSetForeground(7, lexer->IsDark() ? "CYAN" : "ORANGE"); sci->IndicatorSetForeground(1, lexer->IsDark() ? "CYAN" : "ORANGE"); sci->IndicatorSetStyle(1, wxSTC_INDIC_ROUNDBOX); #else sci->MarkerDefine(7, wxSTC_MARK_ARROW); sci->MarkerSetBackground(7, lexer->IsDark() ? "#FFD700" : "#FF4500"); sci->MarkerSetForeground(7, lexer->IsDark() ? "#FFD700" : "#FF4500"); sci->IndicatorSetForeground(1, lexer->IsDark() ? "#FFD700" : "#FF4500"); sci->IndicatorSetStyle(1, wxSTC_INDIC_TEXTFORE); #endif sci->IndicatorSetUnder(1, true); sci->SetMarginWidth(0, 0); sci->SetMarginWidth(1, 16); sci->SetMarginWidth(2, 0); sci->SetMarginWidth(3, 0); sci->SetMarginWidth(4, 0); sci->SetMarginSensitive(1, true); sci->HideSelection(true); // Indentation OptionsConfigPtr options = EditorConfigST::Get()->GetOptions(); sci->SetUseTabs(options->GetIndentUsesTabs()); sci->SetTabWidth(options->GetIndentWidth()); sci->SetIndent(options->GetIndentWidth()); sci->Refresh(); }