<table><tr><td style="">rjvbb created this revision.<br />rjvbb added a reviewer: Kate.<br />rjvbb added projects: Kate, KTextEditor, KDevelop.<br />Herald added a subscriber: kwrite-devel.<br />rjvbb requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D16779">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>This is a work-in-progress set of changes intending to make the CTags plugin available in/from KDevelop.</p>

<p>KDevelop does not currently have support for KTextEditor configuration dialogs so I've had to move the <tt style="background: #ebebeb; font-size: 13px;">common_db</tt> database to a generic location (cf. the snippets plugin which does the same). I'm open to migration suggestions (common_db can take quite a while to (re)generate).</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Currently this allows jumping to a symbol's declaration or definition in a (new) document; even the cursor is positioned correctly in my tests. Evidently this requires a companion change in KDevelop because it does not yet implement KTextEditorIntegration::showToolView() and openURL. For completeness sake:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">KTextEditor::View *MainWindow::openUrl(const QUrl &url, const QString &encoding)
{
    Q_UNUSED(encoding);

    auto documentController = Core::self()->documentControllerInternal();
    auto doc = url.isEmpty() ? documentController->openDocumentFromText(QString()) : documentController->openDocument(url);
    return doc ? doc->activeTextView() : nullptr;
}

bool MainWindow::showToolView(QWidget *widget)
{
    const auto view = ToolViewFactory::fromWidget(widget);
    if (view) {
        Core::self()->uiController()->raiseToolView(widget);
        qWarning() << Q_FUNC_INFO << view << view->m_text;
        return true;
    }
    qWarning() << Q_FUNC_INFO << "no ToolViewFactory for" << widget;
    return false;
}</pre></div>

<p>That showToolView() method doesn't work though, and opening the toolview manually yields a garbled plugin UI, as if it doesn't get the correct size information.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R40 Kate</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D16779">https://phabricator.kde.org/D16779</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>addons/kate-ctags/kate_ctags_view.cpp<br />
addons/kate-ctags/katectagsplugin.desktop</div></div></div><br /><div><strong>To: </strong>rjvbb, Kate<br /><strong>Cc: </strong>kdevelop-devel, kwrite-devel, KDE Applications, glebaccon, antismap, michaelh, iodelay, vbspam, ngraham, demsking, geetamc, head7, Pilzschaf, akshaydeo, surgenight, arrowd, cullmann, kfunk, sars, dhaumann<br /></div>