module Manatee.Extension.Editor.PageMode where
import Manatee.Core.Types
import qualified Data.Map as M
cMode :: PageMode
cMode =
PageMode {pageModeName = "C"
,pageModeRegexp = "^*\\.(c|h)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
haskellMode :: PageMode
haskellMode =
PageMode {pageModeName = "Haskell"
,pageModeRegexp = "^*\\.([hg]s|hs-boot|chs)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
elispMode :: PageMode
elispMode =
PageMode {pageModeName = "Elisp"
,pageModeRegexp = "^*\\.el$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
pascalMode :: PageMode
pascalMode =
PageMode {pageModeName = "Pascal"
,pageModeRegexp = "^*\\.(p|pas)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
fortranMode :: PageMode
fortranMode =
PageMode {pageModeName = "Fortran"
,pageModeRegexp = "^*\\.(f|F|for)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
lispMode :: PageMode
lispMode =
PageMode {pageModeName = "Lisp"
,pageModeRegexp = "^*\\.(l|lsp|lisp|ml|asd)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
adaMode :: PageMode
adaMode =
PageMode {pageModeName = "Ada"
,pageModeRegexp = "^*\\.ad([abs]|[bs]?dg)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
sqlMode :: PageMode
sqlMode =
PageMode {pageModeName = "Sql"
,pageModeRegexp = "^*\\.sql$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
prologMode :: PageMode
prologMode =
PageMode {pageModeName = "Prolog"
,pageModeRegexp = "^*\\.prolog$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
asmMode :: PageMode
asmMode =
PageMode {pageModeName = "Asm"
,pageModeRegexp = "^*\\.(asm|[sS]?)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
tclMode :: PageMode
tclMode =
PageMode {pageModeName = "Tcl"
,pageModeRegexp = "^*\\.(i?tcl|exp|itk)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
f90Mode :: PageMode
f90Mode =
PageMode {pageModeName = "F90"
,pageModeRegexp = "^*\\.f90[05]?$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
textinfoMode :: PageMode
textinfoMode =
PageMode {pageModeName = "Textinfo"
,pageModeRegexp = "^*\\.(texinfo|te?xi)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
latexMode :: PageMode
latexMode =
PageMode {pageModeName = "Latex"
,pageModeRegexp = "^*\\.(ltx|sty|cl[so]|bbl)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
textMode :: PageMode
textMode =
PageMode {pageModeName = "Text"
,pageModeRegexp = "^*\\.txt$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
sourceModeList :: [PageMode]
sourceModeList =
[cMode
,haskellMode
,elispMode
,pascalMode
,fortranMode
,lispMode
,adaMode
,sqlMode
,prologMode
,asmMode
,tclMode
,f90Mode
,textinfoMode
,latexMode
,textMode]