export default function completeSnippets()

in src/completion/completeSnippets.ts [63:97]


export default function completeSnippets(node: ASTNode | undefined, offset: number, options?: CompleteSnippetsOptions): CompletionItem[] {
    if (node) {
        const errorSnippetOptionsNotDefined = options?.shouldShowErrorSnippets === undefined
        // If the value of shouldShowStateSnippets is false prevent the snippets from being displayed
        const showStateSnippets = options?.shouldShowStateSnippets || (options?.shouldShowStateSnippets === undefined && isChildOfStates(node))

        if (showStateSnippets) {
            return stateSnippets
        }

        if (errorSnippetOptionsNotDefined) {
            if (insideStateNode(node) && doesStateSupportErrorHandling(node)) {
                return errorHandlingSnippets
            }

            return []
        }

        const errorSnippetsToShow: string[] = []

        if (options?.shouldShowErrorSnippets?.catch) {
            errorSnippetsToShow.push('Catch')
        }

        if (options?.shouldShowErrorSnippets?.retry) {
            errorSnippetsToShow.push('Retry')
        }

        if (errorSnippetsToShow.length) {
            return errorHandlingSnippets.filter(snippet => errorSnippetsToShow.includes(snippet.label))
        }
    }

    return []
}