void NodeJSDebugger::OnEditorChanged(wxCommandEvent& event) { event.Skip(); IEditor::List_t editors; clGetManager()->GetAllEditors(editors); wxStringSet_t tmpFiles = m_tempFiles; wxStringSet_t closedTempEditors; // Loop over the temp files list std::for_each(tmpFiles.begin(), tmpFiles.end(), [&](const wxString& filename) { // If the temp file does not match one of the editors, assume it was closed and delete // the temporary file IEditor::List_t::iterator iter = std::find_if(editors.begin(), editors.end(), [&](IEditor* editor) { if(editor->GetFileName().GetFullPath() == filename) return true; return false; }); if(iter == editors.end()) { closedTempEditors.insert(filename); m_tempFiles.erase(filename); } }); if(!closedTempEditors.empty()) { DoDeleteTempFiles(closedTempEditors); } }
void NodeJSDebugger::ClearDebuggerMarker() { IEditor::List_t editors; clGetManager()->GetAllEditors(editors); std::for_each( editors.begin(), editors.end(), [&](IEditor* editor) { editor->GetCtrl()->MarkerDeleteAll(smt_indicator); }); }
size_t PluginManager::GetAllEditors(IEditor::List_t& editors, bool inOrder) { std::vector<LEditor*> tmpEditors; clMainFrame::Get()->GetMainBook()->GetAllEditors( tmpEditors, inOrder ); editors.insert(editors.end(), tmpEditors.begin(), tmpEditors.end() ); return editors.size(); }
void SFTPTreeView::DoCloseSession() { // Check if we have unmodified files belonged to this session // Load the session name IEditor::List_t editors; IEditor::List_t modeditors; clGetManager()->GetAllEditors(editors); // Create a session SFTPSessionInfo sess; wxArrayString remoteFiles; std::for_each(editors.begin(), editors.end(), [&](IEditor* editor) { SFTPClientData* pcd = dynamic_cast<SFTPClientData*>(editor->GetClientData("sftp")); if(pcd) { sess.GetFiles().push_back(pcd->GetRemotePath()); if(!clGetManager()->CloseEditor(editor)) { modeditors.push_back(editor); } } }); // User cancel to close request, so dont close the session just yet if(!modeditors.empty()) { return; } // Set the session name if(m_sftp) { sess.SetAccount(m_sftp->GetAccount()); sess.SetRootFolder(m_textCtrlQuickJump->GetValue()); // Keep the root folder m_sessions.Load().SetSession(sess).Save(); } m_sftp.reset(NULL); m_treeCtrl->DeleteAllItems(); }
void XDebugManager::ClearDebuggerMarker() { IEditor::List_t editors; m_plugin->GetManager()->GetAllEditors( editors ); IEditor::List_t::iterator iter = editors.begin(); for(; iter != editors.end(); ++iter ) { (*iter)->GetSTC()->MarkerDeleteAll(smt_indicator); } }
void LLDBPlugin::ClearDebuggerMarker() { IEditor::List_t editors; m_mgr->GetAllEditors(editors); IEditor::List_t::iterator iter = editors.begin(); for(; iter != editors.end(); ++iter) { (*iter)->GetCtrl()->MarkerDeleteAll(smt_indicator); } }
void XDebugManager::OnBreakpointsViewUpdated(XDebugEvent& e) { e.Skip(); IEditor::List_t editors; m_plugin->GetManager()->GetAllEditors( editors, true ); IEditor::List_t::iterator iter = editors.begin(); for(; iter != editors.end(); ++iter ) { DoRefreshBreakpointsMarkersForEditor( *iter ); } }
void SpellCheck::ClearIndicatorsFromEditors() { // Remove the indicators from all the editors IEditor::List_t editors; m_mgr->GetAllEditors(editors); IEditor::List_t::iterator iter = editors.begin(); for(; iter != editors.end(); ++iter) { (*iter)->ClearUserIndicators(); } }
size_t PluginManager::GetAllEditors(IEditor::List_t& editors, bool inOrder) { LEditor::Vec_t tmpEditors; size_t flags = MainBook::kGetAll_IncludeDetached; if(inOrder) { flags |= MainBook::kGetAll_RetainOrder; } clMainFrame::Get()->GetMainBook()->GetAllEditors(tmpEditors, flags); editors.insert(editors.end(), tmpEditors.begin(), tmpEditors.end()); return editors.size(); }
void WebTools::OnThemeChanged(wxCommandEvent& event) { event.Skip(); IEditor::List_t editors; m_mgr->GetAllEditors(editors); IEditor::List_t::iterator iter = editors.begin(); for(; iter != editors.end(); ++iter) { // Refresh the files' colouring if(IsJavaScriptFile((*iter)->GetFileName())) { m_jsColourThread->QueueFile((*iter)->GetFileName().GetFullPath()); } } }
NodeJSDebugger::~NodeJSDebugger() { m_socket.Reset(NULL); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_START, &NodeJSDebugger::OnDebugStart, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_CONTINUE, &NodeJSDebugger::OnDebugContinue, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_STOP, &NodeJSDebugger::OnStopDebugger, this); EventNotifier::Get()->Unbind(wxEVT_DBG_IS_RUNNING, &NodeJSDebugger::OnDebugIsRunning, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_TOGGLE_BREAKPOINT, &NodeJSDebugger::OnToggleBreakpoint, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_NEXT, &NodeJSDebugger::OnDebugNext, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_NEXT_INST, &NodeJSDebugger::OnVoid, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_STEP_IN, &NodeJSDebugger::OnDebugStepIn, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_STEP_I, &NodeJSDebugger::OnVoid, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_STEP_OUT, &NodeJSDebugger::OnDebugStepOut, this); EventNotifier::Get()->Unbind(wxEVT_DBG_EXPR_TOOLTIP, &NodeJSDebugger::OnTooltip, this); EventNotifier::Get()->Unbind(wxEVT_DBG_CAN_INTERACT, &NodeJSDebugger::OnCanInteract, this); EventNotifier::Get()->Unbind(wxEVT_DBG_UI_ATTACH_TO_PROCESS, &NodeJSDebugger::OnAttach, this); EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_LOADED, &NodeJSDebugger::OnWorkspaceOpened, this); EventNotifier::Get()->Unbind(wxEVT_WORKSPACE_CLOSED, &NodeJSDebugger::OnWorkspaceClosed, this); EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_MARK_LINE, &NodeJSDebugger::OnHighlightLine, this); EventNotifier::Get()->Unbind(wxEVT_NODEJS_DEBUGGER_EVAL_EXPRESSION, &NodeJSDebugger::OnEvalExpression, this); EventNotifier::Get()->Unbind(wxEVT_ACTIVE_EDITOR_CHANGED, &NodeJSDebugger::OnEditorChanged, this); m_node.Unbind(wxEVT_TERMINAL_COMMAND_EXIT, &NodeJSDebugger::OnNodeTerminated, this); m_node.Unbind(wxEVT_TERMINAL_COMMAND_OUTPUT, &NodeJSDebugger::OnNodeOutput, this); Unbind(wxEVT_TOOLTIP_DESTROY, &NodeJSDebugger::OnDestroyTip, this); m_node.Terminate(); m_bptManager.Save(); DoDeleteTempFiles(m_tempFiles); m_tempFiles.clear(); if(m_tooltip) { m_tooltip->Destroy(); m_tooltip = NULL; } // fire stop event (needed to reload the normal layout) clDebugEvent event(wxEVT_NODEJS_DEBUGGER_STOPPED); EventNotifier::Get()->AddPendingEvent(event); // Clear all markers IEditor::List_t editors; clGetManager()->GetAllEditors(editors); std::for_each(editors.begin(), editors.end(), [&](IEditor* e) { e->DelAllCompilerMarkers(); }); }
void SFTPTreeView::DoCloseSession() { // Check if we have unmodified files belonged to this session IEditor::List_t editors; IEditor::List_t modeditors; clGetManager()->GetAllEditors(editors); std::for_each(editors.begin(), editors.end(), [&](IEditor* editor) { if(editor->GetClientData("sftp")) { if(!clGetManager()->CloseEditor(editor)) { modeditors.push_back(editor); } } }); // User cancel to close request, so dont close the session just yet if(!modeditors.empty()) { return; } m_sftp.reset(NULL); m_treeCtrl->DeleteAllItems(); }