summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/emacs/programs.texi33
-rw-r--r--etc/NEWS7
-rw-r--r--lisp/paren.el5
3 files changed, 41 insertions, 4 deletions
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index bc8d39c974f..e6871e3ff34 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -833,9 +833,36 @@ displayed. The default is 102400.
@findex show-paren-mode
Show Paren mode, a global minor mode, provides a more powerful kind
of automatic matching. Whenever point is before an opening delimiter
-or after a closing delimiter, both that delimiter and its opposite
-delimiter are highlighted. To toggle Show Paren mode, type @kbd{M-x
-show-paren-mode}.
+or after a closing delimiter, the delimiter, its matching delimiter,
+and optionally the text between them are highlighted. To toggle Show
+Paren mode, type @kbd{M-x show-paren-mode}. To customize it, type
+@kbd{M-x customize-group @key{RET} paren-showing}. The customizable
+options which control the operation of this mode include:
+
+@itemize @bullet
+@item
+@code{show-paren-highlight-open-paren} controls whether to highlight
+an open paren when point stands just before it, and hence its position
+is marked by the cursor anyway. The default is non-@code{nil} (yes).
+
+@item
+@code{show-paren-style} controls whether just the two parens, or also
+the space between them get highlighted. The valid options here are
+@code{parenthesis} (show the matching paren), @code{expression}
+(highlight the entire expression enclosed by the parens), and
+@code{mixed} (highlight the matching paren if it is visible, the
+expression otherwise).
+
+@item
+@code{show-paren-when-point-inside-paren}, when non-@code{nil}, causes
+highlighting also when point is on the inside of a parenthesis.
+
+@item
+@code{show-paren-when-point-in-periphery}, when non-@code{nil}, causes
+highlighting also when point is in whitespace at the beginning or end
+of a line, and there is a paren at, respectively, the first or last,
+or the last, non-whitespace position on the line.
+@end itemize
@cindex Electric Pair mode
@cindex inserting matching parentheses
diff --git a/etc/NEWS b/etc/NEWS
index a09db1642c7..4c5ce3e4207 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -623,6 +623,13 @@ invalid certificates are marked in red.
*** text/html messages that contain inline image parts will be
transformed into multipart/related messages before sending.
++++
+** In Show Paren Mode, a parenthesis can be highlighted when point
+stands inside it, and certain parens can be highlighted when point is
+at BOL or EOL, or in whitespace there. To enable these, customize,
+respectively, show-paren-when-point-inside-paren or
+show-paren-when-point-in-periphery.
+
** pcase
*** New UPatterns `quote', `app', `cl-struct', and `eieio'.
*** New UPatterns can be defined with `pcase-defmacro'.
diff --git a/lisp/paren.el b/lisp/paren.el
index 30314c2f9c8..5825d6a4f72 100644
--- a/lisp/paren.el
+++ b/lisp/paren.el
@@ -87,7 +87,10 @@ whitespace there."
'show-paren-mismatch "22.1")
(defcustom show-paren-highlight-openparen t
- "Non-nil turns on openparen highlighting when matching forward."
+ "Non-nil turns on openparen highlighting when matching forward.
+When nil, and point stands just before an open paren, the paren
+is not highlighted, the cursor being regarded as adequate to mark
+its position."
:type 'boolean)
(defvar show-paren--idle-timer nil)