CppTools: Provide hints about chosen project part for editor document

Parse issues can have multiple reasons (invalid kit, not a project file,
actual parse issue) and we should be able to tell them apart. With this
change, we can distinguish between the fallback project part and a
ambiguous project part.

Follow up changes will use this to display more accurate diagnostics.

Change-Id: Icc8767607cc17dc14d6227b07f34e81ba5525a96
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2017-01-17 15:27:31 +01:00
parent 19eaf87ef9
commit 0b8df41387
19 changed files with 235 additions and 116 deletions

View File

@@ -77,19 +77,20 @@ void BuiltinEditorDocumentParser::updateImpl(const QFutureInterface<void> &futur
QString projectConfigFile;
LanguageFeatures features = LanguageFeatures::defaultFeatures();
baseState.projectPart = determineProjectPart(filePath(),
baseConfig,
baseState,
updateParams.activeProject,
updateParams.languagePreference,
updateParams.hasActiveProjectChanged);
baseState.projectPartInfo = determineProjectPart(filePath(),
baseConfig,
baseState,
updateParams.activeProject,
updateParams.languagePreference,
updateParams.hasActiveProjectChanged);
emit projectPartInfoUpdated(baseState.projectPartInfo);
if (state.forceSnapshotInvalidation) {
invalidateSnapshot = true;
state.forceSnapshotInvalidation = false;
}
if (const ProjectPart::Ptr part = baseState.projectPart) {
if (const ProjectPart::Ptr part = baseState.projectPartInfo.projectPart) {
configFile += part->toolchainDefines;
configFile += overwrittenToolchainDefines(*part.data());
configFile += part->projectDefines;