mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 10:27:41 +00:00
Allow blink-matching-paren to jump off screen
* doc/emacs/programs.texi (Matching): Mention the `blink-matching-paren' value `jump-offscreen'. * lisp/simple.el (blink-matching-paren): New possible value. (blink-matching-paren-on-screen): Clarify the docstring. (blink-matching-open): Handle `jump-offscreen' (bug#21286).
This commit is contained in:
parent
9c1e7d5a26
commit
345284f5e9
2 changed files with 14 additions and 6 deletions
|
|
@ -814,7 +814,8 @@ opening delimiter and closing delimiter are mismatched---such as in
|
|||
@code{blink-matching-paren} turns the feature on or off: @code{nil}
|
||||
disables it, but the default is @code{t} to enable it. Set it to
|
||||
@code{jump} to make indication work by momentarily moving the cursor
|
||||
to the matching opening delimiter.
|
||||
to the matching opening delimiter. Set it to @code{jump-offscreen} to
|
||||
make the cursor jump, even if the opening delimiter is off screen.
|
||||
|
||||
@item
|
||||
@code{blink-matching-delay} says how many seconds to keep indicating
|
||||
|
|
|
|||
|
|
@ -6873,17 +6873,22 @@ If called from Lisp, enable the mode if ARG is omitted or nil."
|
|||
|
||||
(defcustom blink-matching-paren t
|
||||
"Non-nil means show matching open-paren when close-paren is inserted.
|
||||
If t, highlight the paren. If `jump', move cursor to its position."
|
||||
If t, highlight the paren. If `jump', briefly move cursor to its
|
||||
position. If `jump-offscreen', move cursor there even if the
|
||||
position is off screen. With any other non-nil value, the
|
||||
off-screen position of the opening paren will be shown in the
|
||||
echo area."
|
||||
:type '(choice
|
||||
(const :tag "Disable" nil)
|
||||
(const :tag "Highlight" t)
|
||||
(const :tag "Move cursor" jump))
|
||||
(const :tag "Move cursor" jump)
|
||||
(const :tag "Move cursor, even if off screen" jump-offscreen))
|
||||
:group 'paren-blinking)
|
||||
|
||||
(defcustom blink-matching-paren-on-screen t
|
||||
"Non-nil means show matching open-paren when it is on screen.
|
||||
If nil, don't show it (but the open-paren can still be shown
|
||||
when it is off screen).
|
||||
in the echo area when it is off screen).
|
||||
|
||||
This variable has no effect if `blink-matching-paren' is nil.
|
||||
\(In that case, the open-paren is never shown.)
|
||||
|
|
@ -6987,13 +6992,15 @@ The function should return non-nil if the two tokens do not match.")
|
|||
(minibuffer-message "No matching parenthesis found")
|
||||
(message "No matching parenthesis found"))))
|
||||
((not blinkpos) nil)
|
||||
((pos-visible-in-window-p blinkpos)
|
||||
((or
|
||||
(eq blink-matching-paren 'jump-offscreen)
|
||||
(pos-visible-in-window-p blinkpos))
|
||||
;; Matching open within window, temporarily move to or highlight
|
||||
;; char after blinkpos but only if `blink-matching-paren-on-screen'
|
||||
;; is non-nil.
|
||||
(and blink-matching-paren-on-screen
|
||||
(not show-paren-mode)
|
||||
(if (eq blink-matching-paren 'jump)
|
||||
(if (memq blink-matching-paren '(jump jump-offscreen))
|
||||
(save-excursion
|
||||
(goto-char blinkpos)
|
||||
(sit-for blink-matching-delay))
|
||||
|
|
|
|||
Loading…
Reference in a new issue