| @@ -530,8 +530,9 @@ Otherwize hook it." | |||||
| (run-with-idle-timer 10 t | (run-with-idle-timer 10 t | ||||
| (lambda () | (lambda () | ||||
| (push-mark) | (push-mark) | ||||
| (when (fboundp 'visible-mark-move-overlays) | |||||
| (visible-mark-move-overlays)))) | |||||
| ;; (when (fboundp 'visible-mark-move-overlays) | |||||
| ;; (visible-mark-move-overlays)) | |||||
| )) | |||||
| (when (fboundp 'back-button-mode) | (when (fboundp 'back-button-mode) | ||||
| (back-button-mode 1)) | (back-button-mode 1)) | ||||
| @@ -555,7 +556,8 @@ THEM are function and its args." | |||||
| :around | :around | ||||
| 'visible-mark-move-overlays--avoid-disappear) | 'visible-mark-move-overlays--avoid-disappear) | ||||
| (global-visible-mark-mode 1)) | |||||
| ;; (global-visible-mark-mode 1) | |||||
| ) | |||||
| ;; visible-mark-mode | ;; visible-mark-mode | ||||
| ;; visible-mark-overlays | ;; visible-mark-overlays | ||||
| @@ -2917,6 +2919,56 @@ Any output will be written to current buffer." | |||||
| (add-hook 'post-command-hook | (add-hook 'post-command-hook | ||||
| 'highlight-mark-post-command) | 'highlight-mark-post-command) | ||||
| ;;;;;;;;;;;;;; | |||||
| ;; mmv | |||||
| ;; https://www.emacswiki.org/emacs/MakingMarkVisible | |||||
| ;;;; Make the mark visible, and the visibility toggleable. ('mmv' means 'make | |||||
| ;;;; mark visible'.) By Patrick Gundlach, Teemu Leisti, and Stefan. | |||||
| (defface mmv-face | |||||
| '((t :background "maroon2" :foreground "white")) | |||||
| "Face used for showing the mark's position.") | |||||
| (defvar-local mmv-mark-overlay nil | |||||
| "The overlay for showing the mark's position.") | |||||
| (defvar-local mmv-is-mark-visible t | |||||
| "The overlay is visible only when this variable's value is t.") | |||||
| (defun mmv-draw-mark (&rest _) | |||||
| "Make the mark's position stand out by means of a one-character-long overlay. | |||||
| If the value of variable `mmv-is-mark-visible' is nil, the mark will be | |||||
| invisible." | |||||
| (unless mmv-mark-overlay | |||||
| (setq mmv-mark-overlay (make-overlay 0 0 nil t)) | |||||
| (overlay-put mmv-mark-overlay 'face 'mmv-face)) | |||||
| (let ((mark-position (mark t))) | |||||
| (cond | |||||
| ((null mark-position) (delete-overlay mmv-mark-overlay)) | |||||
| ((and (< mark-position (point-max)) | |||||
| (not (eq ?\n (char-after mark-position)))) | |||||
| (overlay-put mmv-mark-overlay 'after-string nil) | |||||
| (move-overlay mmv-mark-overlay mark-position (1+ mark-position))) | |||||
| (t | |||||
| ;; This branch is called when the mark is at the end of a line or at the | |||||
| ;; end of the buffer. We use a bit of trickery to avoid the higlight | |||||
| ;; extending from the mark all the way to the right end of the frame. | |||||
| (overlay-put mmv-mark-overlay 'after-string | |||||
| (propertize " " 'face (overlay-get mmv-mark-overlay 'face))) | |||||
| (move-overlay mmv-mark-overlay mark-position mark-position))))) | |||||
| (add-hook 'pre-redisplay-functions #'mmv-draw-mark) | |||||
| (defun mmv-toggle-mark-visibility () | |||||
| "Toggles the mark's visiblity and redraws it (whether invisible or visible)." | |||||
| (interactive) | |||||
| (setq mmv-is-mark-visible (not mmv-is-mark-visible)) | |||||
| (if mmv-is-mark-visible | |||||
| (set-face-attribute 'mmv-face nil :background "maroon2" :foreground "white") | |||||
| (set-face-attribute 'mmv-face nil :background 'unspecified :foreground 'unspecified)) | |||||
| (mmv-draw-mark)) | |||||
| ;; Local Variables: | ;; Local Variables: | ||||
| ;; flycheck-disabled-checkers: (emacs-lisp-checkdoc) | ;; flycheck-disabled-checkers: (emacs-lisp-checkdoc) | ||||