mylisp/mypasshide.el
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sat, 02 Jan 2021 00:33:04 +0200
changeset 1666 06937ff1ec5f
parent 1644 mypasshide.el@83380a5779c6
permissions -rw-r--r--
Moved my elisp modes to dedicated directory to not mixt with init.el.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
bbb65280822b Fixed indention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1640
diff changeset
    16
             (end (line-end-position))
bbb65280822b Fixed indention.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1640
diff changeset
    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