forked from qt-creator/qt-creator
CppEditor: Introduce per-project code model settings
Change-Id: I325cc39e60d4b1f0fba1651502d772bfb9c6a91c Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -419,7 +419,7 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir, c
|
||||
*CppEditor::CppModelManager::fallbackProjectPart(),
|
||||
warningsConfigForProject(nullptr), includeDir, {});
|
||||
const CppEditor::UsePrecompiledHeaders usePch
|
||||
= CppEditor::CppCodeModelSettings::instance().usePrecompiledHeaders();
|
||||
= CppEditor::CppCodeModelSettings::usePrecompiledHeaders(nullptr);
|
||||
const QJsonArray projectPartOptions = fullProjectPartOptions(
|
||||
optionsBuilder, globalClangOptions());
|
||||
const QJsonArray clangOptions = clangOptionsForFile({}, optionsBuilder.projectPart(),
|
||||
@@ -600,7 +600,7 @@ void ClangdClient::findUsages(const CppEditor::CursorInEditor &cursor,
|
||||
}
|
||||
}
|
||||
|
||||
const bool categorize = CppEditor::CppCodeModelSettings::instance().categorizeFindReferences();
|
||||
const bool categorize = CppEditor::CppCodeModelSettings::categorizeFindReferences();
|
||||
|
||||
// If it's a "normal" symbol, go right ahead.
|
||||
if (searchTerm != "operator" && Utils::allOf(searchTerm, [](const QChar &c) {
|
||||
@@ -920,9 +920,11 @@ void ClangdClient::updateParserConfig(const Utils::FilePath &filePath,
|
||||
CppEditor::ProjectFile::classify(filePath.toString()));
|
||||
const QJsonArray projectPartOptions = fullProjectPartOptions(
|
||||
optionsBuilder, globalClangOptions());
|
||||
const auto cppSettings = CppEditor::CppCodeModelSettings::settingsForProject(
|
||||
projectPart->topLevelProject);
|
||||
addToCompilationDb(cdbChanges,
|
||||
*projectPart,
|
||||
CppEditor::CppCodeModelSettings::instance().usePrecompiledHeaders(),
|
||||
cppSettings.usePrecompiledHeaders(),
|
||||
projectPartOptions,
|
||||
filePath.parentDir(),
|
||||
file,
|
||||
|
||||
@@ -166,7 +166,6 @@ GenerateCompilationDbResult generateCompilationDB(QList<ProjectInfo::ConstPtr> p
|
||||
}
|
||||
compileCommandsFile.write("[");
|
||||
|
||||
const UsePrecompiledHeaders usePch = CppCodeModelSettings::instance().usePrecompiledHeaders();
|
||||
const QJsonArray jsonProjectOptions = QJsonArray::fromStringList(projectOptions);
|
||||
for (const ProjectInfo::ConstPtr &projectInfo : std::as_const(projectInfoList)) {
|
||||
QTC_ASSERT(projectInfo, continue);
|
||||
@@ -183,9 +182,15 @@ GenerateCompilationDbResult generateCompilationDB(QList<ProjectInfo::ConstPtr> p
|
||||
jsonProjectOptions);
|
||||
}
|
||||
for (const ProjectFile &projFile : projectPart->files) {
|
||||
const QJsonObject json = createFileObject(baseDir, args, *projectPart, projFile,
|
||||
purpose, ppOptions, usePch,
|
||||
optionsBuilder.isClStyle());
|
||||
const QJsonObject json
|
||||
= createFileObject(baseDir,
|
||||
args,
|
||||
*projectPart,
|
||||
projFile,
|
||||
purpose,
|
||||
ppOptions,
|
||||
projectInfo->settings().usePrecompiledHeaders(),
|
||||
optionsBuilder.isClStyle());
|
||||
if (compileCommandsFile.size() > 1)
|
||||
compileCommandsFile.write(",");
|
||||
compileCommandsFile.write(QJsonDocument(json).toJson(QJsonDocument::Compact));
|
||||
|
||||
@@ -249,7 +249,7 @@ private:
|
||||
void ClangdTestFindReferences::initTestCase()
|
||||
{
|
||||
ClangdTest::initTestCase();
|
||||
CppEditor::CppCodeModelSettings::instance().setCategorizeFindReferences(true);
|
||||
CppEditor::CppCodeModelSettings::setCategorizeFindReferences(true);
|
||||
connect(client(), &ClangdClient::foundReferences, this,
|
||||
[this](const SearchResultItems &results) {
|
||||
if (results.isEmpty())
|
||||
|
||||
Reference in New Issue
Block a user