expandSnippetE :: EditorM () -> [Snippet] -> EditorM Bool
expandSnippetE escapeAction snippets = do
    trigger <- withCurrentBuffer readPrevWordB
    let match = listToMaybe (filter ((== trigger) . snipTrigger) snippets)
    case match of
        Just snip -> do
            beginEditingSnippetE escapeAction snip
            return True
        _ -> return False
expandSnippetE :: EditorM () -> [Snippet] -> EditorM Bool
expandSnippetE escapeAction snippets = do
    trigger <- withCurrentBuffer readPrevWordB
    let match = listToMaybe (filter ((== trigger) . snipTrigger) snippets)
    case match of
        Just snip -> do
            beginEditingSnippetE escapeAction snip
            return True
        _ -> return False
expandSnippetE escapeAction snippets = do
    trigger <- withCurrentBuffer readPrevWordB
    let match = listToMaybe (filter ((== trigger) . snipTrigger) snippets)
    case match of
        Just snip -> do
            beginEditingSnippetE escapeAction snip
            return True
        _ -> return False