in src/completion/completeStateNames.ts [43:78]
function getListOfItems(node: PropertyASTNode, options?: ASLOptions): string[] {
const keyVal = node.keyNode.value
switch (keyVal) {
case 'StartAt': {
return getStatesFromStartAtNode(node, options)
}
case 'Next':
case 'Default': {
const statesNode = findClosestAncestorStateNode(node)
const stateItemNode = node.parent?.parent
let stateItemName: string | undefined
if (stateItemNode && isPropertyNode(stateItemNode)) {
// The state name under cursor shouldn't be suggested - find the value
stateItemName = stateItemNode.keyNode.value
// If stateItemNode is not a property node go 3 levels up as it is Next within Choice state
} else if (stateItemNode?.parent?.parent?.parent && isPropertyNode(stateItemNode.parent.parent.parent)) {
stateItemName = stateItemNode.parent.parent.parent.keyNode.value
}
if (statesNode) {
return getListOfStateNamesFromStateNode(statesNode, options?.ignoreColonOffset).filter(
(name) => name !== stateItemName,
)
}
return []
}
default: {
return []
}
}
}