packages feed

roguestar-gl-0.2.2: src/Keymaps/BuiltinKeymaps.hs

module Keymaps.BuiltinKeymaps
    (findKeymapOrDefault,
     builtin_keymap_names,
     builtin_keymaps)
    where

import Data.Char
import Data.List

import Keymaps.Keymaps
import Keymaps.NumpadKeymap
import Keymaps.VIKeymap

findKeymapOrDefault :: Maybe KeymapName -> Keymap
findKeymapOrDefault m_keymap_name = fixKeymap $ maybe vi_numpad_keymap id (m_keymap_name >>= (flip lookup builtin_keymaps . (map toLower)))

builtin_keymap_names :: [KeymapName]
builtin_keymap_names = map fst builtin_keymaps

builtin_keymaps :: [(KeymapName, Keymap)]
builtin_keymaps = [
 ("vi", vi_keymap),
 ("numpad", numpad_keymap),
 ("vi+numpad", vi_numpad_keymap)]

vi_numpad_keymap :: Keymap
vi_numpad_keymap = union vi_keymap numpad_keymap