diff --git a/addons/externaltools/kateexternaltoolscommand.cpp b/addons/externaltools/kateexternaltoolscommand.cpp index 8c773e944..afbbdb72e 100644 --- a/addons/externaltools/kateexternaltoolscommand.cpp +++ b/addons/externaltools/kateexternaltoolscommand.cpp @@ -1,49 +1,59 @@ /* This file is part of the KDE project * * Copyright 2019 Dominik Haumann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "kateexternaltoolscommand.h" #include "externaltoolsplugin.h" +#include "kateexternaltool.h" + +#include KateExternalToolsCommand::KateExternalToolsCommand(KateExternalToolsPlugin* plugin) : KTextEditor::Command(plugin->commands()) , m_plugin(plugin) { } bool KateExternalToolsCommand::exec(KTextEditor::View* view, const QString& cmd, QString& msg, const KTextEditor::Range& range) { Q_UNUSED(msg) Q_UNUSED(range) const QString command = cmd.trimmed(); const auto tool = m_plugin->toolForCommand(command); if (tool) { m_plugin->runTool(*tool, view); return true; } return false; } -bool KateExternalToolsCommand::help(KTextEditor::View*, const QString&, QString&) +bool KateExternalToolsCommand::help(KTextEditor::View*, const QString& cmd, QString& msg) { + const QString command = cmd.trimmed(); + const auto tool = m_plugin->toolForCommand(command); + if (tool) { + msg = i18n("Starts the external tool '%1'", tool->name); + return true; + } + return false; } // kate: space-indent on; indent-width 4; replace-tabs on; diff --git a/addons/externaltools/kateexternaltoolscommand.h b/addons/externaltools/kateexternaltoolscommand.h index fea3232e0..064ec14c4 100644 --- a/addons/externaltools/kateexternaltoolscommand.h +++ b/addons/externaltools/kateexternaltoolscommand.h @@ -1,52 +1,51 @@ /* This file is part of the KDE project * * Copyright 2019 Dominik Haumann * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef KTEXTEDITOR_KATE_EXTERNALTOOLS_COMMAND_H #define KTEXTEDITOR_KATE_EXTERNALTOOLS_COMMAND_H #include class KateExternalToolsPlugin; class KateExternalTool; /** * Helper class that registers and executes the respective external tool. */ class KateExternalToolsCommand : public KTextEditor::Command { public: KateExternalToolsCommand(KateExternalToolsPlugin* plugin); virtual ~KateExternalToolsCommand() = default; public: - // const QStringList& cmds() override; // FIXME bool exec(KTextEditor::View* view, const QString& cmd, QString& msg, const KTextEditor::Range& range = KTextEditor::Range::invalid()) override; bool help(KTextEditor::View* view, const QString& cmd, QString& msg) override; private: void runTool(KateExternalTool& tool, KTextEditor::View* view); private: KateExternalToolsPlugin* m_plugin; }; #endif // KTEXTEDITOR_KATE_EXTERNALTOOLS_COMMAND_H // kate: space-indent on; indent-width 4; replace-tabs on;