diff --git a/src/plugins/languageclient/languageclientinterface.cpp b/src/plugins/languageclient/languageclientinterface.cpp index 05980617207..1e8a0fe1192 100644 --- a/src/plugins/languageclient/languageclientinterface.cpp +++ b/src/plugins/languageclient/languageclientinterface.cpp @@ -112,7 +112,7 @@ StdIOClientInterface::~StdIOClientInterface() bool StdIOClientInterface::needsRestart(const StdIOSettings *settings) const { - return m_executable != settings->m_executable || m_arguments != settings->m_arguments; + return m_executable != settings->m_executable || m_arguments != settings->arguments(); } bool StdIOClientInterface::start() diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp index e2c5bc042de..3e90e176bbe 100644 --- a/src/plugins/languageclient/languageclientsettings.cpp +++ b/src/plugins/languageclient/languageclientsettings.cpp @@ -529,9 +529,14 @@ void StdIOSettings::fromMap(const QVariantMap &map) m_arguments = map[argumentsKey].toString(); } +QString StdIOSettings::arguments() const +{ + return Utils::globalMacroExpander()->expand(m_arguments); +} + BaseClientInterface *StdIOSettings::createInterface() const { - return new StdIOClientInterface(m_executable, Utils::globalMacroExpander()->expand(m_arguments)); + return new StdIOClientInterface(m_executable, arguments()); } static QWidget *createCapabilitiesView( diff --git a/src/plugins/languageclient/languageclientsettings.h b/src/plugins/languageclient/languageclientsettings.h index cf36d398f38..c6dca7ee3ab 100644 --- a/src/plugins/languageclient/languageclientsettings.h +++ b/src/plugins/languageclient/languageclientsettings.h @@ -106,6 +106,7 @@ public: bool isValid() const override; QVariantMap toMap() const override; void fromMap(const QVariantMap &map) override; + QString arguments() const; protected: BaseClientInterface *createInterface() const override;