本文整理汇总了C++中clCodeCompletionEvent类的典型用法代码示例。如果您正苦于以下问题:C++ clCodeCompletionEvent类的具体用法?C++ clCodeCompletionEvent怎么用?C++ clCodeCompletionEvent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了clCodeCompletionEvent类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: OnFunctionCallTip
void PHPCodeCompletion::OnFunctionCallTip(clCodeCompletionEvent& e)
{
e.Skip();
if(PHPWorkspace::Get()->IsOpen()) {
if(!CanCodeComplete(e)) return;
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(editor) {
// we handle only .php files
if(IsPHPFile(editor)) {
// this is our to complete
e.Skip(false);
// get the position
PHPEntityBase::Ptr_t resolved = DoGetPHPEntryUnderTheAtPos(editor, editor->GetCurrentPosition(), true);
if(resolved) {
// In PHP there is no overloading, so there can be only one signature for a function
// so we simply place our match into TagEntryPtrVector_t structure and pass it to the editor
TagEntryPtrVector_t tags;
tags.push_back(DoPHPEntityToTagEntry(resolved));
clCallTipPtr callTip(new clCallTip(tags));
editor->ShowCalltip(callTip);
}
}
}
}
}
开发者ID:anatooly,项目名称:codelite,代码行数:28,代码来源:php_code_completion.cpp
示例2: OnCodeCompletionGetTagComment
void PHPCodeCompletion::OnCodeCompletionGetTagComment(clCodeCompletionEvent& e)
{
if(PHPWorkspace::Get()->IsOpen()) {
TagEntryPtr tag = e.GetTagEntry();
void* data = tag->GetUserData();
if(data) {
PHPCCUserData* userData = reinterpret_cast<PHPCCUserData*>(data);
wxString comment, docComment;
docComment = userData->entry->GetDocComment();
if(docComment.IsEmpty() == false) {
docComment.Trim().Trim(false); // The Doc comment
comment << docComment << wxT("\n<hr>"); // HLine
}
wxFileName fn(userData->entry->GetFilename());
fn.MakeRelativeTo(PHPWorkspace::Get()->GetFilename().GetPath());
comment << fn.GetFullName() << wxT(" : ") << userData->entry->GetLine();
e.SetTooltip(comment);
}
} else {
e.Skip();
}
}
开发者ID:bugparty,项目名称:codelite,代码行数:27,代码来源:php_code_completion.cpp
示例3: CanCodeComplete
/* static */
bool PHPCodeCompletion::CanCodeComplete(clCodeCompletionEvent& e)
{
int pos = e.GetPosition();
if(pos) pos -= 1;
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(!editor) return false;
// we can get style 0 if we added chars and they were not styled just yet
// sd we use the first style near our position (backward)
int lineNumber = editor->LineFromPos(pos);
int lineStartPos = editor->PosFromLine(lineNumber);
if(lineStartPos > pos) return false;
int styleAt(0);
int retryLeft(pos - lineStartPos + 2);
while((styleAt == 0) && retryLeft && pos > 0) {
styleAt = editor->GetStyleAtPos(pos);
if(styleAt == 0) {
--pos;
}
--retryLeft;
}
return (editor && !e.IsInsideCommentOrString() && IsPHPSection(styleAt) && !IsPHPCommentOrString(styleAt));
}
开发者ID:anatooly,项目名称:codelite,代码行数:27,代码来源:php_code_completion.cpp
示例4: OnCodeComplete
void WebTools::OnCodeComplete(clCodeCompletionEvent& event)
{
event.Skip();
IEditor* editor = m_mgr->GetActiveEditor();
if(editor && m_jsCodeComplete && IsJavaScriptFile(editor)) {
event.Skip(false);
if(InsideJSComment(editor) || InsideJSString(editor)) {
// User the word completion plugin instead
m_jsCodeComplete->TriggerWordCompletion();
} else {
m_jsCodeComplete->CodeComplete(editor);
}
} else if(editor && m_xmlCodeComplete && editor->GetCtrl()->GetLexer() == wxSTC_LEX_XML) {
// an XML file
event.Skip(false);
m_xmlCodeComplete->XmlCodeComplete(editor);
} else if(editor && m_xmlCodeComplete && IsHTMLFile(editor)) {
// Html code completion
event.Skip(false);
m_xmlCodeComplete->HtmlCodeComplete(editor);
} else if(editor && m_cssCodeComplete && IsCSSFile(editor)) {
// CSS code completion
event.Skip(false);
m_cssCodeComplete->CssCodeComplete(editor);
}
}
开发者ID:capturePointer,项目名称:codelite,代码行数:26,代码来源:webtools.cpp
示例5: OnQuickJump
void PHPCodeCompletion::OnQuickJump(clCodeCompletionEvent& e)
{
e.Skip();
if(PHPWorkspace::Get()->IsOpen()) {
e.Skip(false);
GotoDefinition(m_manager->GetActiveEditor(), e.GetInt());
}
}
开发者ID:anatooly,项目名称:codelite,代码行数:8,代码来源:php_code_completion.cpp
示例6: OnFindSymbol
void WebTools::OnFindSymbol(clCodeCompletionEvent& event)
{
event.Skip();
IEditor* editor = m_mgr->GetActiveEditor();
if(editor && m_jsCodeComplete && IsJavaScriptFile(editor) && !InsideJSComment(editor)) {
event.Skip(false);
m_jsCodeComplete->FindDefinition(editor);
}
}
开发者ID:capturePointer,项目名称:codelite,代码行数:9,代码来源:webtools.cpp
示例7: OnCodeCompleteFunctionCalltip
void WebTools::OnCodeCompleteFunctionCalltip(clCodeCompletionEvent& event)
{
event.Skip();
IEditor* editor = m_mgr->GetActiveEditor();
if(editor && m_jsCodeComplete && IsJavaScriptFile(editor) && !InsideJSComment(editor)) {
event.Skip(false);
m_jsCodeComplete->CodeComplete(editor);
}
}
开发者ID:capturePointer,项目名称:codelite,代码行数:9,代码来源:webtools.cpp
示例8: OnAbbrevSelected
void AbbreviationPlugin::OnAbbrevSelected(clCodeCompletionEvent& e)
{
if(e.GetEventObject() != this) {
e.Skip();
return;
}
wxString wordAtCaret = e.GetWord();
InsertExpansion( wordAtCaret );
}
开发者ID:HTshandou,项目名称:codelite,代码行数:10,代码来源:abbreviation.cpp
示例9: OnCodeComplete
void PHPCodeCompletion::OnCodeComplete(clCodeCompletionEvent& e)
{
e.Skip(true);
if(PHPWorkspace::Get()->IsOpen()) {
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(editor && IsPHPFile(editor)) {
e.Skip(false);
// Update the settings
TagsOptionsData d;
clConfig ccConfig("code-completion.conf");
ccConfig.ReadItem(&d);
m_lookupTable.SetSizeLimit(d.GetCcNumberOfDisplayItems());
// Check if the code completion was triggered due to user
// typing '(', in this case, call OnFunctionCallTip()
wxChar charAtPos = editor->GetCharAtPos(editor->GetCurrentPosition() - 1);
if(charAtPos == '(') {
OnFunctionCallTip(e);
} else {
// Perform the code completion here
PHPExpression::Ptr_t expr(new PHPExpression(editor->GetTextRange(0, e.GetPosition())));
bool isExprStartsWithOpenTag = expr->IsExprStartsWithOpenTag();
PHPEntityBase::Ptr_t entity = expr->Resolve(m_lookupTable, editor->GetFileName().GetFullPath());
if(entity) {
// Suggets members for the resolved entity
PHPEntityBase::List_t matches;
expr->Suggest(entity, m_lookupTable, matches);
if(!expr->GetFilter().IsEmpty() && (expr->GetCount() == 0)) {
// Word completion
PHPEntityBase::List_t keywords = PhpKeywords(expr->GetFilter());
// Preprend the keywords
matches.insert(matches.end(), keywords.begin(), keywords.end());
// Did user typed "<?ph" or "<?php" ??
// If so, clear the matches
if(isExprStartsWithOpenTag && (expr->GetFilter() == "ph" || expr->GetFilter() == "php")) {
matches.clear();
}
}
// Remove duplicates from the list
if(!matches.empty()) {
// Show the code completion box
DoShowCompletionBox(matches, expr);
}
}
}
}
}
}
开发者ID:anatooly,项目名称:codelite,代码行数:54,代码来源:php_code_completion.cpp
示例10: OnCodeComplete
void XMLCodeCompletion::OnCodeComplete(clCodeCompletionEvent& event)
{
event.Skip();
IEditor* editor = dynamic_cast<IEditor*>(event.GetEditor());
if(editor && editor->GetCtrl()->GetLexer() == wxSTC_LEX_XML) {
// an XML file
event.Skip(false);
XmlCodeComplete(editor);
} else if(editor && m_plugin->IsHTMLFile(editor)) {
// Html code completion
event.Skip(false);
HtmlCodeComplete(editor);
}
}
开发者ID:eranif,项目名称:codelite,代码行数:14,代码来源:XMLCodeCompletion.cpp
示例11: OnShowQuickOutline
void PhpPlugin::OnShowQuickOutline(clCodeCompletionEvent& e)
{
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(editor) {
// we handle only .php files
if(!IsPHPFile(editor)) {
// get the position
e.Skip();
return;
}
PHPQuickOutlineDlg dlg(m_mgr->GetTheApp()->GetTopWindow(), editor, m_mgr);
dlg.ShowModal();
CallAfter(&PhpPlugin::SetEditorActive, editor);
}
}
开发者ID:nagyist,项目名称:eranit-codelite,代码行数:15,代码来源:php.cpp
示例12: OnFindSymbol
void PHPCodeCompletion::OnFindSymbol(clCodeCompletionEvent& e)
{
if(PHPWorkspace::Get()->IsOpen()) {
if(!CanCodeComplete(e)) return;
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(editor) {
PHPEntityBase::Ptr_t resolved = GetPHPEntryUnderTheAtPos(editor, editor->GetCurrentPosition());
if(resolved) {
m_manager->OpenFile(resolved->GetFilename().GetFullPath(), "", resolved->GetLine());
}
}
} else {
e.Skip();
}
}
开发者ID:bugparty,项目名称:codelite,代码行数:17,代码来源:php_code_completion.cpp
示例13: OnTypeinfoTip
void PHPCodeCompletion::OnTypeinfoTip(clCodeCompletionEvent& e)
{
if(PHPWorkspace::Get()->IsOpen()) {
if(!CanCodeComplete(e)) return;
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(editor) {
// we handle only .php files
if(IsPHPFile(editor)) {
// FIXME: implement this using the new method
return;
}
}
} else {
e.Skip();
}
}
开发者ID:bugparty,项目名称:codelite,代码行数:18,代码来源:php_code_completion.cpp
示例14: OnFindSymbol
void PHPCodeCompletion::OnFindSymbol(clCodeCompletionEvent& e)
{
e.Skip();
if(PHPWorkspace::Get()->IsOpen()) {
if(!CanCodeComplete(e)) return;
e.Skip(false);
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(editor) {
wxString word = editor->GetWordAtCaret();
if(word.IsEmpty()) return;
PHPEntityBase::List_t symbols = m_lookupTable.FindSymbol(word);
if(symbols.size() == 1) {
PHPEntityBase::Ptr_t match = *symbols.begin();
DoOpenEditorForEntry(match);
} else {
// Convert the matches to clSelectSymbolDialogEntry::List_t
clSelectSymbolDialogEntry::List_t entries;
std::for_each(symbols.begin(), symbols.end(), [&](PHPEntityBase::Ptr_t entry) {
TagEntryPtr tag = DoPHPEntityToTagEntry(entry);
wxBitmap bmp = wxCodeCompletionBox::GetBitmap(tag);
clSelectSymbolDialogEntry m;
m.bmp = bmp;
m.name = entry->GetFullName();
m.clientData = new PHPFindSymbol_ClientData(entry);
m.help = tag->GetKind();
entries.push_back(m);
});
// Show selection dialog
clSelectSymbolDialog dlg(EventNotifier::Get()->TopFrame(), entries);
if(dlg.ShowModal() != wxID_OK) return;
PHPFindSymbol_ClientData* cd = dynamic_cast<PHPFindSymbol_ClientData*>(dlg.GetSelection());
if(cd) {
DoOpenEditorForEntry(cd->m_ptr);
}
}
}
}
}
开发者ID:anatooly,项目名称:codelite,代码行数:42,代码来源:php_code_completion.cpp
示例15: OnTypeinfoTip
void PHPCodeCompletion::OnTypeinfoTip(clCodeCompletionEvent& e)
{
if(PHPWorkspace::Get()->IsOpen()) {
if(!CanCodeComplete(e)) return;
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(editor) {
if(IsPHPFile(editor)) {
PHPEntityBase::Ptr_t entity = GetPHPEntityAtPos(editor, e.GetPosition());
if(entity) {
e.SetTooltip(entity->ToTooltip());
}
return;
}
}
} else {
e.Skip();
}
}
开发者ID:anatooly,项目名称:codelite,代码行数:20,代码来源:php_code_completion.cpp
示例16: OnCodeCompleted
void XMLCodeCompletion::OnCodeCompleted(clCodeCompletionEvent& event)
{
event.Skip();
if(event.GetEventObject() != this) {
return;
}
// sanity
IEditor* editor = clGetManager()->GetActiveEditor();
if(!editor) return;
// HTML triggered the code complete?
if(m_completeReason == kHtmlOpenSequence) {
event.Skip(false);
const wxString& selection = event.GetWord();
if(XMLBuffer::IsEmptyHtmlTag(selection) && !HasSpecialInsertPattern(selection)) {
// an empty html tag, just complete it
wxString textToInsert = selection;
textToInsert << ">";
int selStart = GetWordStartPos(editor);
int selEnd = editor->GetCurrentPosition();
if((selEnd - selStart) >= 0) {
editor->SelectText(selStart, selEnd - selStart);
editor->ReplaceSelection(textToInsert);
editor->SetCaretAt(selStart + textToInsert.length());
}
} else {
wxString completePattern = GetCompletePattern(selection);
int caretPos = completePattern.Find("|");
completePattern.Replace("|", "");
int selStart = GetWordStartPos(editor);
int selEnd = editor->GetCurrentPosition();
if((selEnd - selStart) >= 0) {
editor->SelectText(selStart, selEnd - selStart);
editor->ReplaceSelection(completePattern);
editor->SetCaretAt(selStart + caretPos);
}
}
} else if(m_completeReason == kCloseSequence) {
// User typed "</"
event.Skip(false);
const wxString& selection = event.GetWord();
int selStart = GetWordStartPos(editor);
int selEnd = editor->GetCurrentPosition();
if((selEnd - selStart) >= 0) {
editor->SelectText(selStart, selEnd - selStart);
editor->ReplaceSelection(selection);
editor->SetCaretAt(selStart + selection.length());
}
} else {
event.Skip();
}
}
开发者ID:lpc1996,项目名称:codelite,代码行数:56,代码来源:XMLCodeCompletion.cpp
示例17: OnCodeCompletionSelectionMade
void SmartCompletion::OnCodeCompletionSelectionMade(clCodeCompletionEvent& event)
{
event.Skip();
if(!m_config.IsEnabled()) return;
CHECK_PTR_RET(event.GetEntry());
// Collect info about this match
TagEntryPtr tag = event.GetEntry()->GetTag();
if(tag) {
WeightTable_t& T = *m_pCCWeight;
// we have an associated tag
wxString k = tag->GetScope() + "::" + tag->GetName();
if(T.count(k) == 0) {
T[k] = 1;
} else {
T[k]++;
}
m_config.GetUsageDb().StoreCCUsage(k, T[k]);
}
}
开发者ID:eranif,项目名称:codelite,代码行数:21,代码来源:smartcompletion.cpp
示例18: OnCodeCompletionShowing
void SmartCompletion::OnCodeCompletionShowing(clCodeCompletionEvent& event)
{
event.Skip();
if(!m_config.IsEnabled()) return;
// Sort the entries by their weight
wxCodeCompletionBoxEntry::Vec_t& entries = event.GetEntries();
// We dont want to mess with the default sorting. We just want to place the onse with weight at the top
// so we split the list into 2: entries with weight geater than 0 and 0
wxCodeCompletionBoxEntry::Vec_t importantEntries;
wxCodeCompletionBoxEntry::Vec_t normalEntries;
wxCodeCompletionBoxEntry::Vec_t::iterator iter = entries.begin();
for(; iter != entries.end(); ++iter) {
wxCodeCompletionBoxEntry::Ptr_t entry = (*iter);
if(entry->GetTag()) {
wxString k = entry->GetTag()->GetScope() + "::" + entry->GetTag()->GetName();
if(m_pCCWeight->count(k)) {
entry->SetWeight((*m_pCCWeight)[k]);
importantEntries.push_back(entry);
} else {
normalEntries.push_back(entry);
}
} else {
normalEntries.push_back(entry);
}
}
entries.swap(normalEntries);
// Step 2: sort the important entries, based on their weight
std::sort(importantEntries.begin(), importantEntries.end(),
[&](wxCodeCompletionBoxEntry::Ptr_t a, wxCodeCompletionBoxEntry::Ptr_t b) {
// Sort in desecnding order
return a->GetWeight() > b->GetWeight();
});
// Step 3: prepend the important entries
entries.insert(entries.begin(), importantEntries.begin(), importantEntries.end());
}
开发者ID:eranif,项目名称:codelite,代码行数:39,代码来源:smartcompletion.cpp
示例19: OnCodeComplete
void PHPCodeCompletion::OnCodeComplete(clCodeCompletionEvent& e)
{
if(PHPWorkspace::Get()->IsOpen()) {
if(!CanCodeComplete(e)) return;
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
if(editor) {
// we handle only .php files
if(IsPHPFile(editor)) {
// Check if the code completion was triggered due to user
// typing '(', in this case, call OnFunctionCallTip()
wxChar charAtPos = editor->GetCharAtPos(editor->GetCurrentPosition() - 1);
if(charAtPos == '(') {
OnFunctionCallTip(e);
} else {
// Perform the code completion here
PHPExpression::Ptr_t expr(new PHPExpression(editor->GetTextRange(0, e.GetPosition())));
PHPEntityBase::Ptr_t entity = expr->Resolve(m_lookupTable, editor->GetFileName().GetFullPath());
if(entity) {
// Suggets members for the resolved entity
PHPEntityBase::List_t matches;
expr->Suggest(entity, m_lookupTable, matches);
// Remove duplicates from the list
if(!matches.empty()) {
// Show the code completion box
DoShowCompletionBox(matches, expr);
}
}
}
}
}
} else {
e.Skip();
}
}
开发者ID:bugparty,项目名称:codelite,代码行数:38,代码来源:php_code_completion.cpp
示例20: OnInsertDoxyBlock
void PHPCodeCompletion::OnInsertDoxyBlock(clCodeCompletionEvent& e)
{
e.Skip();
// Do we have a workspace open?
CHECK_COND_RET(PHPWorkspace::Get()->IsOpen());
// Sanity
IEditor* editor = dynamic_cast<IEditor*>(e.GetEditor());
CHECK_PTR_RET(editor);
// Is this a PHP editor?
CHECK_COND_RET(IsPHPFile(editor));
// Get the text from the caret current position
// until the end of file
wxString unsavedBuffer = editor->GetTextRange(editor->GetCurrentPosition(), editor->GetLength());
unsavedBuffer.Trim().Trim(false);
PHPSourceFile source("<?php " + unsavedBuffer);
source.SetParseFunctionBody(false);
source.Parse();
PHPEntityBase::Ptr_t ns = source.Namespace();
if(ns) {
const PHPEntityBase::List_t& children = ns->GetChildren();
for(PHPEntityBase::List_t::const_iterator iter = children.begin(); iter != children.end(); ++iter) {
PHPEntityBase::Ptr_t match = *iter;
if(match->GetLine() == 0 && match->Is(kEntityTypeFunction)) {
e.Skip(false); // notify codelite to stop processing this event
wxString phpdoc = match->FormatPhpDoc();
phpdoc.Trim();
e.SetTooltip(phpdoc);
}
}
}
}
开发者ID:anatooly,项目名称:codelite,代码行数:36,代码来源:php_code_completion.cpp
注:本文中的clCodeCompletionEvent类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论