From 3984108c0cd51d114c1becea09dc3fe576df2ad1 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 9 Oct 2023 09:50:43 +0200 Subject: [PATCH] CMakeFileCompletionAssist: Limit the size of PerformInputData The size should drop down to 184 (from 264) bytes. Amends 07e758147b90a9e35944fd14acbc27ca1336594b Change-Id: Ia07b153f3f75b9e7b6199d857d58bffbb7b3e7d4 Reviewed-by: hjk --- .../cmakefilecompletionassist.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp b/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp index 0eb312736b5..1ca5e5f23f7 100644 --- a/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp +++ b/src/plugins/cmakeprojectmanager/cmakefilecompletionassist.cpp @@ -254,7 +254,8 @@ class PerformInputData { public: CMakeKeywords keywords; - CMakeKeywords projectKeywords; + QMap projectVariables; + QMap projectFunctions; QStringList buildTargets; QStringList importedTargets; QStringList findPackageVariables; @@ -274,7 +275,9 @@ PerformInputData CMakeFileCompletionAssist::generatePerformInputData() const for (const auto &target : std::as_const(bs->buildTargets())) if (target.targetType != TargetType::UtilityType) data.buildTargets << target.title; - data.projectKeywords = bs->projectKeywords(); + const CMakeKeywords &projectKeywords = bs->projectKeywords(); + data.projectVariables = projectKeywords.variables; + data.projectFunctions = projectKeywords.functions; data.importedTargets = bs->projectImportedTargets(); data.findPackageVariables = bs->projectFindPackageVariables(); } @@ -326,7 +329,7 @@ IAssistProposal *CMakeFileCompletionAssist::doPerform(const PerformInputData &da if (varGenexToken == "${" || varGenexToken == "$<") { if (varGenexToken == "${") { items.append(generateList(data.keywords.variables, m_variableIcon)); - items.append(generateList(data.projectKeywords.variables, m_projectVariableIcon)); + items.append(generateList(data.projectVariables, m_projectVariableIcon)); items.append(generateList(data.findPackageVariables, m_projectVariableIcon)); } if (varGenexToken == "$<") @@ -342,7 +345,7 @@ IAssistProposal *CMakeFileCompletionAssist::doPerform(const PerformInputData &da || functionName == "set" || functionName == "list" || functionName == "cmake_print_variables") { items.append(generateList(data.keywords.variables, m_variableIcon)); - items.append(generateList(data.projectKeywords.variables, m_projectVariableIcon)); + items.append(generateList(data.projectVariables, m_projectVariableIcon)); items.append(generateList(data.findPackageVariables, m_projectVariableIcon)); items.append(generateList(localVariables, m_variableIcon)); } @@ -390,7 +393,7 @@ IAssistProposal *CMakeFileCompletionAssist::doPerform(const PerformInputData &da } else if (functionName.isEmpty()) { // On a new line we just want functions items.append(generateList(data.keywords.functions, m_functionIcon)); - items.append(generateList(data.projectKeywords.functions, m_projectFunctionIcon)); + items.append(generateList(data.projectFunctions, m_projectFunctionIcon)); items.append(generateList(localFunctions, m_functionIcon)); // Snippets would make more sense only for the top level suggestions @@ -400,7 +403,7 @@ IAssistProposal *CMakeFileCompletionAssist::doPerform(const PerformInputData &da fileStartPos = addFilePathItems(interface(), items, startPos); if (!onlyFileItems()) { items.append(generateList(data.keywords.variables, m_variableIcon)); - items.append(generateList(data.projectKeywords.variables, m_projectVariableIcon)); + items.append(generateList(data.projectVariables, m_projectVariableIcon)); items.append(generateList(localVariables, m_variableIcon)); items.append(generateList(data.findPackageVariables, m_projectVariableIcon));