X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/034086489cff2a23cb4d9f8c536e18456be617ef..30213927b6eebe291cd425d5863f54bffe0b8a83:/lisp/reveal.el?ds=inline diff --git a/lisp/reveal.el b/lisp/reveal.el index bf18602379..6740f7e923 100644 --- a/lisp/reveal.el +++ b/lisp/reveal.el @@ -1,6 +1,6 @@ ;;; reveal.el --- Automatically reveal hidden text at point -*- lexical-binding: t -*- -;; Copyright (C) 2000-2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2013 Free Software Foundation, Inc. ;; Author: Stefan Monnier ;; Keywords: outlines @@ -72,27 +72,26 @@ Each element has the form (WINDOW . OVERLAY).") ;; - we only refresh spots in the current window. ;; FIXME: do we actually know that (current-buffer) = (window-buffer) ? (with-local-quit - (condition-case err - (let ((old-ols - (delq nil - (mapcar - (lambda (x) - ;; We refresh any spot in the current window as well - ;; as any spots associated with a dead window or - ;; a window which does not show this buffer any more. - (cond - ((eq (car x) (selected-window)) (cdr x)) - ((not (and (window-live-p (car x)) - (eq (window-buffer (car x)) (current-buffer)))) - ;; Adopt this since it's owned by a window that's - ;; either not live or at least not showing this - ;; buffer any more. - (setcar x (selected-window)) - (cdr x)))) - reveal-open-spots)))) - (setq old-ols (reveal-open-new-overlays old-ols)) - (reveal-close-old-overlays old-ols)) - (error (message "Reveal: %s" err))))) + (with-demoted-errors "Reveal: %s" + (let ((old-ols + (delq nil + (mapcar + (lambda (x) + ;; We refresh any spot in the current window as well + ;; as any spots associated with a dead window or + ;; a window which does not show this buffer any more. + (cond + ((eq (car x) (selected-window)) (cdr x)) + ((not (and (window-live-p (car x)) + (eq (window-buffer (car x)) (current-buffer)))) + ;; Adopt this since it's owned by a window that's + ;; either not live or at least not showing this + ;; buffer any more. + (setcar x (selected-window)) + (cdr x)))) + reveal-open-spots)))) + (setq old-ols (reveal-open-new-overlays old-ols)) + (reveal-close-old-overlays old-ols))))) (defun reveal-open-new-overlays (old-ols) (let ((repeat t)) @@ -106,7 +105,7 @@ Each element has the form (WINDOW . OVERLAY).") (let ((inv (overlay-get ol 'invisible)) open) (when (and inv ;; There's an `invisible' property. Make sure it's - ;; actually invisible, and ellipsised. + ;; actually invisible, and ellipsized. (and (consp buffer-invisibility-spec) (cdr (assq inv buffer-invisibility-spec))) (or (setq open @@ -189,12 +188,13 @@ Each element has the form (WINDOW . OVERLAY).") ;;;###autoload (define-minor-mode reveal-mode - "Toggle Reveal mode on or off. -Reveal mode renders invisible text around point visible again. + "Toggle uncloaking of invisible text near point (Reveal mode). +With a prefix argument ARG, enable Reveal mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +Reveal mode if ARG is omitted or nil. -Interactively, with no prefix argument, toggle the mode. -With universal prefix ARG (or if ARG is nil) turn mode on. -With zero or negative ARG turn mode off." +Reveal mode is a buffer-local minor mode. When enabled, it +reveals invisible text around point." :group 'reveal :lighter (global-reveal-mode nil " Reveal") :keymap reveal-mode-map @@ -207,12 +207,12 @@ With zero or negative ARG turn mode off." ;;;###autoload (define-minor-mode global-reveal-mode - "Toggle Reveal mode in all buffers on or off. + "Toggle Reveal mode in all buffers (Global Reveal mode). Reveal mode renders invisible text around point visible again. -Interactively, with no prefix argument, toggle the mode. -With universal prefix ARG (or if ARG is nil) turn mode on. -With zero or negative ARG turn mode off." +With a prefix argument ARG, enable Global Reveal mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil." :global t :group 'reveal (setq-default reveal-mode global-reveal-mode) (if global-reveal-mode