Fix leaf_data completion
Completion for enums and identities was setting m_completionIterator
even though it supplied no new completions.
Issue: https://tree.taiga.io/project/jktjkt-netconf-cli/issue/150
Change-Id: I0f8252bc011b0a6418c1a616521027c784080b9b
diff --git a/src/ast_handlers.hpp b/src/ast_handlers.hpp
index d99e020..e59fc36 100644
--- a/src/ast_handlers.hpp
+++ b/src/ast_handlers.hpp
@@ -650,12 +650,12 @@
auto& parserContext = x3::get<parser_context_tag>(context);
const Schema& schema = parserContext.m_schema;
- parserContext.m_completionIterator = begin;
-
// Only generate completions if the type is enum so that we don't
// overwrite some other completions.
- if (schema.leafType(parserContext.m_tmpListKeyLeafPath.m_location, parserContext.m_tmpListKeyLeafPath.m_node) == yang::LeafDataTypes::Enum)
+ if (schema.leafType(parserContext.m_tmpListKeyLeafPath.m_location, parserContext.m_tmpListKeyLeafPath.m_node) == yang::LeafDataTypes::Enum) {
+ parserContext.m_completionIterator = begin;
parserContext.m_suggestions = schema.enumValues(parserContext.m_tmpListKeyLeafPath.m_location, parserContext.m_tmpListKeyLeafPath.m_node);
+ }
}
};
@@ -667,11 +667,11 @@
auto& parserContext = x3::get<parser_context_tag>(context);
const Schema& schema = parserContext.m_schema;
- parserContext.m_completionIterator = begin;
-
// Only generate completions if the type is identityref so that we
// don't overwrite some other completions.
- if (schema.leafType(parserContext.m_tmpListKeyLeafPath.m_location, parserContext.m_tmpListKeyLeafPath.m_node) == yang::LeafDataTypes::IdentityRef)
+ if (schema.leafType(parserContext.m_tmpListKeyLeafPath.m_location, parserContext.m_tmpListKeyLeafPath.m_node) == yang::LeafDataTypes::IdentityRef) {
+ parserContext.m_completionIterator = begin;
parserContext.m_suggestions = schema.validIdentities(parserContext.m_tmpListKeyLeafPath.m_location, parserContext.m_tmpListKeyLeafPath.m_node, Prefixes::WhenNeeded);
+ }
}
};