aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorAlan Mackenzie2016-05-09 17:49:45 +0000
committerAlan Mackenzie2016-05-09 17:49:45 +0000
commita8231e00cbad60652ff7ab6ae51a758f1d939971 (patch)
treeabbdd240734fb41710e542335fea763e12601596 /doc
parent608f2bd0ac9d950a04ad73bf36d96d25b469b9be (diff)
downloademacs-a8231e00cbad60652ff7ab6ae51a758f1d939971.tar.gz
emacs-a8231e00cbad60652ff7ab6ae51a758f1d939971.zip
CC Mode now uses the new :after-hook feature of define-derived-mode
It now runs internal variable setting functions after the mode hooks, no longer runs the mode hooks twice, and declares the configuration variables for noise macros and macros with semicolons as safe variables (when given suitable arguments). Fixes bug #16759 and bug #23476. * .dir-locals: Put the c-noise-macros-with-paren-names setting back into the C Mode value. * lisp/progmodes/cc-mode.el: (c-basic-common-init): Remove the call to c-make-macro-with-semi-re. (c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode, awk-mode): Move c-make-noise-macro-regexps and c-make-macro-with-semi-re (where appropriate) and c-update-modeline into the :after-hook form. Remove the explicit settings of the syntax table, the abbreviation table and the local key map, since they duplicate forms generated by define-derived-mode. Remove the explicit invocation of each mode's mode hook, since they duplicate ones generated by define-derived-mode. * lisp/progmodes/cc-vars.el: (c-string-list-p, c-string-or-string-list-p): New functions. (c-noise-macro-names, c-noise-macro-with-parens-names): give the save-local-variable property c-string-list-p. (c-macro-names-with-semicolon): give the save-local-variable property c-string-or-string-list-p. * doc/misc/cc-mode.texi: (Macros with ;, Noise Macros): Note that it's not necessary to call the regexp generating functions after setting the pertinent configuration values in a mode hook.
Diffstat (limited to 'doc')
-rw-r--r--doc/misc/cc-mode.texi13
1 files changed, 7 insertions, 6 deletions
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 70146b2eb57..82f8cbc2e33 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -6767,10 +6767,10 @@ example:
6767@defun c-make-macro-with-semi-re 6767@defun c-make-macro-with-semi-re
6768@findex make-macro-with-semi-re (c-) 6768@findex make-macro-with-semi-re (c-)
6769Call this (non-interactive) function, which sets internal variables, 6769Call this (non-interactive) function, which sets internal variables,
6770each time you change the value of 6770each time you change the value of @code{c-macro-names-with-semicolon}
6771@code{c-macro-names-with-semicolon}. It takes no arguments, and its 6771after the major mode function has run. It takes no arguments, and its
6772return value has no meaning. This function is called by @ccmode{}'s 6772return value has no meaning. This function is called by @ccmode{}'s
6773initialization code. 6773initialization code, after the mode hooks have run.
6774@end defun 6774@end defun
6775 6775
6776@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6776@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -6822,9 +6822,10 @@ but doing so is OK.
6822@defun c-make-noise-macro-regexps 6822@defun c-make-noise-macro-regexps
6823@findex make-noise-macro-regexps (c-) 6823@findex make-noise-macro-regexps (c-)
6824Call this (non-interactive) function, which sets internal variables, 6824Call this (non-interactive) function, which sets internal variables,
6825after changing the value of @code{c-noise-macro-names} or 6825on changing the value of @code{c-noise-macro-names} or
6826@code{c-noise-macro-with-parens-names} (e.g. in a hook (@pxref{CC 6826@code{c-noise-macro-with-parens-names} after the major mode's function
6827Hooks})). This function is called by @ccmode{}'s initialization code. 6827has run. This function is called by @ccmode{}'s initialization code,
6828after the mode hooks have run.
6828@end defun 6829@end defun
6829 6830
6830@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6831@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!