void CodeEditor::HighlightBraces() { int currPos = GetCurrentPos(); int newPos = BraceMatch(currPos); if (newPos == wxSCI_INVALID_POSITION) { if(currPos > 0) newPos = BraceMatch(--currPos); } wxChar ch = GetCharAt(currPos); if (ch == wxT('{') || ch == wxT('[') || ch == wxT('(') || ch == wxT('}') || ch == wxT(']') || ch == wxT(')')) { if (newPos != wxSCI_INVALID_POSITION) { BraceHighlight(currPos, newPos); } else { BraceBadLight(currPos); } } else BraceHighlight(-1, -1); Refresh(false); }
/* TextEditor::checkBraceMatch * Checks for a brace match at the current cursor position *******************************************************************/ void TextEditor::checkBraceMatch() { #ifdef __WXMAC__ bool refresh = false; #else bool refresh = true; #endif // Check for brace match at current position int bracematch = BraceMatch(GetCurrentPos()); if (bracematch != wxSTC_INVALID_POSITION) { BraceHighlight(GetCurrentPos(), bracematch); if (refresh) Refresh(); return; } // No match, check for match at previous position bracematch = BraceMatch(GetCurrentPos() - 1); if (bracematch != wxSTC_INVALID_POSITION) { BraceHighlight(GetCurrentPos() - 1, bracematch); if (refresh) Refresh(); return; } // No match at all, clear any previous brace match BraceHighlight(-1, -1); if (refresh) Refresh(); }
void ctlSQLBox::OnPositionStc(wxStyledTextEvent &event) { int pos = GetCurrentPos(); wxChar ch = GetCharAt(pos - 1); int st = GetStyleAt(pos - 1); int match; // Line numbers // Ensure we don't recurse through any paint handlers on Mac #ifdef __WXMAC__ Freeze(); #endif UpdateLineNumber(); #ifdef __WXMAC__ Thaw(); #endif // Clear all highlighting BraceBadLight(wxSTC_INVALID_POSITION); // Check for braces that aren't in comment styles, // double quoted styles or single quoted styles if ((ch == '{' || ch == '}' || ch == '[' || ch == ']' || ch == '(' || ch == ')') && st != 2 && st != 6 && st != 7) { match = BraceMatch(pos - 1); if (match != wxSTC_INVALID_POSITION) BraceHighlight(pos - 1, match); } // Roll back through the doc and highlight any unmatched braces while ((pos--) >= 0) { ch = GetCharAt(pos); st = GetStyleAt(pos); if ((ch == '{' || ch == '}' || ch == '[' || ch == ']' || ch == '(' || ch == ')') && st != 2 && st != 6 && st != 7) { match = BraceMatch(pos); if (match == wxSTC_INVALID_POSITION) { BraceBadLight(pos); break; } } } event.Skip(); }
/* TextEditor::checkBraceMatch * Checks for a brace match at the current cursor position *******************************************************************/ void TextEditor::checkBraceMatch() { #ifdef __WXMAC__ bool refresh = false; #else bool refresh = true; #endif // Ignore if cursor position hasn't changed since the last check if (GetCurrentPos() == bm_cursor_last_pos) return; bm_cursor_last_pos = GetCurrentPos(); // Check for brace match at current position int bracematch = BraceMatch(GetCurrentPos()); if (bracematch != wxSTC_INVALID_POSITION) { BraceHighlight(GetCurrentPos(), bracematch); if (refresh) { Refresh(); Update(); } return; } // No match, check for match at previous position bracematch = BraceMatch(GetCurrentPos() - 1); if (bracematch != wxSTC_INVALID_POSITION) { BraceHighlight(GetCurrentPos() - 1, bracematch); if (refresh) { Refresh(); Update(); } return; } // No match at all, clear any previous brace match BraceHighlight(-1, -1); if (refresh) { Refresh(); Update(); } }
void Edit::OnBraceMatch (wxCommandEvent &WXUNUSED(event)) { int min = GetCurrentPos (); int max = BraceMatch (min); if (max > (min+1)) { BraceHighlight (min+1, max); SetSelection (min+1, max); }else{ BraceBadLight (min); } }
void ShaderEditOverlay::renderFullscreen() { //update logic if (timeGetTime()>mNextTick) { mShaderEditor.Tick(); mDebugOutputView.Tick(); mNextTick = timeGetTime()+TICK_INTERVAL; } BraceMatch(mShaderEditor); glUseProgram(0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, mWidth, 0, mHeight, 0, 500); glTranslatef(0, mHeight, 0); glScalef(1, -1, 1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glPushAttrib(GL_ALL_ATTRIB_BITS); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_CLIP_PLANE0); glEnable(GL_CLIP_PLANE1); glEnable(GL_CLIP_PLANE2); glEnable(GL_CLIP_PLANE3); float w1=mWidth-80.0f, h1=mHeight-80.0f; glTranslatef(30, 30, 0); mSelectionList.Paint(); glTranslatef(w1*0.3f+20, 0, 0); mShaderEditor.Paint(); glTranslatef(0, h1*0.7f+20, 0); mDebugOutputView.Paint(); glPopAttrib(); }
void cbStyledTextCtrl::DoBraceCompletion(const wxChar& ch) { const int pos = GetCurrentPos(); const int style = GetStyleAt(pos); if (IsComment(style) || IsComment(GetStyleAt(pos - 2))) return; // do nothing if (ch == wxT('\'') || ch == wxT('"')) { if (GetCharAt(pos) == ch) { DeleteBack(); CharRight(); } else if (!IsString(GetStyleAt(pos - 2)) && !IsCharacter(GetStyleAt(pos - 2))) InsertText(pos, ch); return; // done } if (IsString(style) || IsCharacter(style)) return; // do nothing const wxString opBraces(wxT("([{")); const int opBraceIdx = opBraces.Find(ch); const wxString clBraces(wxT(")]}")); const int clBraceIdx = clBraces.Find(ch); if ( (opBraceIdx != wxNOT_FOUND) || (clBraceIdx != wxNOT_FOUND) ) { if ( GetCharAt(pos) == ch ) { DeleteBack(); CharRight(); } else if (opBraceIdx != wxNOT_FOUND) { int nextPos = pos; while ( wxIsspace(GetCharAt(nextPos)) && (nextPos < GetLength()) ) ++nextPos; if ( ((wxChar)GetCharAt(nextPos) != clBraces[opBraceIdx]) || (BraceMatch(nextPos) != wxNOT_FOUND) ) { InsertText(pos, clBraces[opBraceIdx]); } } } }
void ShaderEditOverlay::renderFullscreen() { //update logic if (timerAbsoluteTime()>mNextTick) { mShaderEditor.Tick(); mDebugOutputView.Tick(); mNextTick = timerAbsoluteTime()+TICK_INTERVAL; } BraceMatch(mShaderEditor); glEnable(GL_SCISSOR_TEST); float w1=mWidth-80.0f, h1=mHeight-80.0f; v128 mv[4]; ml::make_identity_mat4(mv); { PROFILER_CPU_TIMESLICE("mSelectionList.Paint"); mv[3] = vi_set(30.0f, 30.0f, 0.0f, 1.0f); gfx::setModelViewMatrix(mv); mSelectionList.Paint(); } { PROFILER_CPU_TIMESLICE("mShaderEditor.Paint"); mv[3] = vi_set(w1*0.3f+50.0f, 30.0f, 0.0f, 1.0f); gfx::setModelViewMatrix(mv); mShaderEditor.Paint(); } { PROFILER_CPU_TIMESLICE("mDebugOutputView.Paint"); mv[3] = vi_set(w1*0.3f+50.0f, h1*0.7f+50.0f, 0.0f, 1.0f); gfx::setModelViewMatrix(mv); mDebugOutputView.Paint(); } glDisable(GL_SCISSOR_TEST); }