void CodeEditor::setupMargins() { updateLineNumberMarginWidth(); setMarginSensitivity(0, true); setMarginSensitivity(1, true); markerDefine(QsciScintilla::RightArrow, MARKER); setMarkerBackgroundColor(QColor("#ee1111"), MARKER); markerDefine(QsciScintilla::Background, LINE_BG); setMarkerBackgroundColor(QColor("#ffff00").lighter(170), LINE_BG); }
/** * Update the arrow marker to point to the correct line and colour it depending * on the error state * @param lineno :: The line to place the marker at. A negative number will * clear all markers * @param error :: If true, the marker will turn red */ void ScriptEditor::updateProgressMarker(int lineno, bool error) { m_currentExecLine = lineno; if (error) { setMarkerBackgroundColor(g_error_colour, m_progressArrowKey); } else { setMarkerBackgroundColor(g_success_colour, m_progressArrowKey); } markerDeleteAll(); // Check the lineno actually exists, -1 means delete if (lineno <= 0 || lineno > this->lines()) return; ensureLineVisible(lineno); markerAdd(m_currentExecLine - 1, m_progressArrowKey); }
/** * Set the marker state * @param enabled :: If true then the progress arrow is enabled */ void ScriptEditor::setMarkerState(bool enabled) { if (enabled) { setMarkerBackgroundColor(QColor("gray"), m_progressArrowKey); markerAdd(0, m_progressArrowKey); } else { markerDeleteAll(); } }
int QSourceCodeWidget::CreateMarkerCircle( QColor color, int markerID ){ markerID = markerDefine( QsciScintilla::Circle, markerID ); if(markerID==-1){ printf("Marker Creation Failed\n"); fflush(stdout); } else{ setMarkerBackgroundColor( color, markerID ); setMarkerForegroundColor( color, markerID ); } return markerID; }
void SqlEditorWidget::prefsChanged() { QFont baseFont(m_prefs->sqlFont()); baseFont.setPointSize(m_prefs->sqlFontSize()); lexer()->setFont(baseFont); setFont(baseFont); // syntax highlighting lexer()->setColor(m_prefs->syDefaultColor(), QsciLexerSQL::Default); lexer()->setColor(m_prefs->syKeywordColor(), QsciLexerSQL::Keyword); QFont defFont(lexer()->font(QsciLexerSQL::Keyword)); defFont.setBold(true); lexer()->setFont(defFont, QsciLexerSQL::Keyword); lexer()->setColor(m_prefs->syNumberColor(), QsciLexerSQL::Number); lexer()->setColor(m_prefs->syStringColor(), QsciLexerSQL::SingleQuotedString); lexer()->setColor(m_prefs->syStringColor(), QsciLexerSQL::DoubleQuotedString); lexer()->setColor(m_prefs->syCommentColor(), QsciLexerSQL::Comment); lexer()->setColor(m_prefs->syCommentColor(), QsciLexerSQL::CommentLine); lexer()->setColor(m_prefs->syCommentColor(), QsciLexerSQL::CommentDoc); setAutoCompletionThreshold(m_prefs->codeCompletion() ? m_prefs->codeCompletionLength() : -1 ); if (m_prefs->textWidthMark()) { setEdgeColumn(m_prefs->textWidthMarkSize()); setEdgeColor(Qt::gray); setEdgeMode(QsciScintilla::EdgeLine); } else setEdgeMode(QsciScintilla::EdgeNone); setMarkerBackgroundColor(m_prefs->activeHighlighting() ? m_prefs->activeHighlightColor() : paper()); }
SonicPiScintilla::SonicPiScintilla(SonicPiLexer *lexer, SonicPiTheme *theme) : QsciScintilla() { this->theme = theme; standardCommands()->clearKeys(); standardCommands()->clearAlternateKeys(); QString skey; QSettings settings("sonic-pi.net", "Key bindings"); #if defined(Q_OS_MAC) int SPi_CTRL = Qt::META; int SPi_META = Qt::CTRL; #else int SPi_CTRL = Qt::CTRL; int SPi_META = Qt::ALT; #endif // basic navigation addKeyBinding(settings, QsciCommand::PageDown, Qt::Key_PageDown); addKeyBinding(settings, QsciCommand::PageUp, Qt::Key_PageUp); addKeyBinding(settings, QsciCommand::LineDown, Qt::Key_N | SPi_CTRL); addOtherKeyBinding(settings, QsciCommand::LineDown, Qt::Key_Down); addKeyBinding(settings, QsciCommand::LineDownExtend, Qt::Key_Down | Qt::SHIFT); addKeyBinding(settings, QsciCommand::LineUp, Qt::Key_P | SPi_CTRL); addOtherKeyBinding(settings, QsciCommand::LineUp, Qt::Key_Up); addKeyBinding(settings, QsciCommand::LineUpExtend, Qt::Key_Up | Qt::SHIFT); addKeyBinding(settings, QsciCommand::CharRight, Qt::Key_F | SPi_CTRL); addOtherKeyBinding(settings, QsciCommand::CharRight, Qt::Key_Right); addKeyBinding(settings, QsciCommand::CharRightExtend, Qt::Key_Right | Qt::SHIFT); addKeyBinding(settings, QsciCommand::WordRight, Qt::Key_F | SPi_META); addOtherKeyBinding(settings, QsciCommand::WordRight, Qt::Key_Right | SPi_CTRL); addKeyBinding(settings, QsciCommand::WordRightExtend, Qt::Key_Right | SPi_CTRL | Qt::SHIFT); addKeyBinding(settings, QsciCommand::CharLeft, Qt::Key_B | SPi_CTRL); addOtherKeyBinding(settings, QsciCommand::CharLeft, Qt::Key_Left); addKeyBinding(settings, QsciCommand::CharLeftExtend, Qt::Key_Left | Qt::SHIFT); addKeyBinding(settings, QsciCommand::WordLeft, Qt::Key_B | SPi_META); addOtherKeyBinding(settings, QsciCommand::WordLeft, Qt::Key_Left | SPi_CTRL); addKeyBinding(settings, QsciCommand::WordLeftExtend, Qt::Key_Left | SPi_CTRL | Qt::SHIFT); addKeyBinding(settings, QsciCommand::Delete, Qt::Key_D | SPi_CTRL); addOtherKeyBinding(settings, QsciCommand::Delete, Qt::Key_Delete); addKeyBinding(settings, QsciCommand::DeleteBack, Qt::Key_H | SPi_CTRL); addOtherKeyBinding(settings, QsciCommand::DeleteBack, Qt::Key_Backspace); addKeyBinding(settings, QsciCommand::Home, Qt::Key_A | SPi_CTRL); addKeyBinding(settings, QsciCommand::VCHome, Qt::Key_Home); addKeyBinding(settings, QsciCommand::VCHomeExtend, Qt::Key_Home | Qt::SHIFT); addKeyBinding(settings, QsciCommand::DocumentStart, Qt::Key_Home | SPi_CTRL); addKeyBinding(settings, QsciCommand::DocumentStartExtend, Qt::Key_Home | SPi_CTRL | Qt::SHIFT); addKeyBinding(settings, QsciCommand::LineEnd, Qt::Key_E | SPi_CTRL); addOtherKeyBinding(settings, QsciCommand::LineEnd, Qt::Key_End); addKeyBinding(settings, QsciCommand::LineEndExtend, Qt::Key_End | Qt::SHIFT); addKeyBinding(settings, QsciCommand::DocumentEnd, Qt::Key_End | SPi_CTRL); addKeyBinding(settings, QsciCommand::DocumentEndExtend, Qt::Key_End | SPi_CTRL | Qt::SHIFT); addKeyBinding(settings, QsciCommand::Delete, Qt::Key_D | SPi_CTRL); addKeyBinding(settings, QsciCommand::VerticalCentreCaret, Qt::Key_L | SPi_CTRL); // tab return addKeyBinding(settings, QsciCommand::Newline, Qt::Key_Return); addKeyBinding(settings, QsciCommand::Backtab, Qt::Key_Tab | Qt::SHIFT); // copy paste addKeyBinding(settings, QsciCommand::SelectionCopy, Qt::Key_C | SPi_META); addOtherKeyBinding(settings, QsciCommand::SelectionCopy, Qt::Key_C | SPi_CTRL); addKeyBinding(settings, QsciCommand::SelectionCut, Qt::Key_X | SPi_META); addOtherKeyBinding(settings, QsciCommand::SelectionCut, Qt::Key_X | SPi_CTRL); addKeyBinding(settings, QsciCommand::Paste, Qt::Key_V | SPi_META); addOtherKeyBinding(settings, QsciCommand::Paste, Qt::Key_Y | SPi_CTRL); addKeyBinding(settings, QsciCommand::Undo, Qt::Key_Z | SPi_META); addOtherKeyBinding(settings, QsciCommand::Undo, Qt::Key_Z | SPi_CTRL); addKeyBinding(settings, QsciCommand::Redo, Qt::Key_Z | Qt::SHIFT | SPi_META); addOtherKeyBinding(settings, QsciCommand::Redo, Qt::Key_Z | Qt::SHIFT | SPi_CTRL); addKeyBinding(settings, QsciCommand::SelectAll, Qt::Key_A | SPi_META); // delete word left and right addKeyBinding(settings, QsciCommand::DeleteWordLeft, Qt::Key_Backslash | SPi_META); addKeyBinding(settings, QsciCommand::DeleteWordLeft, Qt::Key_Backspace | SPi_META); addKeyBinding(settings, QsciCommand::DeleteWordRight, Qt::Key_D | SPi_META); standardCommands()->readSettings(settings); this->setMatchedBraceBackgroundColor(theme->color("MatchedBraceBackground")); this->setMatchedBraceForegroundColor(theme->color("MatchedBraceForeground")); setIndentationWidth(2); setIndentationGuides(true); setIndentationGuidesForegroundColor(theme->color("IndentationGuidesForeground")); setBraceMatching( SonicPiScintilla::SloppyBraceMatch); //TODO: add preference toggle for this: //this->setFolding(SonicPiScintilla::CircledTreeFoldStyle, 2); setCaretLineVisible(true); setCaretLineBackgroundColor(theme->color("CaretLineBackground")); setFoldMarginColors(theme->color("FoldMarginForeground"),theme->color("FoldMarginForeground")); setMarginLineNumbers(0, true); setMarginsBackgroundColor(theme->color("MarginBackground")); setMarginsForegroundColor(theme->color("MarginForeground")); setMarginsFont(QFont("Menlo", 15, -1, true)); setUtf8(true); setText("#loading..."); setLexer((QsciLexer *)lexer); markerDefine(RightArrow, 8); setMarkerBackgroundColor("deeppink", 8); setAutoCompletionThreshold(1); setAutoCompletionSource(SonicPiScintilla::AcsAPIs); setAutoCompletionCaseSensitivity(false); setSelectionBackgroundColor(theme->color("SelectionBackground")); setSelectionForegroundColor(theme->color("SelectionForeground")); setCaretWidth(5); setCaretForegroundColor(theme->color("CaretForeground")); setEolMode(EolUnix); SendScintilla(SCI_SETWORDCHARS, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:_?!"); }
void Editor::setEditorStyle (void) { //QFont font ("Consolas", 14, QFont::Normal, false); QFont font (config.editorFontName, config.editorFontSize, QFont::Normal, false); lblCursorPosition->setFont(font); QFontMetrics fontMetrics(font); //QColor backColor = QColor(22, 30, 32); TextStyle style; config.GetThemeStyle(config.themeName, "DEFAULT", style); QColor backColor = style.backColor;//QColor(config.editorColorName); setColor(backColor); QString css = "color:" + style.foreColor.name() + ";"; css += "background-color:" + style.backColor.name() + ";"; css += "border: 1px solid " + style.foreColor.name() + ";"; lblCursorPosition->setStyleSheet(css); // margin setMarginLineNumbers(100, true); setMarginsFont(font); config.GetThemeStyle(config.themeName, "MARGIN", style); setMarginsBackgroundColor(style.backColor);//QColor(24,32,34));//QColor(20,28,30)); setMarginsForegroundColor(style.foreColor); //QColor(42,50,52)); setMarginWidth(0, fontMetrics.width("00000") + 6); // General editor things setTabWidth(4); ensureCursorVisible(); setIndicatorForegroundColor (Qt::red, 1); // compile error/warning mark markerDefine(QsciScintilla::RightArrow, 1); setMarkerBackgroundColor(Qt::red, 1); markerDefine(QsciScintilla::Circle, 0); setMarkerBackgroundColor(Qt::red, 0); setMarkerForegroundColor(Qt::white, 0); // caret setCaretLineVisible(true); setCaretWidth(2); config.GetThemeStyle(config.themeName, "CARET", style); setCaretForegroundColor(style.foreColor);//QColor(220, 200, 200)); caretLineBackColor = style.backColor; setCaretLineBackgroundColor(caretLineBackColor);//QColor(24, 32, 34)); //setCaretLineBackgroundColor(QColor(255, 0, 0, 100)); //SendScintilla (SC_TECHNOLOGY_DIRECTWRITE, 1); //SendScintilla (SCI_SETBUFFEREDDRAW, 1); //SendScintilla (SCI_SETTWOPHASEDRAW, 1); //SendScintilla (SCI_SETFONTQUALITY, SC_EFF_QUALITY_NON_ANTIALIASED);//SC_EFF_QUALITY_DEFAULT); // matched and unmatched braces coloring if (config.highlightBraces) { setBraceMatching(QsciScintilla::SloppyBraceMatch); } else { setBraceMatching(QsciScintilla::NoBraceMatch); } setMatchedBraceBackgroundColor(backColor); setMatchedBraceForegroundColor(QColor(220, 220, 50)); setUnmatchedBraceBackgroundColor(QColor(0,0,0)); setUnmatchedBraceForegroundColor(QColor(255, 0, 0)); // selection config.GetThemeStyle(config.themeName, "SELECTION", style); setSelectionForegroundColor(style.foreColor);//QColor(150, 150, 150)); setSelectionBackgroundColor(style.backColor);//QColor(52, 60, 62)); // maim cpp styles setLexerStyle(-1, "DEFAULT");//QColor (120, 120, 120),backColor); //setLexerStyle(-1, Qt::red, Qt::blue); //setLexerStyle(QsciLexerCPP::Default, Qt::blue, Qt::yellow); setLexerStyle(QsciLexerCPP::Default, "DEFAULT"); //setLexerStyle(QsciLexerCPP::callSTYLE_CALLTIP, QColor (255,0,0), QColor(255,255,255)); setLexerStyle(QsciLexerCPP::Comment, "COMMENT"); setLexerStyle(QsciLexerCPP::CommentDoc, "COMMENT DOC"); setLexerStyle(QsciLexerCPP::CommentLine, "COMMENT LIN E DOC"); setLexerStyle(QsciLexerCPP::Number, "NUMBER"); setLexerStyle(QsciLexerCPP::Keyword, "KEYWORD"); setLexerStyle(QsciLexerCPP::DoubleQuotedString, "DOUBLE QUOTED STRING"); setLexerStyle(QsciLexerCPP::SingleQuotedString, "SINGLE QUOTED STRING"); setLexerStyle(QsciLexerCPP::PreProcessor, "PREPROCESSOR"); setLexerStyle(QsciLexerCPP::Operator, "OPERATOR"); setLexerStyle(QsciLexerCPP::Identifier, "IDENTIFIER"); setLexerStyle(QsciLexerCPP::UnclosedString, "UNCLOSED STRING"); // secondary styles setLexerStyle(QsciLexerCPP::UUID, "UUID"); setLexerStyle(QsciLexerCPP::VerbatimString, "VERBATIM STRING"); setLexerStyle(QsciLexerCPP::Regex, "REGEX"); setLexerStyle(QsciLexerCPP::CommentLineDoc, "COMMENT LINE DOC"); setLexerStyle(QsciLexerCPP::KeywordSet2, "KEYWORD SET 2"); setLexerStyle(QsciLexerCPP::CommentDocKeyword, "COMMENT DOC KEYWORD"); setLexerStyle(QsciLexerCPP::CommentDocKeywordError, "COMMENT DOC KEYWORD ERROR"); setLexerStyle(QsciLexerCPP::GlobalClass, "GLOBAL CLASS"); setLexerStyle(QsciLexerCPP::RawString, "DOUBLE QUOTED STRING"); setLexerStyle(QsciLexerCPP::TripleQuotedVerbatimString, "VERBATIM STRING"); setLexerStyle(QsciLexerCPP::HashQuotedString, "VERBATIM STRING"); setLexerStyle(QsciLexerCPP::PreProcessorComment, "PREPROCESSOR"); setLexerStyle(QsciLexerCPP::PreProcessorCommentLineDoc, "PREPROCESSOR"); }