]> code.delx.au - gnu-emacs/blobdiff - lisp/progmodes/cc-langs.el
Implement ' separators in C++ integer literals.
[gnu-emacs] / lisp / progmodes / cc-langs.el
index 705f723d55dc790d6509c999bb23ef5f710eb8ad..4d366848998ae009de629d01d985e83fb29b402f 100644 (file)
@@ -474,9 +474,14 @@ so that all identifiers are recognized as words.")
   ;; The value here may be a list of functions or a single function.
   t nil
   c++ '(c-extend-region-for-CPP
+       c-before-change-check-raw-strings
        c-before-change-check-<>-operators
+       c-depropertize-CPP
+       c-before-after-change-digit-quote
        c-invalidate-macro-cache)
-  (c objc) '(c-extend-region-for-CPP c-invalidate-macro-cache)
+  (c objc) '(c-extend-region-for-CPP
+            c-depropertize-CPP
+            c-invalidate-macro-cache)
   ;; java 'c-before-change-check-<>-operators
   awk 'c-awk-record-region-clear-NL)
 (c-lang-defvar c-get-state-before-change-functions
@@ -504,15 +509,24 @@ parameters \(point-min) and \(point-max).")
 (c-lang-defconst c-before-font-lock-functions
   ;; For documentation see the following c-lang-defvar of the same name.
   ;; The value here may be a list of functions or a single function.
-  t 'c-change-expand-fl-region
-  (c objc) '(c-neutralize-syntax-in-and-mark-CPP
+  t '(c-depropertize-new-text
+      c-change-expand-fl-region)
+  (c objc) '(c-depropertize-new-text
+            c-extend-font-lock-region-for-macros
+            c-neutralize-syntax-in-and-mark-CPP
             c-change-expand-fl-region)
-  c++ '(c-neutralize-syntax-in-and-mark-CPP
+  c++ '(c-depropertize-new-text
+       c-extend-font-lock-region-for-macros
+       c-before-after-change-digit-quote
+       c-after-change-re-mark-raw-strings
+       c-neutralize-syntax-in-and-mark-CPP
        c-restore-<>-properties
        c-change-expand-fl-region)
-  java '(c-restore-<>-properties
+  java '(c-depropertize-new-text
+        c-restore-<>-properties
         c-change-expand-fl-region)
-  awk 'c-awk-extend-and-syntax-tablify-region)
+  awk '(c-depropertize-new-text
+       c-awk-extend-and-syntax-tablify-region))
 (c-lang-defvar c-before-font-lock-functions
               (let ((fs (c-lang-const c-before-font-lock-functions)))
                 (if (listp fs)
@@ -1791,7 +1805,7 @@ but they don't build a type of themselves.  Unlike the keywords on
 not the type face."
   t    nil
   c    '("const" "restrict" "volatile")
-  c++  '("const" "constexpr" "noexcept" "volatile" "throw" "final" "override")
+  c++  '("const" "noexcept" "volatile" "throw" "final" "override")
   objc '("const" "volatile"))
 
 (c-lang-defconst c-opt-type-modifier-key
@@ -1993,8 +2007,8 @@ If any of these also are on `c-type-list-kwds', `c-ref-list-kwds',
 will be handled."
   t    nil
   (c c++) '("auto" "extern" "inline" "register" "static")
-  c++  (append '("explicit" "friend" "mutable" "template" "thread_local"
-                 "using" "virtual")
+  c++  (append '("constexpr" "explicit" "friend" "mutable" "template"
+                "thread_local" "using" "virtual")
               (c-lang-const c-modifier-kwds))
   objc '("auto" "bycopy" "byref" "extern" "in" "inout" "oneway" "out" "static")
   ;; FIXME: Some of those below ought to be on `c-other-decl-kwds' instead.
@@ -2264,6 +2278,10 @@ contain type identifiers."
            ;; MSVC extension.
            "__declspec"))
 
+(c-lang-defconst c-paren-nontype-key
+  t (c-make-keywords-re t (c-lang-const c-paren-nontype-kwds)))
+(c-lang-defvar c-paren-nontype-key (c-lang-const c-paren-nontype-key))
+
 (c-lang-defconst c-paren-type-kwds
   "Keywords that may be followed by a parenthesis expression containing
 type identifiers separated by arbitrary tokens."