Skip to content

Instantly share code, notes, and snippets.

@pogin503
Created April 28, 2012 15:11
Show Gist options
  • Select an option

  • Save pogin503/2519730 to your computer and use it in GitHub Desktop.

Select an option

Save pogin503/2519730 to your computer and use it in GitHub Desktop.
;; @see http://d.hatena.ne.jp/marony0607/20111205/1323103005
;; ここの表を参考にいくつかkey-comboを作った。
(add-hook 'haskell-mode-hook
#'(lambda ()
(key-combo-define-local (kbd "," ) ", ")
;; bind function, Eq
(key-combo-define-local (kbd "=" ) '(" = " " == "))
(key-combo-define-local (kbd "::" ) " :: ")
;; Num, List, Arrow
(key-combo-define-local (kbd "+") '(" + " " ++ " " +++ "))
;; Num, comment
(key-combo-define-local (kbd "-") '(" - " "-- "))
;; comment
(key-combo-define-local (kbd "{-") "{- `!!' -}")
;; これはまだhaskell-mode1が対応していないようなので無理。
;; (key-combo-define-local (kbd "{- RET") "{-\n`!!'\n-}")
(key-combo-define-local (kbd "->") " -> ")
(key-combo-define-local (kbd "<-") " <- ")
(key-combo-define-local (kbd "=>") " => ")
;; Ord
(key-combo-define-local (kbd ">") " > ") ;; Ord(>) or Sequence >
(key-combo-define-local (kbd ">=") " >= ")
(key-combo-define-local (kbd "<") " < ") ;; Ord (<) or Sequence <
(key-combo-define-local (kbd "<=") " <= ")
;; Fractional, Array
(key-combo-define-local (kbd "/") '(" / " " // "))
;; pattern-match, Bool, Arrow
(key-combo-define-local (kbd "|") '(" | " " || " " ||| "))
;; (key-combo-define-local (kbd "&") '(" & " " && "))
;; List
(key-combo-define-local (kbd "!!") " !! ")
;; Eq
(key-combo-define-local (kbd "\=") " \= ")
;; Applicative
(key-combo-define-local (kbd "<*>") " <*> ") ;; Applicative (<*>) or GraphRep <*
(key-combo-define-local (kbd "<*") " <* ")
(key-combo-define-local (kbd "*>") " *> ")
(key-combo-define-local (kbd "<**>") " <**> ")
;; Alternative
(key-combo-define-local (kbd "<|") " <|> ")
;; Functor
(key-combo-define-local (kbd "<$") " <$ ")
(key-combo-define-local (kbd "<$>") " <$> ")
;; Monad
(key-combo-define-local (kbd "=<<") " =<< ")
(key-combo-define-local (kbd ">>") " >> ")
(key-combo-define-local (kbd ">>=") " >>= ")
;; Arrow
(key-combo-define-local (kbd "^>>") " ^>> ")
(key-combo-define-local (kbd ">>^") " >>^ ")
(key-combo-define-local (kbd ">>>") " >>> ")
(key-combo-define-local (kbd "<<<") " <<< ")
(key-combo-define-local (kbd "<<^") " <<^ ")
(key-combo-define-local (kbd "^<<") " ^<< ")
(key-combo-define-local (kbd "<+") " <+> ")
(key-combo-define-local (kbd "**") " ** ")
(key-combo-define-local (kbd "&&&") " &&& ")
;; Monoid
(key-combo-define-local (kbd "<#>") " <#> ")
;; Sequence
(key-combo-define-local (kbd "><") " >< ")
(key-combo-define-local (kbd ":<") " :< ")
(key-combo-define-local (kbd ":>") " :> ")
;; GraphRep
(key-combo-define-local (kbd "|*><*|") " |*><*| ")
))
(provide 'key-combo-for-haskell)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment