From b2c05547333444859941b584f3f30c9cfac6815a Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 19 Apr 2021 11:00:37 +0200 Subject: [PATCH] LanguageClient: add global action to open inspector Change-Id: I3dcd6cdf716e68e2d7bedb24e1db372d93683698 Reviewed-by: Christian Stenger --- .../languageclient/languageclient_global.h | 1 + .../languageclient/languageclientplugin.cpp | 23 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/plugins/languageclient/languageclient_global.h b/src/plugins/languageclient/languageclient_global.h index 37556715372..8a63c660ac8 100644 --- a/src/plugins/languageclient/languageclient_global.h +++ b/src/plugins/languageclient/languageclient_global.h @@ -48,6 +48,7 @@ const char LANGUAGECLIENT_WORKSPACE_CLASS_FILTER_ID[] = "Workspace Classes and S const char LANGUAGECLIENT_WORKSPACE_CLASS_FILTER_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("LanguageClient", "Classes and Structs in Workspace"); const char LANGUAGECLIENT_WORKSPACE_METHOD_FILTER_ID[] = "Workspace Functions and Methods"; const char LANGUAGECLIENT_WORKSPACE_METHOD_FILTER_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("LanguageClient", "Functions and Methods in Workspace"); +const char G_TOOLS_LANGUAGECLIENT[] = "QtCreator.Group.Tools.LanguageClient"; } // namespace Constants } // namespace LanguageClient diff --git a/src/plugins/languageclient/languageclientplugin.cpp b/src/plugins/languageclient/languageclientplugin.cpp index 26702c4a6d2..8f530f70139 100644 --- a/src/plugins/languageclient/languageclientplugin.cpp +++ b/src/plugins/languageclient/languageclientplugin.cpp @@ -25,9 +25,14 @@ #include "languageclientplugin.h" +#include "client.h" #include "languageclientmanager.h" -#include "client.h" +#include +#include + +#include +#include namespace LanguageClient { @@ -50,10 +55,26 @@ LanguageClientPlugin *LanguageClientPlugin::instance() bool LanguageClientPlugin::initialize(const QStringList & /*arguments*/, QString * /*errorString*/) { + using namespace Core; + LanguageClientManager::init(); LanguageClientSettings::registerClientType({Constants::LANGUAGECLIENT_STDIO_SETTINGS_ID, tr("Generic StdIO Language Server"), []() { return new StdIOSettings; }}); + + //register actions + ActionContainer *toolsContainer + = ActionManager::actionContainer(Core::Constants::M_TOOLS); + toolsContainer->insertGroup(Core::Constants::G_TOOLS_OPTIONS, Constants::G_TOOLS_LANGUAGECLIENT); + ActionContainer *container = ActionManager::createMenu("Language Client"); + container->menu()->setTitle(tr("&Language Client")); + toolsContainer->addMenu(container, Constants::G_TOOLS_LANGUAGECLIENT); + + auto inspectAction = new QAction(tr("Inspect Language Clients"), this); + connect(inspectAction, &QAction::triggered, this, &LanguageClientManager::showInspector); + container->addAction( + ActionManager::registerAction(inspectAction, "LanguageClient.InspectLanguageClients")); + return true; }