GNU bug report logs - #8933
'js-mode' break single char comment highlighting from 'define-generic-mode'.

Previous Next

Package: emacs;

Reported by: Oleksandr Gavenko <gavenkoa <at> gmail.com>

Date: Fri, 24 Jun 2011 21:24:02 UTC

Severity: normal

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Lawrence Mitchell <wence <at> gmx.li>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#8933: 'js-mode' break single char comment highlighting from
	'define-generic-mode'.
Date: Mon, 27 Jun 2011 10:08:54 +0100
Oleksandr Gavenko wrote:

> I use Emacs 23.3.

Also reproducible in Emacs 24.0.50

>   $ emacs -Q

> Next eval:

> (define-generic-mode my-mode
>   '(?\; ?#)
>   nil nil nil nil)

> And open file with two or more lines:

> ; commented line (1)
> wrongly highlighted line (2)
> another wrongly highlighted line (3)

> After 'M-x my-mode RET' line (1) highlighted as comment line.
> Another line not.

> Then open any .js file so js-mode loaded and back to 'my-mode'
> file and revert it.

> Now all line highlighted as comment lines!

This is because js-mode stomps on the default value of
comment-start and comment-end (rather than using
make-local-variable).  This confuses generic-mode.

Cheers,
Lawrence

Here's a commit-message plus patch.

js-mode: Don't stomp on comment-start/end's default value

* progmodes/js.el (js-mode): Ensure comment-start and comment-end
are local variables (Bug#8933).

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 5bc756e..4b3a2ba 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-27  Lawrence Mitchell  <wence <at> gmx.li>
+
+	* progmodes/js.el (js-mode): Ensure comment-start and comment-end
+	are local variables (Bug#8933).
+
 2011-06-22  Lawrence Mitchell  <wence <at> gmx.li>
 
 	* net/browse-url.el (browse-url-xdg-open): Use 0, rather than nil
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index a0437cc..1bdcb4c 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -3306,8 +3306,8 @@ If one hasn't been set, or if it's stale, prompt for a new one."
        #'js--which-func-joiner)
 
   ;; Comments
-  (setq comment-start "// ")
-  (setq comment-end "")
+  (set (make-local-variable 'comment-start) "// ")
+  (set (make-local-variable 'comment-end) "")
   (set (make-local-variable 'fill-paragraph-function)
        'js-c-fill-paragraph)
 





This bug report was last modified 13 years and 249 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.