mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-18 19:07:34 +00:00
Correctly fontify Java class constructors.
* progmodes/cc-langs.el (c-type-decl-suffix-key): Now matches ")"
in Java Mode.
(c-recognize-typeless-decls): Set the Java value to t.
* progmodes/cc-engine.el (c-forward-decl-or-cast-1): While
handling a "(", add a check for, effectively, Java, and handle a
"typeless" declaration there.
This commit is contained in:
parent
1db9ceee69
commit
e8dd0787d9
3 changed files with 43 additions and 26 deletions
|
|
@ -1,3 +1,13 @@
|
|||
2013-09-07 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
Correctly fontify Java class constructors.
|
||||
* progmodes/cc-langs.el (c-type-decl-suffix-key): Now matches ")"
|
||||
in Java Mode.
|
||||
(c-recognize-typeless-decls): Set the Java value to t.
|
||||
* progmodes/cc-engine.el (c-forward-decl-or-cast-1): While
|
||||
handling a "(", add a check for, effectively, Java, and handle a
|
||||
"typeless" declaration there.
|
||||
|
||||
2013-09-07 Roland Winkler <winkler@gnu.org>
|
||||
|
||||
* textmodes/bibtex.el (bibtex-biblatex-entry-alist): Add optional
|
||||
|
|
|
|||
|
|
@ -6905,32 +6905,38 @@ comment at the start of cc-engine.el for more info."
|
|||
|
||||
;; Skip over type decl prefix operators. (Note similar code in
|
||||
;; `c-font-lock-declarators'.)
|
||||
(while (and (looking-at c-type-decl-prefix-key)
|
||||
(if (and (c-major-mode-is 'c++-mode)
|
||||
(match-beginning 3))
|
||||
;; If the third submatch matches in C++ then
|
||||
;; we're looking at an identifier that's a
|
||||
;; prefix only if it specifies a member pointer.
|
||||
(when (setq got-identifier (c-forward-name))
|
||||
(if (looking-at "\\(::\\)")
|
||||
;; We only check for a trailing "::" and
|
||||
;; let the "*" that should follow be
|
||||
;; matched in the next round.
|
||||
(progn (setq got-identifier nil) t)
|
||||
;; It turned out to be the real identifier,
|
||||
;; so stop.
|
||||
nil))
|
||||
t))
|
||||
|
||||
(if (eq (char-after) ?\()
|
||||
(if (and c-recognize-typeless-decls
|
||||
(equal c-type-decl-prefix-key "\\<\\>"))
|
||||
(when (eq (char-after) ?\()
|
||||
(progn
|
||||
(setq paren-depth (1+ paren-depth))
|
||||
(forward-char))
|
||||
(unless got-prefix-before-parens
|
||||
(setq got-prefix-before-parens (= paren-depth 0)))
|
||||
(setq got-prefix t)
|
||||
(goto-char (match-end 1)))
|
||||
(c-forward-syntactic-ws))
|
||||
(forward-char)))
|
||||
(while (and (looking-at c-type-decl-prefix-key)
|
||||
(if (and (c-major-mode-is 'c++-mode)
|
||||
(match-beginning 3))
|
||||
;; If the third submatch matches in C++ then
|
||||
;; we're looking at an identifier that's a
|
||||
;; prefix only if it specifies a member pointer.
|
||||
(when (setq got-identifier (c-forward-name))
|
||||
(if (looking-at "\\(::\\)")
|
||||
;; We only check for a trailing "::" and
|
||||
;; let the "*" that should follow be
|
||||
;; matched in the next round.
|
||||
(progn (setq got-identifier nil) t)
|
||||
;; It turned out to be the real identifier,
|
||||
;; so stop.
|
||||
nil))
|
||||
t))
|
||||
|
||||
(if (eq (char-after) ?\()
|
||||
(progn
|
||||
(setq paren-depth (1+ paren-depth))
|
||||
(forward-char))
|
||||
(unless got-prefix-before-parens
|
||||
(setq got-prefix-before-parens (= paren-depth 0)))
|
||||
(setq got-prefix t)
|
||||
(goto-char (match-end 1)))
|
||||
(c-forward-syntactic-ws)))
|
||||
|
||||
(setq got-parens (> paren-depth 0))
|
||||
|
||||
|
|
|
|||
|
|
@ -2816,7 +2816,8 @@ is in effect when this is matched (see `c-identifier-syntax-table')."
|
|||
"\\>")
|
||||
"")
|
||||
"\\)")
|
||||
(java idl) "\\([\[\(]\\)")
|
||||
java "\\([\[\(\)]\\)"
|
||||
idl "\\([\[\(]\\)")
|
||||
(c-lang-defvar c-type-decl-suffix-key (c-lang-const c-type-decl-suffix-key)
|
||||
'dont-doc)
|
||||
|
||||
|
|
@ -2937,7 +2938,7 @@ calls before a brace block. This setting does not affect declarations
|
|||
that are preceded by a declaration starting keyword, so
|
||||
e.g. `c-typeless-decl-kwds' may still be used when it's set to nil."
|
||||
t nil
|
||||
(c c++ objc) t)
|
||||
(c c++ objc java) t)
|
||||
(c-lang-defvar c-recognize-typeless-decls
|
||||
(c-lang-const c-recognize-typeless-decls))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue