CMakePM: Add policy support for help and code completion

Change-Id: I82d291639fe890602bba61eded9d1dfd7d38ca41
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Cristian Adam
2023-09-20 22:39:50 +02:00
parent a998269d7e
commit a51380c2fd
4 changed files with 13 additions and 0 deletions

View File

@@ -78,6 +78,8 @@ void CMakeEditor::contextHelp(const HelpCallback &callback) const
return "prop_test/";
if (m_keywords.properties.contains(word))
return "prop_gbl/";
if (m_keywords.policies.contains(word))
return "policy/";
return "unknown/";
};

View File

@@ -264,6 +264,9 @@ IAssistProposal *CMakeFileCompletionAssist::performAsync()
items.append(generateList(projectKeywords.variables, m_projectVariableIcon));
}
if (functionName == "if" || functionName == "elseif" || functionName == "cmake_policy")
items.append(generateList(keywords.policies, m_variableIcon));
if (functionName.contains("path") || functionName.contains("file")
|| functionName.contains("add_executable") || functionName.contains("add_library")
|| functionName == "include" || functionName == "add_subdirectory"

View File

@@ -100,6 +100,7 @@ public:
QStringList m_testProperties;
QStringList m_includeStandardModules;
QStringList m_findModules;
QStringList m_policies;
CMakeTool::Version m_version;
};
@@ -276,6 +277,11 @@ CMakeKeywords CMakeTool::keywords()
Utils::sort(m_introspection->m_variables);
}
runCMake(proc, {"--help-policy-list"}, 5);
if (proc.result() == ProcessResult::FinishedWithSuccess)
m_introspection->m_policies = Utils::filtered(proc.cleanedStdOut().split('\n'),
std::not_fn(&QString::isEmpty));
parseSyntaxHighlightingXml();
}
@@ -291,6 +297,7 @@ CMakeKeywords CMakeTool::keywords()
keywords.testProperties = Utils::toSet(m_introspection->m_testProperties);
keywords.includeStandardModules = Utils::toSet(m_introspection->m_includeStandardModules);
keywords.findModules = Utils::toSet(m_introspection->m_findModules);
keywords.policies = Utils::toSet(m_introspection->m_policies);
return keywords;
}

View File

@@ -31,6 +31,7 @@ struct CMAKE_EXPORT CMakeKeywords
QSet<QString> testProperties;
QSet<QString> includeStandardModules;
QSet<QString> findModules;
QSet<QString> policies;
QMap<QString, QStringList> functionArgs;
};