+;;; ... -*- lexical-binding: t -*-
;;; visible-mark.el --- Make marks visible.
;; Copyright (C) 2014 by Ian Kelling
;;; Code:
-(eval-when-compile
- (require 'cl))
-
(defgroup visible-mark nil
"Show the position of your mark."
:group 'convenience
:group 'visible-mark
:type 'boolean)
-(defcustom global-visible-mark-mode-exclude-alist nil
+(defcustom global-visible-mark-mode-exclude-list nil
"A list of buffer names to be excluded."
:group 'visible-mark
:type '(repeat regexp))
(overlay-put overlay 'face face)
(move-overlay overlay pos (1+ pos)))))))
-(require 'easy-mmode)
(defun visible-mark-mode-maybe ()
(when (cond
((minibufferp (current-buffer)) nil)
- ((cl-flet ((fun (arg)
- (if (null arg) nil
- (or (string-match (car arg) (buffer-name))
- (fun (cdr arg))))))
- (fun global-visible-mark-mode-exclude-alist)) nil)
+ ((let ((regex-list global-visible-mark-mode-exclude-list)
+ match)
+ (while (and (not match) regex-list)
+ (setq match (string-match (car regex-list) (buffer-name))
+ regex-list (cdr regex-list)))
+ match) nil)
(t t))
(visible-mark-mode t)))
;;;###autoload
(define-minor-mode visible-mark-mode
"A mode to make the mark visible."
- nil nil nil
- :group 'visible-mark
+ :init-value nil
(if visible-mark-mode
(progn
(visible-mark-initialize-overlays)
(remove-hook 'post-command-hook 'visible-mark-move-overlays t)))
;;;###autoload
-(define-global-minor-mode
- global-visible-mark-mode visible-mark-mode visible-mark-mode-maybe
+(define-globalized-minor-mode
+ global-visible-mark-mode
+ visible-mark-mode
+ visible-mark-mode-maybe
:group 'visible-mark)
(provide 'visible-mark)