From 1d88a657475835b036272c3a522c612ecc082a87 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 2 Sep 2021 07:56:27 +0200 Subject: [PATCH] CppEditor: Move CppHoverHandler to its only point of use No need to compile an extra translation unit for this. Change-Id: Ie21346700818ccadab864b77f13f167bd27a457a Reviewed-by: Qt CI Bot Reviewed-by: Christian Stenger --- .../clangcodemodel/clanghoverhandler.h | 1 - src/plugins/cppeditor/CMakeLists.txt | 1 - .../cppbuiltinmodelmanagersupport.cpp | 49 +++++++++++- src/plugins/cppeditor/cppeditor.pro | 2 - src/plugins/cppeditor/cppeditor.qbs | 2 - src/plugins/cppeditor/cppeditorplugin.cpp | 1 - src/plugins/cppeditor/cpphoverhandler.cpp | 74 ------------------- src/plugins/cppeditor/cpphoverhandler.h | 42 ----------- 8 files changed, 46 insertions(+), 126 deletions(-) delete mode 100644 src/plugins/cppeditor/cpphoverhandler.cpp delete mode 100644 src/plugins/cppeditor/cpphoverhandler.h diff --git a/src/plugins/clangcodemodel/clanghoverhandler.h b/src/plugins/clangcodemodel/clanghoverhandler.h index 336fc3dd310..90ae5f05955 100644 --- a/src/plugins/clangcodemodel/clanghoverhandler.h +++ b/src/plugins/clangcodemodel/clanghoverhandler.h @@ -26,7 +26,6 @@ #pragma once #include -#include #include namespace ClangCodeModel { diff --git a/src/plugins/cppeditor/CMakeLists.txt b/src/plugins/cppeditor/CMakeLists.txt index c2d4b1e3dd9..4a16f5707f8 100644 --- a/src/plugins/cppeditor/CMakeLists.txt +++ b/src/plugins/cppeditor/CMakeLists.txt @@ -59,7 +59,6 @@ add_qtc_plugin(CppEditor cppfunctiondecldeflink.cpp cppfunctiondecldeflink.h cppfunctionsfilter.cpp cppfunctionsfilter.h cpphighlighter.cpp cpphighlighter.h - cpphoverhandler.cpp cpphoverhandler.h cppincludehierarchy.cpp cppincludehierarchy.h cppincludesfilter.cpp cppincludesfilter.h cppindexingsupport.cpp cppindexingsupport.h diff --git a/src/plugins/cppeditor/cppbuiltinmodelmanagersupport.cpp b/src/plugins/cppeditor/cppbuiltinmodelmanagersupport.cpp index 20e52d0e16a..18dac937535 100644 --- a/src/plugins/cppeditor/cppbuiltinmodelmanagersupport.cpp +++ b/src/plugins/cppeditor/cppbuiltinmodelmanagersupport.cpp @@ -23,19 +23,62 @@ ** ****************************************************************************/ -#include "cppcompletionassist.h" #include "cppbuiltinmodelmanagersupport.h" + +#include "builtineditordocumentprocessor.h" +#include "cppcompletionassist.h" +#include "cppelementevaluator.h" #include "cppfollowsymbolundercursor.h" -#include "cpphoverhandler.h" #include "cppoverviewmodel.h" #include "cpprefactoringengine.h" -#include "builtineditordocumentprocessor.h" +#include "cpptoolsreuse.h" #include +#include +#include #include +using namespace Core; +using namespace TextEditor; + namespace CppEditor::Internal { +namespace { +class CppHoverHandler : public TextEditor::BaseHoverHandler +{ +private: + void identifyMatch(TextEditor::TextEditorWidget *editorWidget, + int pos, + ReportPriority report) override + { + Utils::ExecuteOnDestruction reportPriority([this, report](){ report(priority()); }); + + QTextCursor tc(editorWidget->document()); + tc.setPosition(pos); + + CppElementEvaluator evaluator(editorWidget); + evaluator.setTextCursor(tc); + evaluator.execute(); + QString tip; + if (evaluator.hasDiagnosis()) { + tip += evaluator.diagnosis(); + setPriority(Priority_Diagnostic); + } + const QStringList fallback = identifierWordsUnderCursor(tc); + if (evaluator.identifiedCppElement()) { + const QSharedPointer &cppElement = evaluator.cppElement(); + const QStringList candidates = cppElement->helpIdCandidates; + const HelpItem helpItem(candidates + fallback, cppElement->helpMark, cppElement->helpCategory); + setLastHelpItemIdentified(helpItem); + if (!helpItem.isValid()) + tip += cppElement->tooltip; + } else { + setLastHelpItemIdentified({fallback, {}, HelpItem::Unknown}); + } + setToolTip(tip); + } +}; +} // anonymous namespace QString BuiltinModelManagerSupportProvider::id() const { diff --git a/src/plugins/cppeditor/cppeditor.pro b/src/plugins/cppeditor/cppeditor.pro index 24c62083557..382be09c13d 100644 --- a/src/plugins/cppeditor/cppeditor.pro +++ b/src/plugins/cppeditor/cppeditor.pro @@ -55,7 +55,6 @@ HEADERS += \ cppfunctiondecldeflink.h \ cppfunctionsfilter.h \ cpphighlighter.h \ - cpphoverhandler.h \ cppincludehierarchy.h \ cppincludesfilter.h \ cppindexingsupport.h \ @@ -174,7 +173,6 @@ SOURCES += \ cppfunctiondecldeflink.cpp \ cppfunctionsfilter.cpp \ cpphighlighter.cpp \ - cpphoverhandler.cpp \ cppincludehierarchy.cpp \ cppincludesfilter.cpp \ cppindexingsupport.cpp \ diff --git a/src/plugins/cppeditor/cppeditor.qbs b/src/plugins/cppeditor/cppeditor.qbs index 571b82a07f8..60346245c43 100644 --- a/src/plugins/cppeditor/cppeditor.qbs +++ b/src/plugins/cppeditor/cppeditor.qbs @@ -132,8 +132,6 @@ QtcPlugin { "cppfunctionsfilter.h", "cpphighlighter.cpp", "cpphighlighter.h", - "cpphoverhandler.cpp", - "cpphoverhandler.h", "cppincludehierarchy.cpp", "cppincludehierarchy.h", "cppincludesfilter.cpp", diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp index d9dcf5dccf0..11816eb196d 100644 --- a/src/plugins/cppeditor/cppeditorplugin.cpp +++ b/src/plugins/cppeditor/cppeditorplugin.cpp @@ -35,7 +35,6 @@ #include "cppeditorwidget.h" #include "cppfilesettingspage.h" #include "cpphighlighter.h" -#include "cpphoverhandler.h" #include "cppincludehierarchy.h" #include "cppmodelmanager.h" #include "cppoutline.h" diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp deleted file mode 100644 index c197f6657bc..00000000000 --- a/src/plugins/cppeditor/cpphoverhandler.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "cpphoverhandler.h" - -#include "cppelementevaluator.h" -#include "cpptoolsreuse.h" - -#include -#include - -#include -#include - -#include -#include - -using namespace Core; -using namespace TextEditor; - -namespace CppEditor { - -void CppHoverHandler::identifyMatch(TextEditorWidget *editorWidget, int pos, ReportPriority report) -{ - Utils::ExecuteOnDestruction reportPriority([this, report](){ report(priority()); }); - - QTextCursor tc(editorWidget->document()); - tc.setPosition(pos); - - CppElementEvaluator evaluator(editorWidget); - evaluator.setTextCursor(tc); - evaluator.execute(); - QString tip; - if (evaluator.hasDiagnosis()) { - tip += evaluator.diagnosis(); - setPriority(Priority_Diagnostic); - } - const QStringList fallback = identifierWordsUnderCursor(tc); - if (evaluator.identifiedCppElement()) { - const QSharedPointer &cppElement = evaluator.cppElement(); - const QStringList candidates = cppElement->helpIdCandidates; - const HelpItem helpItem(candidates + fallback, cppElement->helpMark, cppElement->helpCategory); - setLastHelpItemIdentified(helpItem); - if (!helpItem.isValid()) - tip += cppElement->tooltip; - } else { - setLastHelpItemIdentified({fallback, {}, HelpItem::Unknown}); - } - setToolTip(tip); -} - -} // namespace CppEditor diff --git a/src/plugins/cppeditor/cpphoverhandler.h b/src/plugins/cppeditor/cpphoverhandler.h deleted file mode 100644 index 3927e0cfebb..00000000000 --- a/src/plugins/cppeditor/cpphoverhandler.h +++ /dev/null @@ -1,42 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include "cppeditor_global.h" - -#include - -namespace CppEditor { - -class CPPEDITOR_EXPORT CppHoverHandler : public TextEditor::BaseHoverHandler -{ -private: - void identifyMatch(TextEditor::TextEditorWidget *editorWidget, - int pos, - ReportPriority report) override; -}; - -} // namespace CppEditor