diff --git a/plugins/clang/duchain/clanghelpers.cpp b/plugins/clang/duchain/clanghelpers.cpp --- a/plugins/clang/duchain/clanghelpers.cpp +++ b/plugins/clang/duchain/clanghelpers.cpp @@ -311,6 +311,7 @@ QStringLiteral("hxx"), QStringLiteral("hpp"), QStringLiteral("tlh"), + QStringLiteral("cuh"), QStringLiteral("h++"), }; return headerExtensions; @@ -325,6 +326,7 @@ QStringLiteral("c++"), QStringLiteral("cxx"), QStringLiteral("C"), + QStringLiteral("cu"), QStringLiteral("m"), QStringLiteral("mm"), QStringLiteral("M"), diff --git a/plugins/clang/duchain/documentfinderhelpers.cpp b/plugins/clang/duchain/documentfinderhelpers.cpp --- a/plugins/clang/duchain/documentfinderhelpers.cpp +++ b/plugins/clang/duchain/documentfinderhelpers.cpp @@ -179,8 +179,10 @@ static const QStringList mimeTypes = { QStringLiteral("text/x-chdr"), QStringLiteral("text/x-c++hdr"), + QStringLiteral("text/vnd.nvidia.cuda.chdr"), QStringLiteral("text/x-csrc"), QStringLiteral("text/x-c++src"), + QStringLiteral("text/vnd.nvidia.cuda.csrc"), QStringLiteral("text/x-objcsrc") }; return mimeTypes; diff --git a/plugins/clang/duchain/parsesession.cpp b/plugins/clang/duchain/parsesession.cpp --- a/plugins/clang/duchain/parsesession.cpp +++ b/plugins/clang/duchain/parsesession.cpp @@ -102,8 +102,11 @@ // TODO: No proper mime type detection possible yet // cf. https://bugs.freedesktop.org/show_bug.cgi?id=23700 - if (path.endsWith(QLatin1String(".cu"), Qt::CaseInsensitive)) { - return {QByteArrayLiteral("-xcuda")}; + if (path.endsWith(QLatin1String(".cu"), Qt::CaseInsensitive) || + path.endsWith(QLatin1String(".cuh"), Qt::CaseInsensitive)) { + auto result = parserSettings.toClangAPI(); + result.append(QByteArrayLiteral("-xcuda")); + return result; } if (parserSettings.parserOptions.isEmpty()) { diff --git a/plugins/clang/kdevclang.xml b/plugins/clang/kdevclang.xml --- a/plugins/clang/kdevclang.xml +++ b/plugins/clang/kdevclang.xml @@ -54,7 +54,13 @@ NVIDIA CUDA C kaynak kodu початковий код C NVIDIA CUDA NVIDIA CUDA C 源代码 - + + + + NVIDIA CUDA C header + + + diff --git a/plugins/clang/kdevclangsupport.json b/plugins/clang/kdevclangsupport.json --- a/plugins/clang/kdevclangsupport.json +++ b/plugins/clang/kdevclangsupport.json @@ -72,6 +72,7 @@ "text/x-c++src", "text/x-opencl-src", "text/vnd.nvidia.cuda.csrc", + "text/vnd.nvidia.cuda.chdr", "text/x-objcsrc" ] }