LanguageClient: add global action to open inspector

Change-Id: I3dcd6cdf716e68e2d7bedb24e1db372d93683698
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2021-04-19 11:00:37 +02:00
parent 86f0d72b2a
commit b2c0554733
2 changed files with 23 additions and 1 deletions

View File

@@ -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

View File

@@ -25,9 +25,14 @@
#include "languageclientplugin.h"
#include "client.h"
#include "languageclientmanager.h"
#include "client.h"
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <QAction>
#include <QMenu>
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;
}