-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscamx-convert.el
53 lines (47 loc) · 1.63 KB
/
scamx-convert.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
(defvar meow-convert-state-keymap
(let ((keymap (make-keymap)))
(suppress-keymap keymap t)
(define-key keymap (kbd "i") 'meow-insert)
(define-key keymap [remap kmacro-start-macro] #'meow-start-kmacro)
(define-key keymap [remap kmacro-start-macro-or-insert-counter] #'meow-start-kmacro-or-insert-counter)
(define-key keymap [remap kmacro-end-or-call-macro] #'meow-end-or-call-kmacro)
(define-key keymap [remap kmacro-end-macro] #'meow-end-kmacro)
keymap)
"Keymap for Meow convert state.")
(defface meow-convert-cursor
'((((class color) (background dark))
(:inherit cursor))
(((class color) (background light))
(:inherit cursor)))
"Convert state cursor."
:group 'meow)
(meow-define-state convert
"Meow CONVERT state minor mode."
:lighter " [C]"
:keymap meow-convert-state-keymap
:cursor meow-convert-cursor)
(defun meow-convert-define-key (&rest keybinds)
(apply #'meow-define-keys 'convert keybinds))
(defun meow-convert-exit ()
"Switch to NORMAL state."
(interactive)
(cond
((meow-keypad-mode-p)
(meow--exit-keypad-state))
((and (meow-convert-mode-p)
(eq meow--beacon-defining-kbd-macro 'quick))
(setq meow--beacon-defining-kbd-macro nil)
(meow-beacon-convert-exit))
((meow-convert-mode-p)
(when overwrite-mode
(overwrite-mode -1))
(meow--switch-state 'normal))))
(defun meow-convert ()
"Move to the start of selection, switch to CONVERT state."
(interactive)
(if meow--temp-normal
(progn
(message "Quit temporary normal mode")
(meow--switch-state 'motion))
(meow--switch-state 'convert)))
(provide 'scamx-convert)