From f038cad64cb04657e5e1d1360f870a3b7b4ff012 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Sun, 8 Feb 2026 22:04:46 +0100 Subject: [PATCH 01/11] make completions const --- .../keyvi/dictionary/completion/forward_backward_completion.h | 2 +- keyvi/include/keyvi/dictionary/completion/prefix_completion.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h index 4346eaa7e..c21161dd5 100644 --- a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h @@ -56,7 +56,7 @@ class ForwardBackwardCompletion final { bool operator()(const match_t& m1, const match_t& m2) const { return m1->GetScore() < m2->GetScore(); } }; - MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, int number_of_results = 10) { + MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, int number_of_results = 10) const { // get query length const size_t query_length = query.size(); diff --git a/keyvi/include/keyvi/dictionary/completion/prefix_completion.h b/keyvi/include/keyvi/dictionary/completion/prefix_completion.h index 41ad8e4a8..51c0e36ba 100644 --- a/keyvi/include/keyvi/dictionary/completion/prefix_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/prefix_completion.h @@ -54,7 +54,7 @@ class PrefixCompletion final { public: explicit PrefixCompletion(dictionary_t d) : fsa_(d->GetFsa()) {} - MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, size_t number_of_results = 10) { + MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, size_t number_of_results = 10) const { uint64_t state = fsa_->GetStartState(); const size_t query_length = query.size(); size_t depth = 0; From 49de124e9a73894acd6ecb577f9fc2ba5931dd95 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 20:32:57 +0100 Subject: [PATCH 02/11] disable cppcoreguidelines-avoid-magic-numbers --- keyvi/.clang-tidy | 1 + 1 file changed, 1 insertion(+) diff --git a/keyvi/.clang-tidy b/keyvi/.clang-tidy index 68688bdf2..fa68957c9 100644 --- a/keyvi/.clang-tidy +++ b/keyvi/.clang-tidy @@ -13,6 +13,7 @@ Checks: "*, -readability-avoid-const-params-in-decls, -cppcoreguidelines-non-private-member-variables-in-classes, -misc-non-private-member-variables-in-classes, + -cppcoreguidelines-avoid-magic-numbers, " HeaderFilterRegex: '' FormatStyle: none From 8c80d5f85b8c8fa3858feff1354165f508dd2ca2 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 20:35:28 +0100 Subject: [PATCH 03/11] Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../keyvi/dictionary/completion/forward_backward_completion.h | 2 +- keyvi/include/keyvi/dictionary/completion/prefix_completion.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h index c21161dd5..fd2748b51 100644 --- a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h @@ -56,7 +56,7 @@ class ForwardBackwardCompletion final { bool operator()(const match_t& m1, const match_t& m2) const { return m1->GetScore() < m2->GetScore(); } }; - MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, int number_of_results = 10) const { + [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, int number_of_results = 10) const { // get query length const size_t query_length = query.size(); diff --git a/keyvi/include/keyvi/dictionary/completion/prefix_completion.h b/keyvi/include/keyvi/dictionary/completion/prefix_completion.h index 51c0e36ba..34be5b5eb 100644 --- a/keyvi/include/keyvi/dictionary/completion/prefix_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/prefix_completion.h @@ -54,7 +54,7 @@ class PrefixCompletion final { public: explicit PrefixCompletion(dictionary_t d) : fsa_(d->GetFsa()) {} - MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, size_t number_of_results = 10) const { + [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, size_t number_of_results = 10) const { uint64_t state = fsa_->GetStartState(); const size_t query_length = query.size(); size_t depth = 0; From c67b7e86df89bf76eb7adf8239c5745ba43d6981 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 20:38:10 +0100 Subject: [PATCH 04/11] fix clang-tidy includes --- .../keyvi/dictionary/completion/forward_backward_completion.h | 1 + keyvi/include/keyvi/dictionary/completion/prefix_completion.h | 1 + 2 files changed, 2 insertions(+) diff --git a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h index fd2748b51..17b043ff8 100644 --- a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h @@ -35,6 +35,7 @@ #include #include "keyvi/dictionary/completion/prefix_completion.h" +#include "keyvi/dictionary/match_iterator.h" #include "keyvi/dictionary/util/bounded_priority_queue.h" // #define ENABLE_TRACING diff --git a/keyvi/include/keyvi/dictionary/completion/prefix_completion.h b/keyvi/include/keyvi/dictionary/completion/prefix_completion.h index 34be5b5eb..3db1c3631 100644 --- a/keyvi/include/keyvi/dictionary/completion/prefix_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/prefix_completion.h @@ -26,6 +26,7 @@ #define KEYVI_DICTIONARY_COMPLETION_PREFIX_COMPLETION_H_ #include +#include #include #include #include From 37f3f3864762145da1c7e236f5a68f71b8435cf9 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 20:41:22 +0100 Subject: [PATCH 05/11] pre-commit --- .../keyvi/dictionary/completion/forward_backward_completion.h | 3 ++- keyvi/include/keyvi/dictionary/completion/prefix_completion.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h index 17b043ff8..63bb6a531 100644 --- a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h @@ -57,7 +57,8 @@ class ForwardBackwardCompletion final { bool operator()(const match_t& m1, const match_t& m2) const { return m1->GetScore() < m2->GetScore(); } }; - [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, int number_of_results = 10) const { + [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, + int number_of_results = 10) const { // get query length const size_t query_length = query.size(); diff --git a/keyvi/include/keyvi/dictionary/completion/prefix_completion.h b/keyvi/include/keyvi/dictionary/completion/prefix_completion.h index 3db1c3631..7547a1f53 100644 --- a/keyvi/include/keyvi/dictionary/completion/prefix_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/prefix_completion.h @@ -55,7 +55,8 @@ class PrefixCompletion final { public: explicit PrefixCompletion(dictionary_t d) : fsa_(d->GetFsa()) {} - [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, size_t number_of_results = 10) const { + [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, + size_t number_of_results = 10) const { uint64_t state = fsa_->GetStartState(); const size_t query_length = query.size(); size_t depth = 0; From 00627cba22f5d2fe46ad076fe258171e7b3bf085 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 20:43:19 +0100 Subject: [PATCH 06/11] disable readability-magic-numbers check --- keyvi/.clang-tidy | 1 + 1 file changed, 1 insertion(+) diff --git a/keyvi/.clang-tidy b/keyvi/.clang-tidy index fa68957c9..e0d9eb349 100644 --- a/keyvi/.clang-tidy +++ b/keyvi/.clang-tidy @@ -14,6 +14,7 @@ Checks: "*, -cppcoreguidelines-non-private-member-variables-in-classes, -misc-non-private-member-variables-in-classes, -cppcoreguidelines-avoid-magic-numbers, + -readability-magic-numbers, " HeaderFilterRegex: '' FormatStyle: none From 2836bbefb4009f42d6f20945da0fff5bea4f3a77 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 21:22:27 +0100 Subject: [PATCH 07/11] try to fix clang-tidy errors --- keyvi/.clang-tidy | 2 +- .../keyvi/dictionary/completion/forward_backward_completion.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/keyvi/.clang-tidy b/keyvi/.clang-tidy index e0d9eb349..3899a0c66 100644 --- a/keyvi/.clang-tidy +++ b/keyvi/.clang-tidy @@ -11,10 +11,10 @@ Checks: "*, -readability-else-after-return, -readability-static-accessed-through-instance, -readability-avoid-const-params-in-decls, + -readability-magic-numbers, -cppcoreguidelines-non-private-member-variables-in-classes, -misc-non-private-member-variables-in-classes, -cppcoreguidelines-avoid-magic-numbers, - -readability-magic-numbers, " HeaderFilterRegex: '' FormatStyle: none diff --git a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h index 63bb6a531..7537ce85d 100644 --- a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h @@ -59,6 +59,7 @@ class ForwardBackwardCompletion final { [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, int number_of_results = 10) const { + // NOLINTBEGIN(readability-function-cognitive-complexity) // get query length const size_t query_length = query.size(); @@ -254,7 +255,7 @@ class ForwardBackwardCompletion final { return match_t(); }; - + // NOLINTEND return MatchIterator::MakeIteratorPair(tfunc); } From d2869bb23613781f8359e476a4ff8051ea593fca Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 21:35:25 +0100 Subject: [PATCH 08/11] place NOLINT differently --- .../dictionary/completion/forward_backward_completion.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h index 7537ce85d..6409540a0 100644 --- a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h @@ -45,6 +45,8 @@ namespace keyvi { namespace dictionary { namespace completion { +// NOLINTBEGIN(readability-function-cognitive-complexity) + /** * Port of forward->backward suggester code from python to C++ */ @@ -59,7 +61,6 @@ class ForwardBackwardCompletion final { [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, int number_of_results = 10) const { - // NOLINTBEGIN(readability-function-cognitive-complexity) // get query length const size_t query_length = query.size(); @@ -255,7 +256,6 @@ class ForwardBackwardCompletion final { return match_t(); }; - // NOLINTEND return MatchIterator::MakeIteratorPair(tfunc); } @@ -263,6 +263,7 @@ class ForwardBackwardCompletion final { PrefixCompletion forward_completions_; PrefixCompletion backward_completions_; }; +// NOLINTEND } /* namespace completion */ } /* namespace dictionary */ From 244e5eb31591b405c99d69e7cf8f13741bfb7a5f Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 21:38:01 +0100 Subject: [PATCH 09/11] fix NOLINT --- .../keyvi/dictionary/completion/forward_backward_completion.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h index 6409540a0..e6e667f99 100644 --- a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h @@ -263,7 +263,7 @@ class ForwardBackwardCompletion final { PrefixCompletion forward_completions_; PrefixCompletion backward_completions_; }; -// NOLINTEND +// NOLINTEND(readability-function-cognitive-complexity) } /* namespace completion */ } /* namespace dictionary */ From 44fe3514e1f95ec9f15b20218e722daf9693695b Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 21:52:24 +0100 Subject: [PATCH 10/11] disable readability/nolint in cpplint --- keyvi/CPPLINT.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyvi/CPPLINT.cfg b/keyvi/CPPLINT.cfg index c43c73632..54824361a 100644 --- a/keyvi/CPPLINT.cfg +++ b/keyvi/CPPLINT.cfg @@ -1,3 +1,3 @@ linelength=120 root=include -filter=-build/include_subdir,-whitespace/indent_namespace,-build/c++17 +filter=-build/include_subdir,-whitespace/indent_namespace,-build/c++17,-readability/nolint From aa09961ce1f87617bbbdd0018dd0c7db4cab51a0 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 13 Feb 2026 21:54:12 +0100 Subject: [PATCH 11/11] move NOLINT --- .../dictionary/completion/forward_backward_completion.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h index e6e667f99..9c1dcfb57 100644 --- a/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h +++ b/keyvi/include/keyvi/dictionary/completion/forward_backward_completion.h @@ -45,8 +45,6 @@ namespace keyvi { namespace dictionary { namespace completion { -// NOLINTBEGIN(readability-function-cognitive-complexity) - /** * Port of forward->backward suggester code from python to C++ */ @@ -59,6 +57,7 @@ class ForwardBackwardCompletion final { bool operator()(const match_t& m1, const match_t& m2) const { return m1->GetScore() < m2->GetScore(); } }; + // NOLINTBEGIN(readability-function-cognitive-complexity) [[nodiscard]] MatchIterator::MatchIteratorPair GetCompletions(const std::string& query, int number_of_results = 10) const { // get query length @@ -258,12 +257,12 @@ class ForwardBackwardCompletion final { }; return MatchIterator::MakeIteratorPair(tfunc); } + // NOLINTEND(readability-function-cognitive-complexity) private: PrefixCompletion forward_completions_; PrefixCompletion backward_completions_; }; -// NOLINTEND(readability-function-cognitive-complexity) } /* namespace completion */ } /* namespace dictionary */