> 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