diff --git a/analyzers/cppcheck/plugin.cpp b/analyzers/cppcheck/plugin.cpp --- a/analyzers/cppcheck/plugin.cpp +++ b/analyzers/cppcheck/plugin.cpp @@ -42,6 +42,7 @@ #include #include +#include K_PLUGIN_FACTORY_WITH_JSON(CppcheckFactory, "kdevcppcheck.json", registerPlugin();) @@ -223,11 +224,16 @@ { KDevelop::ContextMenuExtension extension = KDevelop::IPlugin::contextMenuExtension(context); - if (context->hasType(KDevelop::Context::EditorContext) && - m_currentProject && !isRunning()) { + if (context->hasType(KDevelop::Context::EditorContext) && m_currentProject && !isRunning()) { + auto eContext = dynamic_cast(context); + QMimeDatabase db; + const auto mime = db.mimeTypeForUrl(eContext->url()); - extension.addAction(KDevelop::ContextMenuExtension::AnalyzeFileGroup, m_contextActionFile); - extension.addAction(KDevelop::ContextMenuExtension::AnalyzeProjectGroup, m_contextActionProject); + if (mime.name() == QLatin1String("text/x-c++src") || mime.name() == QLatin1String("text/x-c++hdr") || + mime.name() == QLatin1String("text/x-chdr") || mime.name() == QLatin1String("text/x-csrc")) { + extension.addAction(KDevelop::ContextMenuExtension::AnalyzeFileGroup, m_contextActionFile); + extension.addAction(KDevelop::ContextMenuExtension::AnalyzeProjectGroup, m_contextActionProject); + } } if (context->hasType(KDevelop::Context::ProjectItemContext) && !isRunning()) {