void Copyright::OnInsertCopyrights(wxCommandEvent& e) { wxUnusedVar(e); // read configuration CopyrightsConfigData data; m_mgr->GetConfigTool()->ReadObject(wxT("CopyrightsConfig"), &data); // make sure that the template file exists if(!wxFileName::FileExists(data.GetTemplateFilename())) { wxMessageBox( wxString::Format(_("Template file name '%s', does not exist!"), data.GetTemplateFilename().GetData()), _("CodeLite"), wxICON_WARNING | wxOK); return; } // read the copyrights file wxString content; if(!ReadFileWithConversion(data.GetTemplateFilename(), content)) { wxMessageBox(wxString::Format(_("Failed to read template file '%s'"), data.GetTemplateFilename().c_str()), _("CodeLite"), wxICON_WARNING | wxOK); return; } IEditor* editor = m_mgr->GetActiveEditor(); if(!editor) { wxMessageBox(wxString::Format(_("There is no active editor\n")), _("CodeLite"), wxICON_WARNING | wxOK); return; } // verify that the file consist only with comment code CppWordScanner scanner(data.GetTemplateFilename().mb_str().data()); CppTokensMap l; scanner.FindAll(l); if(!l.is_empty()) { if(wxMessageBox(_("Template file contains text which is not comment, continue anyway?"), _("CodeLite"), wxICON_QUESTION | wxYES_NO) == wxNO) { return; } } // expand constants wxString _content = ExpandAllVariables(content, m_mgr->GetWorkspace(), wxEmptyString, wxEmptyString, editor->GetFileName().GetFullPath()); // we are good to go :) wxString ignoreString = data.GetIgnoreString(); ignoreString = ignoreString.Trim().Trim(false); if(ignoreString.IsEmpty() == false) { if(editor->GetEditorText().Find(data.GetIgnoreString()) != wxNOT_FOUND) { clLogMessage(_("File contains ignore string, skipping it")); return; } } editor->InsertText(0, _content); }
// ------------------------------------------------------------ void SpellCheck::OnTimer(wxTimerEvent& e) { wxTopLevelWindow* pWnd = dynamic_cast<wxTopLevelWindow*>(GetTopWnd()); if(!pWnd->IsActive()) return; IEditor* editor = m_mgr->GetActiveEditor(); if(!editor) return; if(GetCheckContinuous()) { switch(editor->GetLexerId()) { case 3: { // wxSCI_LEX_CPP if(m_mgr->IsWorkspaceOpen()) { m_pEngine->CheckCppSpelling(editor->GetEditorText()); } } break; default: { // wxSCI_LEX_NULL m_pEngine->CheckSpelling(editor->GetEditorText()); } break; } } }
// ------------------------------------------------------------ void SpellCheck::OnContinousCheck(wxCommandEvent& e) { IEditor* editor = m_mgr->GetActiveEditor(); if(!editor) { // no current editor, switch continuous search off SetCheckContinuous(false); return; } if(m_pEngine != NULL) { if(e.GetInt() == 0) { SetCheckContinuous(false); ClearIndicatorsFromEditors(); return; } SetCheckContinuous(true); wxString text = editor->GetEditorText(); // if we don't have a dictionary yet, open settings if(!m_pEngine->GetDictionary()) { OnSettings(e); return; } switch(editor->GetLexerId()) { case 3: { // wxSCI_LEX_CPP if(m_mgr->IsWorkspaceOpen()) { m_pEngine->CheckCppSpelling(text); } } break; default: { // wxSCI_LEX_NULL m_pEngine->CheckSpelling(text); } break; } m_timer.Start(PARSE_TIME); } }
// ------------------------------------------------------------ void SpellCheck::OnCheck(wxCommandEvent& e) { IEditor* editor = GetEditor(); if(!editor) return; wxString text = editor->GetEditorText(); text += wxT(" "); // prevents indicator flickering at end of file if(m_pEngine != NULL) { if(GetCheckContinuous()) // switch continuous search off if running SetCheckContinuous(false); // if we don't have a dictionary yet, open settings if(!m_pEngine->GetDictionary()) { OnSettings(e); return; } switch(editor->GetLexerId()) { case 3: { // wxSCI_LEX_CPP if(m_mgr->IsWorkspaceOpen()) { m_pEngine->CheckCppSpelling(text); if(!m_checkContinuous) { editor->ClearUserIndicators(); } } } break; case 1: { // wxSCI_LEX_NULL m_pEngine->CheckSpelling(text); if(!m_checkContinuous) { editor->ClearUserIndicators(); } } break; } } }