-
Notifications
You must be signed in to change notification settings - Fork 0
/
annotate_mode.el
58 lines (44 loc) · 1.48 KB
/
annotate_mode.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
;; define a var for your keymap, so that you can set it as local map
;; (meaning, active only when your mode is on)
(defvar annotate-mode-map nil "Keymap for annotate-mode")
;; definition for your keybinding and menu
(when (not annotate-mode-map) ; if it is not already defined
;; assign command to keys
(setq annotate-mode-map (make-sparse-keymap))
(define-key annotate-mode-map (kbd "w") 'annotate-skip-word)
(define-key annotate-mode-map (kbd "e") 'annotate-mark-word)
(define-key annotate-mode-map (kbd "q") 'annotate-skip-three-words)
(define-key annotate-mode-map (kbd "a") 'annotate-back-word))
(defun annotate-skip-word ()
(interactive)
(right-word)
(right-word)
(left-word))
(defun annotate-skip-three-words ()
(interactive)
(annotate-skip-word)
(annotate-skip-word)
(annotate-skip-word))
(defun annotate-back-word ()
(interactive)
(left-word)
(left-word))
(defun annotate-mark-word ()
(interactive)
(insert "//MARK\\\\")
(right-word)
(right-word)
(left-word))
(defun annotate-mode ()
"Major mode for annotating my HeadFi dumps"
(interactive)
(kill-all-local-variables)
(setq major-mode 'annotate-mode)
(setq mode-name "annotate") ; for display purposes in mode line
(use-local-map annotate-mode-map)
;; … other code here
(run-hooks 'annotate-mode-hook))
;; put your mode symbol into the list “features”, so that user can
;; call (require 'annotate-mode), which will load your code only when
;; needed
(provide 'annotate-mode)