* bug#4192: 23.1; special fontification for "//" in cc-mode @ 2009-08-18 16:24 Tom Tromey 2009-08-21 21:33 ` Alan Mackenzie 0 siblings, 1 reply; 11+ messages in thread From: Tom Tromey @ 2009-08-18 16:24 UTC (permalink / raw) To: bug-gnu-emacs Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the bug-gnu-emacs@gnu.org mailing list, and to the gnu.emacs.bug news group. Please describe exactly what actions triggered the bug and the precise symptoms of the bug: This is a feature request for cc-mode. I work on a number of projects that use C89, not C99. In these projects, it is invalid to use "//"-style comment. It would be nice if cc-mode would optionally flag such comments in a special face, so that I can immediately see when I've written a comment incorrectly. If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /usr/share/emacs/23.1/etc/DEBUG for instructions. In GNU Emacs 23.1.1 (i386-redhat-linux-gnu, GTK+ Version 2.16.5) of 2009-08-03 on x86-5.fedora.phx.redhat.com Windowing system distributor `The X.Org Foundation', version 11.0.10601901 configured using `configure '--build=i386-redhat-linux-gnu' '--host=i386-redhat-linux-gnu' '--target=i586-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-dbus' '--with-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xft' '--with-xpm' '--with-x-toolkit=gtk' 'build_alias=i386-redhat-linux-gnu' 'host_alias=i386-redhat-linux-gnu' 'target_alias=i586-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-bu ffer-size=4 -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_US.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: Fundamental Minor modes in effect: erc-list-mode: t erc-menu-mode: t erc-autojoin-mode: t erc-ring-mode: t erc-pcomplete-mode: t erc-track-mode: t erc-track-minor-mode: t erc-match-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-netsplit-mode: t erc-spelling-mode: t erc-truncate-mode: t diff-auto-refine-mode: t shell-dirtrack-mode: t highlight-changes-visible-mode: t erc-status-mode: t erc-services-mode: t erc-networks-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t tooltip-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: e a t u r e s , SPC b u t SPC i t SPC d i d SPC b r e a k SPC w 3 m - e l SPC f o r SPC m e SPC : ( <return> n o SPC m o r e SPC h t m l SPC m a i l SPC f o r SPC a SPC w h i l e <return> <switch-frame> <switch-frame> m a y b e SPC t h a t SPC i s SPC a SPC p l u s SPC <return> <f10> <f10> <f10> M-v M-> <f10> C-z o C-x b P <return> C-x k <return> C-x b L <tab> <return> C-v C-v M-v M-v M-v C-z o <f10> <f10> <f10> <f10> C-h i d m c c <tab> SPC m <tab> <return> C-v C-l m o d <tab> <return> l C-v C-s c o m m e n t C-a m <return> C-v C-s C-s C-v M-> C-s C-s C-s C-s C-s C-s C-s C-a C-v M-> C-s C-s C-s C-s C-a n n n n C-s C-s C-a SPC n u n n p 1 u SPC SPC SPC SPC SPC SPC p SPC n SPC n n u n SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC <backspace> n SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC SPC n SPC SPC SPC SPC SPC SPC n n n n n n C-s / / C-a C-v n C-s C-s C-a n n t C-s / / C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-a q C-z o M-x r e p r o t - e C-u C-b C-b C-f C-t C-e m <tab> <return> Recent messages: call-interactively: End of buffer Mark set Mark saved where search started Mark set Mark saved where search started Info-extract-pointer: Node has no Next [2 times] Searching subfile ccmode-2... uncompressing ccmode-2.gz...done uncompressing ccmode-1.gz...done Mark saved where search started Tom ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: bug#4192: 23.1; special fontification for "//" in cc-mode 2009-08-18 16:24 bug#4192: 23.1; special fontification for "//" in cc-mode Tom Tromey @ 2009-08-21 21:33 ` Alan Mackenzie 2016-02-29 3:36 ` Lars Ingebrigtsen 0 siblings, 1 reply; 11+ messages in thread From: Alan Mackenzie @ 2009-08-21 21:33 UTC (permalink / raw) To: Tom Tromey, 4192; +Cc: bug-cc-mode, bug-gnu-emacs Hi, Tom! On Tue, Aug 18, 2009 at 10:24:02AM -0600, Tom Tromey wrote: > This is a feature request for cc-mode. > I work on a number of projects that use C89, not C99. In these > projects, it is invalid to use "//"-style comment. It would be nice if > cc-mode would optionally flag such comments in a special face, so that > I can immediately see when I've written a comment incorrectly. I'm not sure this is important enough to warrant a fully implemented/documented/QA'd feature, but then again, I'm not sure it's not. Here's a quick hack called c-disable-line-comments.el. Load it into your Emacs before CC Mode (in particular, before desktop gets loaded). Toggling c-disable-line-comments doesn't work smoothly with the font locking, but I'm assuming here you'll not really be wanting to toggle this. Criticism is, of course, welcome. I've set the followup to bug-cc-mode@gnu.org. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; c-disable-line-comments.el. ;; ;; A function which disables line comments in C mode and fontifies the ;; delimiter "//" with font-lock-warning-face. ;; ;; It should be loaded before CC Mode. It will only work in GNU Emacs, and ;; has only been "properly" tested in Emacs 23.1. ;; ;; Written 2009-08-21 by Alan Mackenzie at the request of Tom Tromey. ;; ;; This file isn't part of Emacs. It's licence is GPL version 2, or (at your ;; option) any later version. The copyright has been assigned to the FSF. (defun c-warning-face-on-// () (font-lock-add-keywords 'c-mode '(("//" . font-lock-warning-face)))) (add-hook 'c-initialization-hook 'c-warning-face-on-//) (defvar c-disable-line-comments t "Is t when line comments in C Mode are disabled, nil otherwise. Note that this variable is NOT buffer local.") (defun c-disable-line-comments (arg) "Toggle the disablement of line comments in every C Mode buffer. With a non-nil argument \(which must be numeric), disable comments when it's positive, reenable them when negative. \(Incidentally, the delimiter \"//\" gets fontified with font-lock-warning-face when \"//\" is disabled, but this defun doesn't do this." (interactive "P") (setq c-disable-line-comments (cond ((null arg) (not c-disable-line-comments)) ((> (prefix-numeric-value arg) 0) t) (t nil))) (if c-disable-line-comments (progn (modify-syntax-entry ?/ ". 14" c-mode-syntax-table) (modify-syntax-entry ?\n " " c-mode-syntax-table) (modify-syntax-entry ?\r " " c-mode-syntax-table)) (modify-syntax-entry ?/ ". 124b" c-mode-syntax-table) (modify-syntax-entry ?\n "> b" c-mode-syntax-table) (modify-syntax-entry ?\r "> b" c-mode-syntax-table))) (c-disable-line-comments 1) ;; End of c-disable-line-comments.el ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > Tom -- Alan Mackenzie (Nuremberg, Germany). ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#4192: 23.1; special fontification for "//" in cc-mode 2009-08-21 21:33 ` Alan Mackenzie @ 2016-02-29 3:36 ` Lars Ingebrigtsen 2019-11-01 16:08 ` Lars Ingebrigtsen 0 siblings, 1 reply; 11+ messages in thread From: Lars Ingebrigtsen @ 2016-02-29 3:36 UTC (permalink / raw) To: Alan Mackenzie; +Cc: tromey, 4192 Alan Mackenzie <acm@muc.de> writes: >> This is a feature request for cc-mode. > >> I work on a number of projects that use C89, not C99. In these >> projects, it is invalid to use "//"-style comment. It would be nice if >> cc-mode would optionally flag such comments in a special face, so that >> I can immediately see when I've written a comment incorrectly. > > I'm not sure this is important enough to warrant a fully > implemented/documented/QA'd feature, but then again, I'm not sure it's > not. > > Here's a quick hack called c-disable-line-comments.el. Load it into your > Emacs before CC Mode (in particular, before desktop gets loaded). > > Toggling c-disable-line-comments doesn't work smoothly with the font > locking, but I'm assuming here you'll not really be wanting to toggle > this. I think this sounds useful. For instance, in the Emacs source code, // is also frowned upon, so having those be marked by CC mode would be handy. This doesn't seem to have made its way into the code base, I think. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#4192: 23.1; special fontification for "//" in cc-mode 2016-02-29 3:36 ` Lars Ingebrigtsen @ 2019-11-01 16:08 ` Lars Ingebrigtsen 2019-11-02 16:35 ` Alan Mackenzie [not found] ` <20191102163513.GC6710@ACM> 0 siblings, 2 replies; 11+ messages in thread From: Lars Ingebrigtsen @ 2019-11-01 16:08 UTC (permalink / raw) To: Alan Mackenzie; +Cc: tromey, 4192 Lars Ingebrigtsen <larsi@gnus.org> writes: > Alan Mackenzie <acm@muc.de> writes: > >>> This is a feature request for cc-mode. >> >>> I work on a number of projects that use C89, not C99. In these >>> projects, it is invalid to use "//"-style comment. It would be nice if >>> cc-mode would optionally flag such comments in a special face, so that >>> I can immediately see when I've written a comment incorrectly. >> >> I'm not sure this is important enough to warrant a fully >> implemented/documented/QA'd feature, but then again, I'm not sure it's >> not. >> >> Here's a quick hack called c-disable-line-comments.el. Load it into your >> Emacs before CC Mode (in particular, before desktop gets loaded). >> >> Toggling c-disable-line-comments doesn't work smoothly with the font >> locking, but I'm assuming here you'll not really be wanting to toggle >> this. > > I think this sounds useful. For instance, in the Emacs source code, // > is also frowned upon, so having those be marked by CC mode would be > handy. This doesn't seem to have made its way into the code base, I > think. Alan, have you thought any further about this? It does seem like a nice feature. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#4192: 23.1; special fontification for "//" in cc-mode 2019-11-01 16:08 ` Lars Ingebrigtsen @ 2019-11-02 16:35 ` Alan Mackenzie [not found] ` <20191102163513.GC6710@ACM> 1 sibling, 0 replies; 11+ messages in thread From: Alan Mackenzie @ 2019-11-02 16:35 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: tromey, 4192 Hello, Lars. On Fri, Nov 01, 2019 at 17:08:48 +0100, Lars Ingebrigtsen wrote: > Lars Ingebrigtsen <larsi@gnus.org> writes: > > Alan Mackenzie <acm@muc.de> writes: > >>> This is a feature request for cc-mode. > >>> I work on a number of projects that use C89, not C99. In these > >>> projects, it is invalid to use "//"-style comment. It would be > >>> nice if cc-mode would optionally flag such comments in a special > >>> face, so that I can immediately see when I've written a comment > >>> incorrectly. > >> I'm not sure this is important enough to warrant a fully > >> implemented/documented/QA'd feature, but then again, I'm not sure > >> it's not. > >> Here's a quick hack called c-disable-line-comments.el. Load it into > >> your Emacs before CC Mode (in particular, before desktop gets > >> loaded). > >> Toggling c-disable-line-comments doesn't work smoothly with the font > >> locking, but I'm assuming here you'll not really be wanting to > >> toggle this. > > I think this sounds useful. For instance, in the Emacs source code, > > // is also frowned upon, so having those be marked by CC mode would > > be handy. This doesn't seem to have made its way into the code base, > > I think. > Alan, have you thought any further about this? It does seem like a > nice feature. I'm still not sure either way whether or not this is a feature worth implementing. It may be nice, but it will add bulk to CC Mode and Emacs. But, given that there are people (yourself and Tom Tromey, the OP) who think it worthwhile, I'm willing to implement it. It will not be that difficult, except for deciding what to call the new configuration variable(s). ;-) A couple of hours, perhaps. So, yes, sometime in the very near future, I will implement this. > -- > (domestic pets only, the antidote for overdose, milk.) > bloggy blog: http://lars.ingebrigtsen.no -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <20191102163513.GC6710@ACM>]
* bug#4192: 23.1; special fontification for "//" in cc-mode [not found] ` <20191102163513.GC6710@ACM> @ 2019-11-03 15:55 ` Lars Ingebrigtsen 2019-11-03 17:46 ` Alan Mackenzie [not found] ` <20191103174618.GA11619@ACM> 0 siblings, 2 replies; 11+ messages in thread From: Lars Ingebrigtsen @ 2019-11-03 15:55 UTC (permalink / raw) To: Alan Mackenzie; +Cc: tromey, 4192 Alan Mackenzie <acm@muc.de> writes: > So, yes, sometime in the very near future, I will implement this. Great! -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#4192: 23.1; special fontification for "//" in cc-mode 2019-11-03 15:55 ` Lars Ingebrigtsen @ 2019-11-03 17:46 ` Alan Mackenzie [not found] ` <20191103174618.GA11619@ACM> 1 sibling, 0 replies; 11+ messages in thread From: Alan Mackenzie @ 2019-11-03 17:46 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: tom, 4192 Hello, Lars. On Sun, Nov 03, 2019 at 16:55:42 +0100, Lars Ingebrigtsen wrote: > Alan Mackenzie <acm@muc.de> writes: > > So, yes, sometime in the very near future, I will implement this. > Great! Would you (and anybody else) please review the following patch. Short instructions on how to enable the feature are in the NEWS alteration; longer ones are in the cc-mode.texi bit: diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 217261090b..5ee5540284 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -1149,7 +1149,9 @@ Minor Modes @table @asis @item comment style This specifies whether comment commands (such as @kbd{M-;}) insert -block comments or line comments. +block comments or line comments.@footnote{You can emphasize +non-default style comments in your code by giving their delimiters +@code{font-lock-warning-face}. @xref{Wrong Comment Style}.} @item electric mode When this is enabled, certain visible characters cause reformatting as they are typed. This is normally helpful, but can be a nuisance when @@ -1866,6 +1868,7 @@ Font Locking * Font Locking Preliminaries:: * Faces:: * Doc Comments:: +* Wrong Comment Style:: * Misc Font Locking:: * AWK Mode Font Locking:: @end menu @@ -2069,7 +2072,7 @@ Faces @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -@node Doc Comments, Misc Font Locking, Faces, Font Locking +@node Doc Comments, Wrong Comment Style, Faces, Font Locking @comment node-name, next, previous, up @section Documentation Comments @cindex documentation comments @@ -2149,7 +2152,29 @@ Doc Comments contributing it: send a note to @email{bug-cc-mode@@gnu.org}. @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -@node Misc Font Locking, AWK Mode Font Locking, Doc Comments, Font Locking +@node Wrong Comment Style, Misc Font Locking, Doc Comments, Font Locking +@comment node-name, next, previous, up +@section Marking ''Wrong'' style comments +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +Most languages supported by @ccmode{} have two styles of comments, +namely block comments and line comments. Your project may have such a +strong preference for one of them, that you wish ''wrong'' style +comments to be clearly marked. + +You can get @ccmode{} to do this by setting the default comment style, +if necessary, (@pxref{Minor Modes}) and setting the customizable +option @code{c-mark-wrong-style-of-comment} to non-@code{nil}. + +@defvar c-mark-wrong-style-of-comment +@vindex mark-wrong-style-of-comment (c-) +When this customizable option is non-@code{nil}, comment delimiters +which aren't of the default style will be fontified with +@code{font-lock-warning-face}. +@end defvar + +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +@node Misc Font Locking, AWK Mode Font Locking, Wrong Comment Style, Font Locking @comment node-name, next, previous, up @section Miscellaneous Font Locking @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/etc/NEWS b/etc/NEWS index 033cb48978..56faf13281 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2215,6 +2215,14 @@ file-local variable, you may need to update the value. *** Declare 'define-overload' and 'define-child-mode' as obsolete *** Rename several internal functions to use a ''mode-local-' prefix +** CC Mode + ++++ +*** You can now flag the "wrong style" of comments with +font-lock-warning-face. To do this, use c-toggle-comment-style, if +needed, to set the desired default comment style (block or line); then +set the option c-mark-wrong-style-of-comment to non-nil. + \f * New Modes and Packages in Emacs 27.1 diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index c27b70603e..0daea8c84c 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -95,6 +95,7 @@ ;; during compilation. (cc-bytecomp-defvar c-preprocessor-face-name) (cc-bytecomp-defvar c-reference-face-name) +(cc-bytecomp-defvar c-block-comment-flag) (cc-bytecomp-defun c-fontify-recorded-types-and-refs) (cc-bytecomp-defun c-font-lock-declarators) (cc-bytecomp-defun c-font-lock-objc-method) @@ -532,7 +533,12 @@ c-fontify-recorded-types-and-refs (sws-depth (c-lang-const c-syntactic-ws-depth)) (nsws-depth (c-lang-const c-nonempty-syntactic-ws-depth))) - `(;; The stuff after #error and #warning is a message, so + `(;; Fontify "invalid" comment delimiters + ,@(when (and (c-lang-const c-block-comment-starter) + (c-lang-const c-line-comment-starter)) + `(c-maybe-font-lock-wrong-style-comments)) + + ;; The stuff after #error and #warning is a message, so ;; fontify it as a string. ,@(when (c-lang-const c-cpp-message-directives) (let* ((re (c-make-keywords-re 'appendable ; nil @@ -715,6 +721,59 @@ c-font-lock-invalid-single-quotes (parse-partial-sexp end limit nil nil state 'syntax-table))) nil) +(defun c-maybe-font-lock-wrong-style-comments (limit) + ;; This function will be called from font-lock-for a region bounded by POINT + ;; and LIMIT, as though it were to identify a keyword for + ;; font-lock-keyword-face. It always returns NIL to inhibit this and + ;; prevent a repeat invocation. See elisp/lispref page "Search-based + ;; Fontification". + ;; + ;; This function fontifies "invalid" comment delimiters with + ;; `font-lock-warning-face'. A delimiter is "invalid" when + ;; `c-mark-wrong-style-of-comment' is non-nil, and the delimiter style is + ;; not the default specified by `c-block-comment-flag'. + (when c-mark-wrong-style-of-comment + (let* ((lit (c-semi-pp-to-literal (point))) + (s (car lit)) ; parse-partial-sexp state. + ) + ;; First, deal with and move out of any literal we start in. + (cond + ((null (cadr lit))) ; Not in a literal + ((eq (cadr lit) 'string) + (setq s (parse-partial-sexp (point) limit nil nil s 'syntax-table))) + ((and (not c-block-comment-flag) ; In an "invalid" block comment + (eq (cadr lit) 'c)) + (setq s (parse-partial-sexp (point) limit nil nil s 'syntax-table)) + ;; Font lock the block comment ender with warning face. + (when (not (nth 4 s)) + (c-put-font-lock-face (- (point) (length c-block-comment-ender)) + (point) font-lock-warning-face))) + (t ; In a line comment, or a "valid" block comment + (setq s (parse-partial-sexp (point) limit nil nil s 'syntax-table)))) + + (while (< (point) limit) + (setq s (parse-partial-sexp (point) limit nil nil s 'syntax-table)) + (cond + ((or (nth 3 s) ; In a string + (and (nth 4 s) ; In a comment + (eq (nth 7 s) ; Comment style + (if c-block-comment-flag + nil ; Block comment + 1)))) ; Line comment + ;; Move over a "valid" literal. + (setq s (parse-partial-sexp (point) limit nil nil s 'syntax-table))) + ((nth 4 s) ; In an invalid comment + ;; Fontify the invalid comment opener. + (c-put-font-lock-face (nth 8 s) (point) font-lock-warning-face) + ;; Move to end of comment or LIMIT. + (setq s (parse-partial-sexp (point) limit nil nil s 'syntax-table)) + ;; Fontify an invalid block comment ender, if that's what we have. + (when (and (not c-block-comment-flag) + (not (nth 4 s))) ; We're outside the comment + (c-put-font-lock-face (- (point) (length c-block-comment-ender)) + (point) font-lock-warning-face))))))) + nil) + (c-lang-defconst c-basic-matchers-before "Font lock matchers for basic keywords, labels, references and various other easily recognizable things that should be fontified before generic diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index 60ad42f24f..273174e041 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el @@ -1751,6 +1751,14 @@ c-make-macro-with-semi-re c-macro-names-with-semicolon: %s" c-macro-names-with-semicolon)))))) +(defcustom c-mark-wrong-style-of-comment nil + "Fontify \"invalid\" comment delims with `font-lock-warning-face' if non-nil. +\"Invalid\" means a line comment when the default comment style (set by +`c-toggle-comment-style') is block, or a block comment otherwise." + :type 'boolean + :group 'c + :version 27.1) + (defvar c-file-style nil "Variable interface for setting style via File Local Variables. In a file's Local Variable section, you can set this variable to a > -- > (domestic pets only, the antidote for overdose, milk.) > bloggy blog: http://lars.ingebrigtsen.no -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply related [flat|nested] 11+ messages in thread
[parent not found: <20191103174618.GA11619@ACM>]
* bug#4192: 23.1; special fontification for "//" in cc-mode [not found] ` <20191103174618.GA11619@ACM> @ 2019-11-03 17:59 ` Eli Zaretskii 2019-11-03 19:20 ` Alan Mackenzie 2019-11-07 20:11 ` Lars Ingebrigtsen 1 sibling, 1 reply; 11+ messages in thread From: Eli Zaretskii @ 2019-11-03 17:59 UTC (permalink / raw) To: Alan Mackenzie; +Cc: larsi, tom, 4192 > Date: Sun, 3 Nov 2019 17:46:18 +0000 > From: Alan Mackenzie <acm@muc.de> > Cc: tom@tromey.com, 4192@debbugs.gnu.org > > -block comments or line comments. > +block comments or line comments.@footnote{You can emphasize @footnote should begin before the period. > +@section Marking ''Wrong'' style comments Why are you quoting ''like this'' in Texinfo? > +*** You can now flag the "wrong style" of comments with > +font-lock-warning-face. To do this, use c-toggle-comment-style, if > +needed, to set the desired default comment style (block or line); then > +set the option c-mark-wrong-style-of-comment to non-nil. Please make the first line a complete sentence, so that Outline mode displays this sensibly. Thanks. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#4192: 23.1; special fontification for "//" in cc-mode 2019-11-03 17:59 ` Eli Zaretskii @ 2019-11-03 19:20 ` Alan Mackenzie 0 siblings, 0 replies; 11+ messages in thread From: Alan Mackenzie @ 2019-11-03 19:20 UTC (permalink / raw) To: Eli Zaretskii; +Cc: larsi, tom, 4192 Hello, Eli. Thanks for doing these routine checks. On Sun, Nov 03, 2019 at 19:59:24 +0200, Eli Zaretskii wrote: > > Date: Sun, 3 Nov 2019 17:46:18 +0000 > > From: Alan Mackenzie <acm@muc.de> > > Cc: tom@tromey.com, 4192@debbugs.gnu.org > > -block comments or line comments. > > +block comments or line comments.@footnote{You can emphasize > @footnote should begin before the period. OK. > > +@section Marking ''Wrong'' style comments > Why are you quoting ''like this'' in Texinfo? I was under the mistaken impression this was correct. There are several such occurrences in cc-mode.texi. I will correct them. > > +*** You can now flag the "wrong style" of comments with > > +font-lock-warning-face. To do this, use c-toggle-comment-style, if > > +needed, to set the desired default comment style (block or line); then > > +set the option c-mark-wrong-style-of-comment to non-nil. > Please make the first line a complete sentence, so that Outline mode > displays this sensibly. OK. > Thanks. I'll fix all these things before committing the change. Thanks. -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#4192: 23.1; special fontification for "//" in cc-mode [not found] ` <20191103174618.GA11619@ACM> 2019-11-03 17:59 ` Eli Zaretskii @ 2019-11-07 20:11 ` Lars Ingebrigtsen 2019-11-09 12:20 ` Alan Mackenzie 1 sibling, 1 reply; 11+ messages in thread From: Lars Ingebrigtsen @ 2019-11-07 20:11 UTC (permalink / raw) To: Alan Mackenzie; +Cc: tom, 4192 Alan Mackenzie <acm@muc.de> writes: > Would you (and anybody else) please review the following patch. Short > instructions on how to enable the feature are in the NEWS alteration; > longer ones are in the cc-mode.texi bit: Looks nice. The only confusing thing is that the `C-c C-k' doesn't immediately flush the fontifying, so there's no feedback until you start typing. It'd be nice if `C-c C-k' immediately fontified the "wrong" comment style. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#4192: 23.1; special fontification for "//" in cc-mode 2019-11-07 20:11 ` Lars Ingebrigtsen @ 2019-11-09 12:20 ` Alan Mackenzie 0 siblings, 0 replies; 11+ messages in thread From: Alan Mackenzie @ 2019-11-09 12:20 UTC (permalink / raw) To: Lars Ingebrigtsen; +Cc: 4192-done, tom Hello, Lars. On Thu, Nov 07, 2019 at 21:11:14 +0100, Lars Ingebrigtsen wrote: > Alan Mackenzie <acm@muc.de> writes: > > Would you (and anybody else) please review the following patch. Short > > instructions on how to enable the feature are in the NEWS alteration; > > longer ones are in the cc-mode.texi bit: > Looks nice. Thanks for the review. > The only confusing thing is that the `C-c C-k' doesn't immediately > flush the fontifying, so there's no feedback until you start typing. > It'd be nice if `C-c C-k' immediately fontified the "wrong" comment > style. Yes. You're right. I've amended the code so that this toggling of the fontification of the "wrong" comments is now done instantly. I've committed the change (including the amendments to the NEWS and cc-mode.texi hunks requested by Eli), and I'm closing the bug with this post. > -- > (domestic pets only, the antidote for overdose, milk.) > bloggy blog: http://lars.ingebrigtsen.no -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2019-11-09 12:20 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-08-18 16:24 bug#4192: 23.1; special fontification for "//" in cc-mode Tom Tromey 2009-08-21 21:33 ` Alan Mackenzie 2016-02-29 3:36 ` Lars Ingebrigtsen 2019-11-01 16:08 ` Lars Ingebrigtsen 2019-11-02 16:35 ` Alan Mackenzie [not found] ` <20191102163513.GC6710@ACM> 2019-11-03 15:55 ` Lars Ingebrigtsen 2019-11-03 17:46 ` Alan Mackenzie [not found] ` <20191103174618.GA11619@ACM> 2019-11-03 17:59 ` Eli Zaretskii 2019-11-03 19:20 ` Alan Mackenzie 2019-11-07 20:11 ` Lars Ingebrigtsen 2019-11-09 12:20 ` Alan Mackenzie
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.