void CodeRefactoring::DoRenameSymbols(const wxString& targetText, const wxString& replaceText) { EditorManager* edMan = Manager::Get()->GetEditorManager(); cbEditor* editor = edMan->GetBuiltinActiveEditor(); if (!editor) return; cbProject* project = m_NativeParser.GetProjectByEditor(editor); for (SearchDataMap::iterator it = m_SearchDataMap.begin(); it != m_SearchDataMap.end(); ++it) { // check if the file is already opened in built-in editor and do search in it cbEditor* ed = edMan->IsBuiltinOpen(it->first); if (!ed) { ProjectFile* pf = project ? project->GetFileByFilename(it->first) : 0; ed = edMan->Open(it->first, it->second.front().pos, pf); } cbStyledTextCtrl* control = ed->GetControl(); control->BeginUndoAction(); for (SearchDataList::reverse_iterator rIter = it->second.rbegin(); rIter != it->second.rend(); ++rIter) { control->SetTargetStart(rIter->pos); control->SetTargetEnd(rIter->pos + targetText.Len()); control->ReplaceTarget(replaceText); // for find references rIter->text.Replace(targetText, replaceText); } control->EndUndoAction(); } }
void ReopenEditorListView::DoOpen(wxString fname) { EditorManager* em = Manager::Get()->GetEditorManager(); if(!fname.IsEmpty() && !em->IsOpen(fname)) { em->Open(fname); } }
void ReopenEditorListView::DoOpen(wxArrayString fnames) { EditorManager* em = Manager::Get()->GetEditorManager(); for(size_t i = 0; i < fnames.GetCount(); ++i) { if(!fnames[i].IsEmpty() && !em->IsOpen(fnames[i])) { em->Open(fnames[i]); } } }
void ReopenEditor::OnReopenEditor(wxCommandEvent& /*event*/) { if(m_pListLog->GetItemsCount() > 0) { EditorManager* em = Manager::Get()->GetEditorManager(); wxString fname = m_pListLog->GetFilename(0); if(!fname.IsEmpty() && !em->IsOpen(fname)) { em->Open(fname); } } }
// ---------------------------------------------------------------------------- void Navigator::OnMenuJumpBack(wxCommandEvent &/*event*/) // ---------------------------------------------------------------------------- { int tailPlusOne; #if defined(LOGGING) LOGIT( _T("JT [%s]"), _T("OnMenuJumpBack")); #endif tailPlusOne = m_Tail+1; if(tailPlusOne >= POS_BUFFER_SIZE ) tailPlusOne = 0; // Can we go further back if( m_Cursor == tailPlusOne) return; m_Cursor--; if(m_Cursor == -1) m_Cursor = POS_BUFFER_SIZE-1; EditorManager* edmgr = Manager::Get()->GetEditorManager(); wxString edFilename = m_ArrayOfJumpData[m_Cursor].m_Filename; long edPosn = m_ArrayOfJumpData[m_Cursor].m_Posn; #if defined(LOGGING) LOGIT( _T("JT OnMenuJumpBack [%s][%ld]curs[%d]"), edFilename.c_str(), edPosn, m_Cursor); #endif // activate editor cbEditor* ed = edmgr->Open(edFilename); if(ed) { cbStyledTextCtrl* control = ed->GetControl(); ed->GotoLine(ed->GetControl()->LineFromPosition(edPosn)); //center on scrn ed->SetFocus(); control->GotoPos(edPosn); } #if defined(LOGGING) LOGIT( _T("JT [%s]"), _T("END OnMenuJumpBack")); #endif }
void WorkspaceBrowserF::JumpToToken(TokenF* pToken) { if (pToken) { LineAddress jumpStart; LineAddress jumpFinish; if(cbEditor* ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor()) { cbStyledTextCtrl* control = ed->GetControl(); int curLine = control->LineFromPosition(control->GetCurrentPos()); jumpStart.Init(ed->GetFilename(), curLine, false); } EditorManager* edMan = Manager::Get()->GetEditorManager(); if (cbEditor* ed = edMan->Open(pToken->m_Filename)) { ed->GotoLine(pToken->m_LineStart - 1); wxFocusEvent ev(wxEVT_SET_FOCUS); ev.SetWindow(this); #if wxCHECK_VERSION(2, 9, 0) ed->GetControl()->GetEventHandler()->AddPendingEvent(ev); #else ed->GetControl()->AddPendingEvent(ev); #endif // Track jump history cbStyledTextCtrl* control = ed->GetControl(); int curLine = control->LineFromPosition(control->GetCurrentPos()); jumpFinish.Init(ed->GetFilename(), curLine, true); m_NativeParser->GetJumpTracker()->TakeJump(jumpStart, jumpFinish); m_NativeParser->GetFortranProject()->CheckEnableToolbar(); } else { cbMessageBox(wxString::Format(_("Declaration not found: %s"), pToken->m_DisplayName.c_str()), _("Warning"), wxICON_WARNING); } } }