forked from qt-creator/qt-creator
ClangTools: Add "Analyze Current File" to Tools menu and context menu
Add the action to "Tools > C++" and the C++ editor context menu. Task-number: QTCREATORBUG-23348 Change-Id: I650e4d10e07ba227c6f89ab660ce7fa81263172e Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -8,6 +8,7 @@ add_qtc_plugin(ClangTools
|
||||
CONDITION TARGET libclang AND TARGET yaml-cpp
|
||||
DEPENDS ClangSupport libclang yaml-cpp
|
||||
PLUGIN_DEPENDS Core Debugger CppTools ${TST_COMPONENT}
|
||||
PLUGIN_RECOMMENDS CppEditor
|
||||
INCLUDES ${CLANG_INCLUDE_DIRS}
|
||||
SOURCES
|
||||
clangfileinfo.h
|
||||
|
@@ -18,6 +18,10 @@ QtcPlugin {
|
||||
|
||||
Depends { name: "Qt.widgets" }
|
||||
|
||||
pluginRecommends: [
|
||||
"CppEditor"
|
||||
]
|
||||
|
||||
pluginTestDepends: [
|
||||
"QbsProjectManager",
|
||||
"QmakeProjectManager",
|
||||
|
@@ -9,6 +9,8 @@ isEmpty(EXTERNAL_YAML_CPP_FOUND): QTC_LIB_DEPENDS += yaml-cpp
|
||||
QTC_PLUGIN_DEPENDS += \
|
||||
debugger \
|
||||
cpptools
|
||||
QTC_PLUGIN_RECOMMENDS += \
|
||||
cppeditor
|
||||
QTC_TEST_DEPENDS += \
|
||||
qbsprojectmanager \
|
||||
qmakeprojectmanager
|
||||
|
@@ -48,6 +48,8 @@
|
||||
#include <cpptools/cpptoolsconstants.h>
|
||||
#include <cpptools/cppmodelmanager.h>
|
||||
|
||||
#include <cppeditor/cppeditorconstants.h>
|
||||
|
||||
#include <projectexplorer/kitinformation.h>
|
||||
#include <projectexplorer/projectpanelfactory.h>
|
||||
#include <projectexplorer/target.h>
|
||||
@@ -95,8 +97,16 @@ bool ClangToolsPlugin::initialize(const QStringList &arguments, QString *errorSt
|
||||
d = new ClangToolsPluginPrivate;
|
||||
|
||||
ActionManager::registerAction(d->clangTool.startAction(), Constants::RUN_ON_PROJECT);
|
||||
ActionManager::registerAction(d->clangTool.startOnCurrentFileAction(),
|
||||
Command *cmd = ActionManager::registerAction(d->clangTool.startOnCurrentFileAction(),
|
||||
Constants::RUN_ON_CURRENT_FILE);
|
||||
ActionContainer *mtoolscpp = ActionManager::actionContainer(CppTools::Constants::M_TOOLS_CPP);
|
||||
if (mtoolscpp)
|
||||
mtoolscpp->addAction(cmd);
|
||||
|
||||
Core::ActionContainer *mcontext = Core::ActionManager::actionContainer(
|
||||
CppEditor::Constants::M_CONTEXT);
|
||||
if (mcontext)
|
||||
mcontext->addAction(cmd, CppEditor::Constants::G_CONTEXT_FIRST); // TODO
|
||||
|
||||
auto panelFactory = m_projectPanelFactoryInstance = new ProjectPanelFactory;
|
||||
panelFactory->setPriority(100);
|
||||
|
@@ -29,6 +29,7 @@ namespace CppEditor {
|
||||
namespace Constants {
|
||||
|
||||
const char M_CONTEXT[] = "CppEditor.ContextMenu";
|
||||
const char G_CONTEXT_FIRST[] = "CppEditor.GFirst";
|
||||
const char CPPEDITOR_ID[] = "CppEditor.C++Editor";
|
||||
const char CPPEDITOR_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("OpenWith::Editors", "C++ Editor");
|
||||
const char SWITCH_DECLARATION_DEFINITION[] = "CppEditor.SwitchDeclarationDefinition";
|
||||
|
@@ -174,6 +174,7 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
||||
Context context(Constants::CPPEDITOR_ID);
|
||||
|
||||
ActionContainer *contextMenu = ActionManager::createMenu(Constants::M_CONTEXT);
|
||||
contextMenu->insertGroup(Core::Constants::G_DEFAULT_ONE, Constants::G_CONTEXT_FIRST);
|
||||
|
||||
Command *cmd;
|
||||
ActionContainer *cppToolsMenu = ActionManager::actionContainer(CppTools::Constants::M_TOOLS_CPP);
|
||||
@@ -181,12 +182,12 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
||||
|
||||
cmd = ActionManager::command(CppTools::Constants::SWITCH_HEADER_SOURCE);
|
||||
cmd->setTouchBarText(tr("Header/Source", "text on macOS touch bar"));
|
||||
contextMenu->addAction(cmd);
|
||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||
touchBar->addAction(cmd, Core::Constants::G_TOUCHBAR_NAVIGATION);
|
||||
|
||||
cmd = ActionManager::command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR);
|
||||
cmd->setTouchBarText(tr("Follow", "text on macOS touch bar"));
|
||||
contextMenu->addAction(cmd);
|
||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||
cppToolsMenu->addAction(cmd);
|
||||
touchBar->addAction(cmd, Core::Constants::G_TOUCHBAR_NAVIGATION);
|
||||
|
||||
@@ -204,7 +205,7 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
||||
cmd->setTouchBarText(tr("Decl/Def", "text on macOS touch bar"));
|
||||
connect(switchDeclarationDefinition, &QAction::triggered,
|
||||
this, &CppEditorPlugin::switchDeclarationDefinition);
|
||||
contextMenu->addAction(cmd);
|
||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||
cppToolsMenu->addAction(cmd);
|
||||
touchBar->addAction(cmd, Core::Constants::G_TOUCHBAR_NAVIGATION);
|
||||
|
||||
@@ -223,21 +224,21 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
||||
cppToolsMenu->addAction(cmd);
|
||||
|
||||
cmd = ActionManager::command(TextEditor::Constants::FIND_USAGES);
|
||||
contextMenu->addAction(cmd);
|
||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||
cppToolsMenu->addAction(cmd);
|
||||
|
||||
d->m_openTypeHierarchyAction = new QAction(tr("Open Type Hierarchy"), this);
|
||||
cmd = ActionManager::registerAction(d->m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context);
|
||||
cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? tr("Meta+Shift+T") : tr("Ctrl+Shift+T")));
|
||||
connect(d->m_openTypeHierarchyAction, &QAction::triggered, this, &CppEditorPlugin::openTypeHierarchy);
|
||||
contextMenu->addAction(cmd);
|
||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||
cppToolsMenu->addAction(cmd);
|
||||
|
||||
d->m_openIncludeHierarchyAction = new QAction(tr("Open Include Hierarchy"), this);
|
||||
cmd = ActionManager::registerAction(d->m_openIncludeHierarchyAction, Constants::OPEN_INCLUDE_HIERARCHY, context);
|
||||
cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? tr("Meta+Shift+I") : tr("Ctrl+Shift+I")));
|
||||
connect(d->m_openIncludeHierarchyAction, &QAction::triggered, this, &CppEditorPlugin::openIncludeHierarchy);
|
||||
contextMenu->addAction(cmd);
|
||||
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
|
||||
cppToolsMenu->addAction(cmd);
|
||||
|
||||
// Refactoring sub-menu
|
||||
@@ -256,19 +257,19 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
|
||||
cppToolsMenu->addAction(cmd);
|
||||
|
||||
// Update context in global context
|
||||
cppToolsMenu->addSeparator();
|
||||
cppToolsMenu->addSeparator(Core::Constants::G_DEFAULT_THREE);
|
||||
d->m_reparseExternallyChangedFiles = new QAction(tr("Reparse Externally Changed Files"), this);
|
||||
cmd = ActionManager::registerAction(d->m_reparseExternallyChangedFiles, Constants::UPDATE_CODEMODEL);
|
||||
CppTools::CppModelManager *cppModelManager = CppTools::CppModelManager::instance();
|
||||
connect(d->m_reparseExternallyChangedFiles, &QAction::triggered, cppModelManager, &CppTools::CppModelManager::updateModifiedSourceFiles);
|
||||
cppToolsMenu->addAction(cmd);
|
||||
cppToolsMenu->addAction(cmd, Core::Constants::G_DEFAULT_THREE);
|
||||
|
||||
cppToolsMenu->addSeparator();
|
||||
cppToolsMenu->addSeparator(Core::Constants::G_DEFAULT_THREE);
|
||||
QAction *inspectCppCodeModel = new QAction(tr("Inspect C++ Code Model..."), this);
|
||||
cmd = ActionManager::registerAction(inspectCppCodeModel, Constants::INSPECT_CPP_CODEMODEL);
|
||||
cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? tr("Meta+Shift+F12") : tr("Ctrl+Shift+F12")));
|
||||
connect(inspectCppCodeModel, &QAction::triggered, d, &CppEditorPluginPrivate::inspectCppCodeModel);
|
||||
cppToolsMenu->addAction(cmd);
|
||||
cppToolsMenu->addAction(cmd, Core::Constants::G_DEFAULT_THREE);
|
||||
|
||||
contextMenu->addSeparator(context);
|
||||
|
||||
|
Reference in New Issue
Block a user