Clang: Classify *.{moc,qdoc} as CXXSource

This leads to the "-x c++" arguments to libclang for these file types
and thus avoids crashes of libclang 3.6.

Task-number: QTCREATORBUG-16140
Change-Id: I6141615a1b0b7ad92d7151ad58c304eaf99fb4f3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2016-04-22 11:53:24 +02:00
parent b06b80dc9b
commit 2aacc2bf6b
3 changed files with 6 additions and 0 deletions

View File

@@ -88,6 +88,7 @@ public:
addMimeType(CppTools::Constants::CPP_SOURCE_MIMETYPE); addMimeType(CppTools::Constants::CPP_SOURCE_MIMETYPE);
addMimeType(CppTools::Constants::CPP_HEADER_MIMETYPE); addMimeType(CppTools::Constants::CPP_HEADER_MIMETYPE);
addMimeType(CppTools::Constants::QDOC_MIMETYPE); addMimeType(CppTools::Constants::QDOC_MIMETYPE);
addMimeType(CppTools::Constants::MOC_MIMETYPE);
setDocumentCreator([]() { return new CppEditorDocument; }); setDocumentCreator([]() { return new CppEditorDocument; });
setEditorWidgetCreator([]() { return new CppEditorWidget; }); setEditorWidgetCreator([]() { return new CppEditorWidget; });

View File

@@ -64,6 +64,10 @@ ProjectFile::Kind ProjectFile::classify(const QString &file)
return ObjCSource; return ObjCSource;
if (mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)) if (mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE))
return ObjCXXSource; return ObjCXXSource;
if (mt == QLatin1String(CppTools::Constants::QDOC_MIMETYPE))
return CXXSource;
if (mt == QLatin1String(CppTools::Constants::MOC_MIMETYPE))
return CXXSource;
return Unclassified; return Unclassified;
} }

View File

@@ -43,6 +43,7 @@ const char OBJECTIVE_C_SOURCE_MIMETYPE[] = "text/x-objcsrc";
const char OBJECTIVE_CPP_SOURCE_MIMETYPE[] = "text/x-objc++src"; const char OBJECTIVE_CPP_SOURCE_MIMETYPE[] = "text/x-objc++src";
const char CPP_HEADER_MIMETYPE[] = "text/x-c++hdr"; const char CPP_HEADER_MIMETYPE[] = "text/x-c++hdr";
const char QDOC_MIMETYPE[] = "text/x-qdoc"; const char QDOC_MIMETYPE[] = "text/x-qdoc";
const char MOC_MIMETYPE[] = "text/x-moc";
// QSettings keys for use by the "New Class" wizards. // QSettings keys for use by the "New Class" wizards.
const char CPPTOOLS_SETTINGSGROUP[] = "CppTools"; const char CPPTOOLS_SETTINGSGROUP[] = "CppTools";