|
34 | 34 | \\{hypertext-mode-map}"
|
35 | 35 | (setq case-fold-search nil))
|
36 | 36 |
|
37 |
| -(defconst haskell-present-buffer-name |
| 37 | +(defconst haskell-presentation-buffer-name |
38 | 38 | "*Haskell Presentation*"
|
39 | 39 | "Haskell Presentation buffer name.")
|
40 | 40 |
|
41 |
| -(defconst haskell-present-hint-message |
| 41 | +(defconst haskell-presentation-hint-message |
42 | 42 | "-- Hit `q' to close this window; `c' to clear.\n\n"
|
43 | 43 | "Hint message appered in Haskell Presentation buffer.")
|
44 | 44 |
|
45 | 45 | (easy-mmode-defmap
|
46 | 46 | haskell-presentation-mode-map
|
47 |
| - `(("q" . #'quit-window) |
48 |
| - ("c" . #'haskell-present-clear)) |
| 47 | + `(("q" . quit-window) |
| 48 | + ("c" . haskell-presentation-clear)) |
49 | 49 | "The base key map for `haskell-presentation-mode'.")
|
50 | 50 |
|
51 |
| -(defun haskell-present-clear () |
| 51 | +(defun haskell-presentation-buffer () |
| 52 | + "Return Haskell Presentaion buffer. |
| 53 | +Return current presenation buffer or create new one if absent. |
| 54 | +Never returns nil." |
| 55 | + ;; TODO Provide interactive calling options: when called interactively make |
| 56 | + ;; the presentation buffer current. |
| 57 | + (let ((may-buffer (get-buffer haskell-presentation-buffer-name))) |
| 58 | + (if may-buffer |
| 59 | + may-buffer |
| 60 | + (let ((buffer (generate-new-buffer haskell-presentation-buffer-name))) |
| 61 | + (with-current-buffer buffer |
| 62 | + (insert haskell-presentation-hint-message) |
| 63 | + (haskell-presentation-mode) |
| 64 | + (setq buffer-read-only t)) |
| 65 | + buffer)))) |
| 66 | + |
| 67 | +(defun haskell-presentation-clear () |
52 | 68 | "Clear Haskell Presentation buffer."
|
53 | 69 | (interactive)
|
54 |
| - (let ((hp-buf (get-buffer haskell-present-buffer-name))) |
| 70 | + (let ((hp-buf (get-buffer haskell-presentation-buffer-name))) |
55 | 71 | (when hp-buf
|
56 | 72 | (with-current-buffer hp-buf
|
57 | 73 | (let ((buffer-read-only nil))
|
58 | 74 | (erase-buffer)
|
59 |
| - (insert haskell-present-hint-message)))))) |
| 75 | + (insert haskell-presentation-hint-message)))))) |
60 | 76 |
|
61 |
| -(defun haskell-present (session code &optional clear) |
| 77 | +(defun haskell-presentation-present (session code &optional clear) |
62 | 78 | "Present given code in a popup buffer.
|
63 | 79 | Creates temporal Haskell Presentation buffer and assigns it to
|
64 | 80 | given haskell SESSION; presented CODE will be fontified as
|
65 | 81 | haskell code. Give an optional non-nil CLEAR arg to clear the
|
66 | 82 | buffer before presenting message."
|
67 |
| - (let ((buffer (get-buffer-create haskell-present-buffer-name))) |
| 83 | + (let ((buffer (haskell-presentation-buffer))) |
68 | 84 | (with-current-buffer buffer
|
69 |
| - (haskell-presentation-mode) |
70 | 85 |
|
71 | 86 | (when (boundp 'shm-display-quarantine)
|
72 | 87 | (set (make-local-variable 'shm-display-quarantine) nil))
|
73 | 88 |
|
74 |
| - (when clear (haskell-present-clear)) |
| 89 | + (when clear (haskell-presentation-clear)) |
75 | 90 | (haskell-session-assign session)
|
76 | 91 | (save-excursion
|
77 | 92 | (let ((buffer-read-only nil))
|
|
0 commit comments