///The first definition that belongs to a context that surrounds the current cursor Declaration* cursorContextDeclaration() { KTextEditor::View* view = ICore::self()->documentController()->activeTextDocumentView(); if(!view) return nullptr; KDevelop::DUChainReadLocker lock( DUChain::lock() ); TopDUContext* ctx = DUChainUtils::standardContextForUrl(view->document()->url()); if(!ctx) return nullptr; KTextEditor::Cursor cursor(view->cursorPosition()); DUContext* subCtx = ctx->findContext(ctx->transformToLocalRevision(cursor)); while(subCtx && !subCtx->owner()) subCtx = subCtx->parentContext(); Declaration* definition = nullptr; if(!subCtx || !subCtx->owner()) definition = DUChainUtils::declarationInLine(cursor, ctx); else definition = subCtx->owner(); if(!definition) return nullptr; return definition; }
QString KateCTagsView::currentWord( ) { KTextEditor::View *kv = mainWindow()->activeView(); if (!kv) { kDebug() << "no KTextEditor::View" << endl; return QString(); } if (kv->selection()) { return kv->selectionText(); } if (!kv->cursorPosition().isValid()) { kDebug() << "cursor not valid!" << endl; return QString(); } int line = kv->cursorPosition().line(); int col = kv->cursorPosition().column(); bool includeColon = m_ctagsUi.cmdEdit->text().contains("--extra=+q"); QString linestr = kv->document()->line(line); int startPos = qMax(qMin(col, linestr.length()-1), 0); int endPos = startPos; while (startPos >= 0 && (linestr[startPos].isLetterOrNumber() || (linestr[startPos] == ':' && includeColon) || linestr[startPos] == '_' || linestr[startPos] == '~')) { startPos--; } while (endPos < (int)linestr.length() && (linestr[endPos].isLetterOrNumber() || (linestr[endPos] == ':' && includeColon) || linestr[endPos] == '_')) { endPos++; } if (startPos == endPos) { kDebug() << "no word found!" << endl; return QString(); } //kDebug() << linestr.mid(startPos+1, endPos-startPos-1); return linestr.mid(startPos+1, endPos-startPos-1); }
// /home/follinge/projects/kscope-kde4/src/editorpage4.h:61:7: error: candidate is: bool kscope4::EditorPage::getCursorPos(uint&, uint&) bool EditorPage::getCursorPos(int& nLine, int& nCol) { KTextEditor::View* pCursorIf; // Acquire the view cursor pCursorIf = dynamic_cast<KTextEditor::View*>(m_pView); if (pCursorIf == NULL) return false; // Get the cursor position (adjusted to 1-based counting) //pCursorIf->cursorPosition(&nLine, &nCol); pCursorIf->cursorPosition().position(nLine, nCol); nLine++; nCol++; return true; }
void KDevelop::DocumentationController::doShowDocumentation() { IDocument* doc = ICore::self()->documentController()->activeDocument(); if(!doc) return; KTextEditor::Document* textDoc = doc->textDocument(); if(!textDoc) return; KTextEditor::View* view = textDoc->activeView(); if(!view) return; KDevelop::DUChainReadLocker lock( DUChain::lock() ); Declaration *dec = DUChainUtils::declarationForDefinition( DUChainUtils::itemUnderCursor( doc->url(), SimpleCursor(view->cursorPosition()) ) ); if(dec) { KSharedPtr< IDocumentation > documentation = documentationForDeclaration(dec); if(documentation) { showDocumentation(documentation); } } }
QWidget* QuickOpenPlugin::specialObjectNavigationWidget() const { KTextEditor::View* view = ICore::self()->documentController()->activeTextDocumentView(); if( !view ) return nullptr; QUrl url = ICore::self()->documentController()->activeDocument()->url(); const auto languages = ICore::self()->languageController()->languagesForUrl(url); foreach (const auto language, languages) { QWidget* w = language->specialLanguageObjectNavigationWidget(url, KTextEditor::Cursor(view->cursorPosition()) ); if(w) return w; }
Declaration* cursorDeclaration() { KTextEditor::View* view = ICore::self()->documentController()->activeTextDocumentView(); if(!view) return nullptr; KDevelop::DUChainReadLocker lock( DUChain::lock() ); return DUChainUtils::declarationForDefinition( DUChainUtils::itemUnderCursor( view->document()->url(), KTextEditor::Cursor(view->cursorPosition()) ).declaration ); }