Skip to content

Commit 27d86d4

Browse files
committed
Add the --force-cpp-metrics flag to enforce the recomputation of all C++ metrics.
1 parent c22df43 commit 27d86d4

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

plugins/cpp_metrics/parser/src/cppmetricsparser.cpp

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,25 @@ CppMetricsParser::CppMetricsParser(ParserContext& ctx_): AbstractParser(ctx_)
3232
_inputPaths.push_back(fs::canonical(path).string());
3333

3434
util::OdbTransaction {_ctx.db} ([&, this] {
35-
for (const model::CppFileMetrics& fm
36-
: _ctx.db->query<model::CppFileMetrics>())
35+
if (_ctx.options.count("force-cpp-metrics"))
3736
{
38-
_fileIdCache.insert(fm.file);
37+
LOG(info) << "[cxxmetricsparser] Clearing all C++ metrics.";
38+
_ctx.db->erase_query<model::CppFileMetrics>();
39+
_ctx.db->erase_query<model::CppAstNodeMetrics>();
3940
}
40-
41-
for (const model::CppAstNodeMetricsFileView& anm
42-
: _ctx.db->query<model::CppAstNodeMetricsFileView>())
41+
else
4342
{
44-
_astNodeIdCache.emplace(anm.astNodeId, anm.fileId);
43+
for (const model::CppFileMetrics& fm
44+
: _ctx.db->query<model::CppFileMetrics>())
45+
{
46+
_fileIdCache.insert(fm.file);
47+
}
48+
49+
for (const model::CppAstNodeMetricsFileView& anm
50+
: _ctx.db->query<model::CppAstNodeMetricsFileView>())
51+
{
52+
_astNodeIdCache.emplace(anm.astNodeId, anm.fileId);
53+
}
4554
}
4655
});
4756
}
@@ -401,6 +410,9 @@ extern "C"
401410
{
402411
boost::program_options::options_description description("C++ Metrics Plugin");
403412

413+
description.add_options()
414+
("force-cpp-metrics", "Forced recalculation of all C++ code metrics.");
415+
404416
return description;
405417
}
406418

0 commit comments

Comments
 (0)