void CodeCompletionManager::WordCompletion(LEditor *editor, const wxString& expr, const wxString& word) { wxString expression = expr; wxString tmp; DoUpdateOptions(); // Trim whitespace from right and left static wxString trimString(wxT("!<>=(){};\r\n\t\v ")); expression = expression.erase(0, expression.find_first_not_of(trimString)); expression = expression.erase(expression.find_last_not_of(trimString)+1); if(expression.EndsWith(word, &tmp)) { expression = tmp; } if((GetOptions() & CC_CLANG_ENABLED) && (GetOptions() & CC_CLANG_FIRST)) { DoClangWordCompletion(editor); } else { if(!DoCtagsWordCompletion(editor, expr, word) && (GetOptions() & CC_CLANG_ENABLED)) { DoClangWordCompletion(editor); } } }
void CodeCompletionManager::GotoImpl(clEditor* editor) { DoUpdateOptions(); bool res = false; if(GetOptions() & CC_CTAGS_ENABLED) { res = DoCtagsGotoImpl(editor); } if(!res && (GetOptions() & CC_CLANG_ENABLED)) { DoClangGotoImpl(editor); } }
void CodeCompletionManager::CodeComplete(clEditor* editor, int line, const wxString& expr, const wxString& text) { bool res(false); DoUpdateOptions(); if(GetOptions() & CC_CTAGS_ENABLED) { res = DoCtagsCodeComplete(editor, line, expr, text); } if(!res && (GetOptions() & CC_CLANG_ENABLED)) { DoClangCodeComplete(editor); } }
void CodeCompletionManager::DoClangCalltip(clEditor* editor) { #if HAS_LIBCLANG DoUpdateOptions(); if(GetOptions() & CC_CLANG_ENABLED) ClangCodeCompletion::Instance()->Calltip(editor); #else wxUnusedVar(editor); #endif }
void CodeCompletionManager::Calltip(clEditor* editor, int line, const wxString& expr, const wxString& text, const wxString& word) { bool res(false); DoUpdateOptions(); if(::IsCppKeyword(word)) return; if(GetOptions() & CC_CTAGS_ENABLED) { res = DoCtagsCalltip(editor, line, expr, text, word); } if(!res && (GetOptions() & CC_CLANG_ENABLED)) { DoClangCalltip(editor); } }