manatee-editor-0.0.1: Manatee/Extension/Editor/PageMode.hs
-- Author: Andy Stewart <lazycat.manatee@gmail.com>
-- Maintainer: Andy Stewart <lazycat.manatee@gmail.com>
--
-- Copyright (C) 2010 Andy Stewart, all rights reserved.
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
module Manatee.Extension.Editor.PageMode where
import Manatee.Core.Types
import qualified Data.Map as M
-- | C mode.
cMode :: PageMode
cMode =
PageMode {pageModeName = "C"
,pageModeRegexp = "^*\\.(c|h)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Haskell mode.
haskellMode :: PageMode
haskellMode =
PageMode {pageModeName = "Haskell"
,pageModeRegexp = "^*\\.([hg]s|hs-boot|chs)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Elisp
elispMode :: PageMode
elispMode =
PageMode {pageModeName = "Elisp"
,pageModeRegexp = "^*\\.el$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Pascal
pascalMode :: PageMode
pascalMode =
PageMode {pageModeName = "Pascal"
,pageModeRegexp = "^*\\.(p|pas)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Fortran
fortranMode :: PageMode
fortranMode =
PageMode {pageModeName = "Fortran"
,pageModeRegexp = "^*\\.(f|F|for)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Lisp
lispMode :: PageMode
lispMode =
PageMode {pageModeName = "Lisp"
,pageModeRegexp = "^*\\.(l|lsp|lisp|ml|asd)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Ada
adaMode :: PageMode
adaMode =
PageMode {pageModeName = "Ada"
,pageModeRegexp = "^*\\.ad([abs]|[bs]?dg)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Sql
sqlMode :: PageMode
sqlMode =
PageMode {pageModeName = "Sql"
,pageModeRegexp = "^*\\.sql$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Prolog
prologMode :: PageMode
prologMode =
PageMode {pageModeName = "Prolog"
,pageModeRegexp = "^*\\.prolog$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Asm
asmMode :: PageMode
asmMode =
PageMode {pageModeName = "Asm"
,pageModeRegexp = "^*\\.(asm|[sS]?)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Tcl
tclMode :: PageMode
tclMode =
PageMode {pageModeName = "Tcl"
,pageModeRegexp = "^*\\.(i?tcl|exp|itk)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | F90
f90Mode :: PageMode
f90Mode =
PageMode {pageModeName = "F90"
,pageModeRegexp = "^*\\.f90[05]?$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Textinfo
textinfoMode :: PageMode
textinfoMode =
PageMode {pageModeName = "Textinfo"
,pageModeRegexp = "^*\\.(texinfo|te?xi)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Latex
latexMode :: PageMode
latexMode =
PageMode {pageModeName = "Latex"
,pageModeRegexp = "^*\\.(ltx|sty|cl[so]|bbl)$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Text
textMode :: PageMode
textMode =
PageMode {pageModeName = "Text"
,pageModeRegexp = "^*\\.txt$"
,pageModeKeymap = M.empty
,pageModeLoad = \_ -> return ()}
-- | Mode list.
sourceModeList :: [PageMode]
sourceModeList =
[cMode
,haskellMode
,elispMode
,pascalMode
,fortranMode
,lispMode
,adaMode
,sqlMode
,prologMode
,asmMode
,tclMode
,f90Mode
,textinfoMode
,latexMode
,textMode]