author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Sun, 27 Nov 2022 23:40:10 +0200 | |
changeset 1763 | bcd7574bc9c3 |
parent 1666 | 06937ff1ec5f |
permissions | -rw-r--r-- |
1640
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
1 |
|
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
2 |
(defvar mypasshide-prefix-re "^pass: *") |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
3 |
|
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
4 |
(defun mypasshide--toggle-display (overlay hide) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
5 |
"Hide or reveal region. Signature follows convention for |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
6 |
`reveal-toggle-invisible' from `reveal' mode." |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
7 |
(if hide |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
8 |
(overlay-put overlay 'display (propertize "****" 'face 'warning)) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
9 |
(overlay-put overlay 'display nil))) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
10 |
|
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
11 |
(defun mypasshide--hide () |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
12 |
(save-excursion |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
13 |
(goto-char (point-min)) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
14 |
(while (re-search-forward mypasshide-prefix-re nil t) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
15 |
(let* ((beg (match-end 0)) |
1641 | 16 |
(end (line-end-position)) |
17 |
(overlay (make-overlay beg end))) |
|
1640
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
18 |
(mypasshide--toggle-display overlay t) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
19 |
(overlay-put overlay 'reveal-toggle-invisible #'mypasshide--toggle-display) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
20 |
)))) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
21 |
|
1644
83380a5779c6
Marked function for autoload.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
1641
diff
changeset
|
22 |
;;;###autoload |
1640
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
23 |
(define-minor-mode mypasshide-mode |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
24 |
"Hide passwords after `mypasshide-prefix-re' and activate |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
25 |
`reveal-mode'. Disabling is not implemented." |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
26 |
:group 'reveal |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
27 |
(if mypasshide-mode |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
28 |
(progn |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
29 |
(mypasshide--hide) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
30 |
(reveal-mode)))) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
31 |
|
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
32 |
(provide 'mypasshide) |
cbcc2ac8f3e3
Implemented mypasshide-mode for hiding passwords from my .org files.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
33 |