>     For C++ mode, it doesn't quite work:
>        foo // comment1
>        bar /* comment2 */

>     The // and /* are put in font-lock-comment-delimiter-face (which I find to
>     be useless clutter and makes the text less legible without helping
>     understand the structure), but the */ is left with just
>     font-lock-comment-face.

> That is because comment-end is empty in C++ mode.

> I see there is a variable comment-end-skip, whose doc string suggests
> it ought to be useful for this (but the doc string is not entirely
> clear tome).  But it doesn't seem to be set up in C++ mode.  Should it
> be?

Major modes should set comment-end-skip, like they set comment-start-skip,
but since this variable was new in Emacs-21.1 I had to handle the backward
compatible case where a major mode does not set comment-end-skip, so
comment-end-skip is set to an "educated guess" value (based on comment-end
and "\\s>") if not set already.  This defaulting is done by
comment-normalize-vars which is called at the beginning of all major
comment function.

>     I don't understand the above.  In what way does the current code
>     change what font-lock-comment-face looks like?

> When I added font-lock-comment-delimiter-face, I copied the
> definition of font-lock-comment-face into it, then changed
> the definition o font-lock-comment-face.

> It would be cleaner to leave font-lock-comment-face unchanged and
> define font-lock-comment-text-face with the modified value.
> However, I couldn't make that work.  Adapting the code in
> font-lock-fontify-syntactically-region in a straightforward
> way resulted in incorrect results, and I don't know why.

Without seeing the "straightforward way" code, it's hard to tell.


        Stefan


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to