Improve documentation of regexp search for categories.

doc/lispref/searching.texi (Regexp Backslash): Document how to display
 existing categories.  Mention the possibility of adding
 categories, and add an xref to where this is described.  Add an
 index entry.
 doc/lispref/syntax.texi (Categories): Add an example of defining a new
 category and category table.
This commit is contained in:
Eli Zaretskii 2011-08-16 10:53:33 +03:00
parent 5b409b390c
commit 1ea897d542
3 changed files with 33 additions and 1 deletions

View file

@ -1,3 +1,13 @@
2011-08-16 Eli Zaretskii <eliz@gnu.org>
* syntax.texi (Categories): Add an example of defining a new
category and category table.
* searching.texi (Regexp Backslash): Document how to display
existing categories. Mention the possibility of adding
categories, and add an xref to where this is described. Add an
index entry.
2011-08-09 Chong Yidong <cyd@stupidchicken.com>
* text.texi (Special Properties):

View file

@ -717,11 +717,15 @@ the characters that stand for them.
@cindex @samp{\S} in regexp
matches any character whose syntax is not @var{code}.
@cindex category, regexp search for
@item \c@var{c}
matches any character whose category is @var{c}. Here @var{c} is a
character that represents a category: thus, @samp{c} for Chinese
characters or @samp{g} for Greek characters in the standard category
table.
table. You can see the list of all the currently defined categories
with @kbd{M-x describe-categories @key{RET}}. You can also define
your own categories in addition to the standard ones using the
@code{define-category} function (@pxref{Categories}).
@item \C@var{c}
matches any character whose category is not @var{c}.

View file

@ -1084,6 +1084,24 @@ defaults to the current buffer's category table.
@defun define-category char docstring &optional table
This function defines a new category, with name @var{char} and
documentation @var{docstring}, for the category table @var{table}.
Here's an example of defining a new category for characters that have
strong right-to-left directionality (@pxref{Bidirectional Display})
and using it in a special category table:
@example
(defvar special-category-table-for-bidi
(let ((category-table (make-category-table))
(uniprop-table (unicode-property-table-internal 'bidi-class)))
(define-category ?R "Characters of bidi-class R, AL, or RLO"
category-table)
(map-char-table
#'(lambda (key val)
(if (memq val '(R AL RLO))
(modify-category-entry key ?R category-table)))
uniprop-table)
category-table))
@end example
@end defun
@defun category-docstring category &optional table