-- Author: Andy Stewart -- Maintainer: Andy Stewart -- -- 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 . 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]