pretty-mode.el
author Luke Hoersten <Luke@Hoersten.org>
Fri, 04 Dec 2009 22:38:21 -0600
changeset 13 7dc464c4e2d3
parent 12 272dd4613dd9
permissions -rw-r--r--
Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     1
;;; -*- coding: utf-8 -*-
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     2
;; Minor mode for redisplaying parts of the buffer as pretty symbols
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     3
;; originally modified from Trent Buck's version at http://paste.lisp.org/display/42335,2/raw
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     4
;; Also includes code from `sml-mode'
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     5
;; See also http://www.emacswiki.org/cgi-bin/wiki/PrettyLambda
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     6
;; written by Arthur Danskin <[email protected]>
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     7
;;
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     8
;; to install:
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
     9
;; (require 'pretty-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    10
;; (global-pretty-mode 1)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    11
;; or
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    12
;; (add-hook 'my-pretty-language-hook 'turn-on-pretty-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    13
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    14
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    15
(require 'cl)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    16
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    17
;; modified from `sml-mode'
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    18
(defun pretty-font-lock-compose-symbol (alist)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    19
  "Compose a sequence of ascii chars into a symbol."
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    20
  (let* ((start (match-beginning 0))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    21
         (end (match-end 0))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    22
         (syntax (char-syntax (char-after start))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    23
    (if (or (if (eq syntax ?w)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    24
                (or (eq (char-syntax (char-before start)) ?w)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    25
                    (eq (char-syntax (char-after end)) ?w))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    26
              (memq (char-syntax (char-before start)) '(?. ?\\)))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    27
            (memq (get-text-property start 'face)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    28
                  '(font-lock-doc-face font-lock-string-face
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    29
                                       font-lock-comment-face)))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    30
        (remove-text-properties start end '(composition))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    31
      (compose-region start end (cdr (assoc (match-string 0) alist)))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    32
      ))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    33
  nil)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    34
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    35
(defvar pretty-interaction-mode-alist
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    36
  '((inferior-scheme-mode . scheme-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    37
    (lisp-interaction-mode . emacs-lisp-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    38
    (inferior-lisp-mode . lisp-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    39
    (inferior-ess-mode . ess-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    40
    (inf-haskell-mode . haskell-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    41
    (inferior-erlang-mode . erlang-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    42
    (tuareg-interactive-mode . tuareg-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    43
    (inferior-python-mode . python-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    44
    (inferior-octave-mode . octave-mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    45
    (inferior-ruby-mode . ruby-mode))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    46
  "Alist mapping from inferior process interaction modes to their
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    47
  corresponding script editing modes.")
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    48
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    49
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    50
(defun pretty-font-lock-keywords (alist)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    51
  "Return a `font-lock-keywords' style entry for replacing
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    52
regular expressions with symbols. ALIST has the form ((STRING .
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    53
REPLACE-CHAR) ...)."
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    54
  (when alist
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    55
    `((,(regexp-opt (mapcar 'car alist))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    56
       (0 (pretty-font-lock-compose-symbol
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    57
           ',alist))))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    58
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    59
(defun pretty-keywords (&optional mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    60
  "Return the font-lock keywords for MODE, or the current mode if
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    61
MODE is nil. Return nil if there are no keywords."
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    62
  (let* ((mode (or mode major-mode))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    63
         (kwds (cdr-safe
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    64
                (or (assoc mode pretty-patterns)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    65
                    (assoc (cdr-safe
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    66
                            (assoc mode pretty-interaction-mode-alist))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    67
                           pretty-patterns)))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    68
    (pretty-font-lock-keywords kwds)))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    69
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    70
(defgroup pretty nil "Minor mode for replacing text with symbols "
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    71
  :group 'faces)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    72
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    73
(define-minor-mode pretty-mode
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    74
  "Toggle Pretty minor mode.
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    75
With arg, turn Pretty minor mode on if arg is positive, off otherwise.
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    76
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    77
Pretty mode builds on `font-lock-mode'. Instead of highlighting
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    78
keywords, it replaces them with symbols. For example, lambda is
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    79
displayed as λ in lisp modes."
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    80
  :group 'pretty
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    81
                                        ;  :lighter " λ"
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    82
  (if pretty-mode
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    83
      (progn
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    84
        (font-lock-add-keywords nil (pretty-keywords) t)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    85
        (font-lock-fontify-buffer))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    86
    (font-lock-remove-keywords nil (pretty-keywords))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    87
    (remove-text-properties (point-min) (point-max) '(composition nil))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    88
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    89
(defun turn-on-pretty-if-desired ()
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    90
  "Turn on `pretty-mode' if the current major mode supports it."
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    91
  (if (pretty-keywords)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    92
      (pretty-mode 1)))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    93
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    94
(define-globalized-minor-mode global-pretty-mode
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    95
  pretty-mode turn-on-pretty-if-desired
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    96
  :init-value t)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    97
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    98
(defun turn-off-pretty-mode ()
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
    99
  (interactive)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   100
  (pretty-mode -1))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   101
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   102
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   103
(defun turn-on-pretty-mode ()
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   104
  (interactive)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   105
  (pretty-mode +1))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   106
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   107
(defun pretty-compile-patterns (patterns)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   108
  "Set pretty patterns in a convenient way.
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   109
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   110
PATTERNS should be of the form ((GLYPH (REGEXP MODE ...) ...)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   111
...). GLYPH should be a character. MODE should be the name of a
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   112
major mode without the \"-mode\". Returns patterns in the form
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   113
expected by `pretty-patterns'"
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   114
  (let ((pretty-patterns))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   115
    (loop for (glyph . pairs) in patterns do
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   116
          (loop for (regexp . major-modes) in pairs do
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   117
                (loop for mode in major-modes do
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   118
                      (let* ((mode (intern (concat (symbol-name mode)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   119
                                                   "-mode")))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   120
                             (assoc-pair (assoc mode pretty-patterns))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   121
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   122
                             (entry (cons regexp glyph)))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   123
                        (if assoc-pair
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   124
                            (push entry (cdr assoc-pair))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   125
                          (push (cons mode (list entry))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   126
                                pretty-patterns))))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   127
    pretty-patterns))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   128
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   129
;;; (setq-default pretty-patterns pretty-patterns-default)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   130
(defconst pretty-patterns-default
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   131
  (let* ((lispy '(scheme emacs-lisp lisp))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   132
         (mley '(tuareg haskell sml erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   133
         (c-like '(c c++ perl sh python java ess ruby))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   134
         (all (append lispy mley c-like (list 'octave))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   135
    (pretty-compile-patterns
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   136
     `(
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   137
       (?≠ ("!=" ,@c-like scheme octave)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   138
           ("<>" tuareg octave)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   139
           ("~=" octave)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   140
           ("/=" haskell)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   141
           ("=/=" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   142
       (?≤ ("<=" ,@all))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   143
       (?≤ ("=<" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   144
       ( ("fun" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   145
       (?≥ (">=" ,@all))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   146
       (?← ("<-" ,@mley ess)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   147
           ("!" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   148
       (?→ ("->" ,@mley ess c c++ perl))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   149
       (?↑ ("\\^" tuareg))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   150
       (?⇒ ("=>" sml perl ruby))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   151
       (?≡ ("==" ,@c-like erlang haskell))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   152
       (?∀ ("BOOST_FOREACH" c++))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   153
       (?∷ ("::" ,@all))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   154
       (?√ ("sqrt" ,@all))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   155
       (?∑ ("sum" python))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   156
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   157
       ( ("alpha" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   158
       ( ("Alpha" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   159
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   160
       ( ("beta" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   161
       ( ("Beta" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   162
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   163
       ( ("gamma" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   164
       ( ("Gamma" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   165
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   166
       ( ("delta" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   167
       ( ("Delta" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   168
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   169
       ( ("epsilon" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   170
       ( ("epsilon" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   171
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   172
       ( ("zeta" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   173
       ( ("Zeta" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   174
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   175
       ( ("eta" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   176
       ( ("Eta" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   177
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   178
       ( ("theta" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   179
       ( ("Theta" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   180
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   181
       ( ("iota" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   182
       ( ("Iota" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   183
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   184
       ( ("kappa" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   185
       (?K ("Kappa" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   186
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   187
       ( ("lambda" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   188
       ( ("Lambda" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   189
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   190
       ( ("mu" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   191
       ( ("Mu" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   192
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   193
       ( ("nu" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   194
       ( ("Nu" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   195
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   196
       ( ("vega" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   197
       ( ("Vega" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   198
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   199
       ( ("xi" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   200
       ( ("Xi" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   201
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   202
       (?ο ("omicron" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   203
       ( ("Omicron" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   204
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   205
       ( ("pi" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   206
       ( ("pi" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   207
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   208
       ( ("rho" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   209
       ( ("Rho" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   210
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   211
       ( ("sigma" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   212
       ( ("Sigma" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   213
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   214
       ( ("tau" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   215
       ( ("Tau" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   216
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   217
       ( ("upsilon" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   218
       (?Y ("Upsilon" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   219
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   220
       ( ("phi" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   221
       ( ("Phi" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   222
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   223
       ( ("chi" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   224
       ( ("Chi" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   225
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   226
       ( ("psi" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   227
       ( ("Psi" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   228
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   229
       ( ("omega" ,@all))
13
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   230
       ( ("Omega" ,@all))
7dc464c4e2d3 Cleaned up emacs.el quite a bit and added better unique file naming. Added capital greek letters in unicode.
Luke Hoersten <Luke@Hoersten.org>
parents: 12
diff changeset
   231
12
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   232
       ( ("**2" python tuareg octave))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   233
       ( ("**3" python tuareg octave))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   234
       (?ⁿ ("**n" python tuareg octave))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   235
       (?ₐ ("[a]" ,@c-like))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   236
       (?ₓ ("[x]" ,@c-like))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   237
       (?₀ ("[0]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   238
           ("/0" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   239
       (?₁ ("[1]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   240
           ("/1" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   241
       (?₂ ("[2]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   242
           ("/2" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   243
       (?₃ ("[3]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   244
           ("/3" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   245
       (?₄ ("[4]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   246
           ("/4" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   247
       (?₅ ("[5]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   248
           ("/5" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   249
       (?₆ ("[6]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   250
           ("/6" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   251
       (?₇ ("[7]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   252
           ("/7" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   253
       (?₈ ("[8]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   254
           ("/8" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   255
       (?₉ ("[9]" ,@c-like)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   256
           ("/9" erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   257
       (?∧ ("\\<And\\>"     emacs-lisp lisp python)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   258
           ("\\<andalso\\>" sml erlang)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   259
           ("&&"            c c++ perl haskell))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   260
       (?∨ ("\\<or\\>"      emacs-lisp lisp)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   261
           ("\\<orelse\\>"  sml erlang)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   262
           ("||"            c c++ perl haskell erlang))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   263
       ( ("!"       c c++))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   264
       )))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   265
  "default value for `pretty-patterns'")
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   266
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   267
;; TODO fix type
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   268
(defcustom pretty-patterns pretty-patterns-default
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   269
  "*List of pretty patterns.
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   270
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   271
Should be a list of the form ((MODE ((REGEXP . GLYPH) ...)) ...)"
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   272
  :group 'pretty
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   273
  :type '(alist :key-type variable :value-type (alist :key-type (string) :value-type (character))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   274
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   275
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   276
(defun pretty-add-keywords (mode keywords)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   277
  "Add pretty character KEYWORDS to MODE
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   278
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   279
MODE should be a symbol, the major mode command name, such as
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   280
`c-mode' or nil. If nil, pretty keywords are added to the current
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   281
buffer. KEYWORDS should be a list where each element has the
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   282
form (REGEXP . CHAR). REGEXP will be replaced with CHAR in the
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   283
relevant buffer(s)."
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   284
  (font-lock-add-keywords
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   285
   mode (mapcar (lambda (kw) `((,(car kw)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   286
                                (0 (prog1 nil
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   287
                                     (compose-region (match-beginning 0)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   288
                                                     (match-end 0)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   289
                                                     ,(cdr kw)))))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   290
                keywords)))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   291
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   292
(defun pretty-regexp (regexp glyph)
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   293
  "Replace REGEXP with GLYPH in buffer."
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   294
  (interactive "MRegexp to replace:
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   295
MCharacter to replace with: ")
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   296
  (pretty-add-keywords nil `((,regexp . ,(string-to-char glyph))))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   297
  (font-lock-fontify-buffer))
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   298
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   299
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   300
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   301
272dd4613dd9 Added modified pretty-mode.
Luke Hoersten <Luke@Hoersten.org>
parents:
diff changeset
   302
(provide 'pretty-mode)