Subject: bug#18378: closed (Re: bug#18378: [Patch] wrong fontification of Java code)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 23 Feb 2020 12:51:02 +0000

Your bug report

#18378: wrong fontification of Java code

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
18378: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18378
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#18378: [Patch] wrong fontification of Java code
From: Alan Mackenzie <[email-masked]>
To: Stefan Kangas <[email-masked]>
Cc: Jordon Biondo <[email-masked]>, [email-masked], Paul Pogonyshev <[email-masked]>
Date: Sun, 23 Feb 2020 12:50:37 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, all.

I've committed a fix to this bug to the emacs-27 branch at savannah.
I'm closing the bug with this post.

-- 
Alan Mackenzie (Nuremberg, Germany).

On Mon, Jan 20, 2020 at 22:16:46 +0100, Stefan Kangas wrote:
> Hi Alan,

> Could you please help review the below patch for cc-fonts.el?

> Thanks in advance.

> Best regards,
> Stefan Kangas

> Paul Pogonyshev <[email-masked]> writes:

> > class X
> > {
> >     public void x ()
> >     {
> >         for (int this_is_not_a_function_name : getX ()) {
> >         }
> >     }
> > }

> > In current trunk (compiled five minutes ago)
> > 'this_is_not_a_function_name' above is fontified as a function
> > name. This seems to depend on whether I have '()' after 'getX' or
> > not.

> > Paul

> Jordon Biondo <[email-masked]> writes:

> > I have a potential solution for this bug, as it has impacted me as well.

> > Not sure what the best solution would be but I have included a patch that does
> > solve the problem. From what I can tell there are no tests for java
> > fortification but I have not seen any issues arising in my own java
> > projects. The issue was that in java, a “:” can mark the end of a declaration in
> > a foreach, not just a “;” or “,”.

> > === modified file 'lisp/ChangeLog'
> > *** lisp/ChangeLog	2014-09-01 15:03:45 +0000
> > --- lisp/ChangeLog	2014-09-01 19:11:46 +0000
> > ***************
> > *** 1,3 ****
> > --- 1,8 ----
> > + 2014-09-01  Jordon Biondo  <[email-masked]>
> > + 
> > + 	* progmodes/cc-fonts.el (c-font-lock-declarators): Special
> > + 	case for declarations inside Java foreach loops (Bug#18378)
> > + 
> >   2014-09-01  Eli Zaretskii  <[email-masked]>

> >   	* ls-lisp.el (ls-lisp-use-string-collate)

> > === modified file 'lisp/progmodes/cc-fonts.el'
> > *** lisp/progmodes/cc-fonts.el	2014-08-24 20:50:11 +0000
> > --- lisp/progmodes/cc-fonts.el	2014-09-01 19:11:59 +0000
> > *************** casts and declarations are fontified.  U
> > *** 1116,1123 ****
> >   	    ;; initializing brace lists.
> >   	    (let (found)
> >   	      (while
> > ! 		  (and (setq found (c-syntactic-re-search-forward
> > ! 			     "[;,]\\|\\s)\\|\\'\\|\\(=\\|\\s(\\)" limit t t))
> >   		       (eq (char-before) ?\[)
> >   		       (c-go-up-list-forward))
> >   		     (setq brackets-after-id t))
> > --- 1116,1128 ----
> >   	    ;; initializing brace lists.
> >   	    (let (found)
> >   	      (while
> > !                   (and (setq found (c-syntactic-re-search-forward
> > !                                     (concat "[;,]\\|\\s)\\|\\'\\|\\(=\\|"
> > !                                             (if (c-major-mode-is 'java-mode)
> > !                                                 ":\\|"
> > !                                               "")
> > !                                             "\\s(\\)")
> > !                                     limit t t))
> >   		       (eq (char-before) ?\[)
> >   		       (c-go-up-list-forward))
> >   		     (setq brackets-after-id t))

Subject: wrong fontification of Java code
From: Paul Pogonyshev <[email-masked]>
To: [email-masked]
Date: Mon, 1 Sep 2014 11:48:14 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

class X
{
    public void x ()
    {
        for (int this_is_not_a_function_name : getX ()) {
        }
    }
}

In current trunk (compiled five minutes ago) 'this_is_not_a_function_name'
above is fontified as a function name. This seems to depend on whether I
have '()' after 'getX' or not.

Paul