    {-# OPTIONS_HADDOCK show-extensions #-}

    -- |
    -- Module      :  Yi.Keymap.Vim.Ex
    -- License     :  GPL-2
    -- Maintainer  :  yi-devel@googlegroups.com
    -- Stability   :  experimental
    -- Portability :  portable

    module Yi.Keymap.Vim.Ex
        ( exEvalE
        , exEvalY
        , evStringToExCommand
        , ExCommand(..)
        , defExCommandParsers
        ) where

    import           Yi.Keymap.Vim.Common                   (EventString)
    import qualified Yi.Keymap.Vim.Ex.Commands.Buffer       as Buffer (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.BufferDelete as BufferDelete (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.BufferNew    as BufferNew (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Buffers      as Buffers (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Cabal        as Cabal (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Delete       as Delete (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Edit         as Edit (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Global       as Global (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.GotoLine     as GotoLine (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Help         as Help (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Make         as Make (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Nohl         as Nohl (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Number       as Number (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Paste        as Paste (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Quit         as Quit (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Read         as Read (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Shell        as Shell (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Sort         as Sort (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Substitute   as Substitute (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Tag          as Tag (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Undo         as Undo (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Write        as Write (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Yi           as Yi (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Copy         as Copy (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Stack        as Stack (parse)
    import qualified Yi.Keymap.Vim.Ex.Commands.Registers    as Registers (parse)
    import           Yi.Keymap.Vim.Ex.Eval                  (exEvalE, exEvalY)
    import           Yi.Keymap.Vim.Ex.Types                 (ExCommand (..), evStringToExCommand)

    defExCommandParsers :: [EventString -> Maybe ExCommand]
    defExCommandParsers :: [EventString -> Maybe ExCommand]
    defExCommandParsers =
        [ EventString -> Maybe ExCommand
    Buffer.parse
        , EventString -> Maybe ExCommand
    Buffers.parse
        , EventString -> Maybe ExCommand
    BufferDelete.parse
        , EventString -> Maybe ExCommand
    BufferNew.parse
        , EventString -> Maybe ExCommand
    Cabal.parse
        , EventString -> Maybe ExCommand
    Delete.parse
        , EventString -> Maybe ExCommand
    Edit.parse
        , EventString -> Maybe ExCommand
    Global.parse
        , EventString -> Maybe ExCommand
    GotoLine.parse
        , EventString -> Maybe ExCommand
    Help.parse
        , EventString -> Maybe ExCommand
    Make.parse
        , EventString -> Maybe ExCommand
    Nohl.parse
        , EventString -> Maybe ExCommand
    Number.parse
        , EventString -> Maybe ExCommand
    Paste.parse
        , EventString -> Maybe ExCommand
    Quit.parse
        , EventString -> Maybe ExCommand
    Read.parse
        , EventString -> Maybe ExCommand
    Sort.parse
        , EventString -> Maybe ExCommand
    Substitute.parse
        , EventString -> Maybe ExCommand
    Shell.parse
        , EventString -> Maybe ExCommand
    Tag.parse
        , EventString -> Maybe ExCommand
    Undo.parse
        , EventString -> Maybe ExCommand
    Write.parse
        , EventString -> Maybe ExCommand
    Yi.parse
        , EventString -> Maybe ExCommand
    Copy.parse
        , EventString -> Maybe ExCommand
    Stack.parse
        , EventString -> Maybe ExCommand
    Registers.parse
        ]