1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-31 20:02:42 +00:00

(c-symbol-key): Use POSIX char classes to match symbols in Emacs 21.

This makes CC Mode cope with the full range of identifier characters
in e.g. Java.
This commit is contained in:
Martin Stjernholm 2003-04-07 22:45:18 +00:00
parent 39c9a034e3
commit 1f645835e9
2 changed files with 15 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2003-04-08 Martin Stjernholm <bug-cc-mode@gnu.org>
* progmodes/cc-langs.el (c-symbol-key): Use POSIX char classes
to match symbols. This makes CC Mode cope with the full range
of identifier characters in e.g. Java.
2003-04-07 Francesco Potort,Al(B <pot@gnu.org>
* xt-mouse.el (xterm-mouse-event-read): New function.

View File

@ -181,18 +181,16 @@ appended."
)
;; Regexp describing a `symbol' in all languages, not excluding
;; keywords. We cannot use just `word' syntax class since `_' cannot
;; be in word class. Putting underscore in word class breaks forward
;; word movement behavior that users are familiar with. Besides, it
;; runs counter to Emacs convention.
;;
;; This definition isn't correct for the first character in the
;; languages that accept the full range of Unicode word constituents
;; in identifiers (e.g. Java and Pike). For that we'd need to make a
;; regexp that matches all characters in the word constituent class
;; except 0-9, and the regexp engine currently can't do that.
;; keywords.
(c-lang-defconst c-symbol-key
(c c++ objc java idl) "[_a-zA-Z]\\(\\w\\|\\s_\\)*"
(c c++ objc java idl)
(if (string-match "[[:alpha:]]" "a")
"[[:alpha:]_][[:alnum:]_]*" ; Emacs 21.
;; We cannot use just `word' syntax class since `_' cannot be
;; in word class. Putting underscore in word class breaks
;; forward word movement behavior that users are familiar
;; with. Besides, it runs counter to Emacs convention.
"[a-zA-Z_]\\(\\w\\|_\\)*")
pike (concat "\\(" (c-lang-var c-symbol-key c) "\\|"
(c-make-keywords-re nil
'("`+" "`-" "`&" "`|" "`^" "`<<" "`>>" "`*" "`/" "`%" "`~"