Commit 4d342102 authored by Alan Mackenzie's avatar Alan Mackenzie
Browse files

Fontify C++ parameter packs.

This fixes debbugs #23610.

* lisp/progmodes/cc-langs.el (c-pack-ops, c-pack-key): New
c-lang-defconsts/defvars.
(c-type-decl-prefix-key): Add "..." and "&&" into the C++ version.

* lisp/progmodes/cc-engine.el (c-forward-type): Handle matches of c-pack-key.
parent edcdf649
......@@ -7091,6 +7091,9 @@ comment at the start of cc-engine.el for more info."
(while (cond
((looking-at c-decl-hangon-key)
(c-forward-keyword-clause 1))
((looking-at c-pack-key)
(goto-char (match-end 1))
(c-forward-syntactic-ws))
((and c-opt-cpp-prefix
(looking-at c-noise-macro-with-parens-name-re))
(c-forward-noise-clause))))
......
......@@ -1329,6 +1329,14 @@ operators."
(c-lang-defvar c-stmt-delim-chars-with-comma
(c-lang-const c-stmt-delim-chars-with-comma))
(c-lang-defconst c-pack-ops
"Ops which signal C++11's \"parameter pack\""
t nil
c++ '("..."))
(c-lang-defconst c-pack-key
t (c-make-keywords-re 'appendable (c-lang-const c-pack-ops)))
(c-lang-defvar c-pack-key (c-lang-const c-pack-key))
(c-lang-defconst c-auto-ops
;; Ops which signal C++11's new auto uses.
t nil
......@@ -2958,6 +2966,10 @@ Identifier syntax is in effect when this is matched \(see
"\\)"
"\\([^=]\\|$\\)")
c++ (concat "\\("
"&&"
"\\|"
"\\.\\.\\."
"\\|"
"[*(&]"
"\\|"
(c-lang-const c-type-decl-prefix-key)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment