* bug#18378: wrong fontification of Java code @ 2014-09-01 9:48 Paul Pogonyshev 2014-09-01 19:20 ` bug#18378: [Patch] " Jordon Biondo 0 siblings, 1 reply; 8+ messages in thread From: Paul Pogonyshev @ 2014-09-01 9:48 UTC (permalink / raw) To: 18378 [-- Attachment #1: Type: text/plain, Size: 299 bytes --] 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 [-- Attachment #2: Type: text/html, Size: 429 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18378: [Patch] wrong fontification of Java code 2014-09-01 9:48 bug#18378: wrong fontification of Java code Paul Pogonyshev @ 2014-09-01 19:20 ` Jordon Biondo 2020-01-20 21:16 ` Stefan Kangas 0 siblings, 1 reply; 8+ messages in thread From: Jordon Biondo @ 2014-09-01 19:20 UTC (permalink / raw) To: 18378 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 <jordonbiondo@gmail.com> + + * progmodes/cc-fonts.el (c-font-lock-declarators): Special + case for declarations inside Java foreach loops (Bug#18378) + 2014-09-01 Eli Zaretskii <eliz@gnu.org> * 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)) ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18378: [Patch] wrong fontification of Java code 2014-09-01 19:20 ` bug#18378: [Patch] " Jordon Biondo @ 2020-01-20 21:16 ` Stefan Kangas 2020-01-22 20:59 ` Alan Mackenzie 2020-02-23 12:50 ` Alan Mackenzie 0 siblings, 2 replies; 8+ messages in thread From: Stefan Kangas @ 2020-01-20 21:16 UTC (permalink / raw) To: Alan Mackenzie; +Cc: Jordon Biondo, 18378, Paul Pogonyshev Hi Alan, Could you please help review the below patch for cc-fonts.el? Thanks in advance. Best regards, Stefan Kangas Paul Pogonyshev <pogonyshev@gmail.com> 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 <jordonbiondo@gmail.com> 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 <jordonbiondo@gmail.com> > + > + * progmodes/cc-fonts.el (c-font-lock-declarators): Special > + case for declarations inside Java foreach loops (Bug#18378) > + > 2014-09-01 Eli Zaretskii <eliz@gnu.org> > > * 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)) ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18378: [Patch] wrong fontification of Java code 2020-01-20 21:16 ` Stefan Kangas @ 2020-01-22 20:59 ` Alan Mackenzie 2020-01-23 14:13 ` Stefan Kangas 2020-02-23 12:50 ` Alan Mackenzie 1 sibling, 1 reply; 8+ messages in thread From: Alan Mackenzie @ 2020-01-22 20:59 UTC (permalink / raw) To: Stefan Kangas; +Cc: Jordon Biondo, 18378, Paul Pogonyshev Hello, Stefan. 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? I missed this bug report back in 2014. The code has moved around so much since then that Jordon's patch no longer applies. But a simple patch with the same idea appears to fix this bug: diff -r 3d883b66c245 cc-engine.el --- a/cc-engine.el Tue Jan 07 19:24:00 2020 +0000 +++ b/cc-engine.el Wed Jan 22 20:49:53 2020 +0000 @@ -9025,7 +9025,7 @@ (if (looking-at c-:-op-cont-regexp) (progn (goto-char (match-end 0)) t) (not - (and (c-major-mode-is 'c++-mode) + (and (c-major-mode-is '(c++-mode java-mode)) (save-excursion (and (c-go-up-list-backward) This patch should apply cleanly to the emacs-27 branch, and most probably to master, too. > Thanks in advance. > Best regards, > Stefan Kangas -- Alan Mackenzie (Nuremberg, Germany). > Paul Pogonyshev <pogonyshev@gmail.com> 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 <jordonbiondo@gmail.com> 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 <jordonbiondo@gmail.com> > > + > > + * progmodes/cc-fonts.el (c-font-lock-declarators): Special > > + case for declarations inside Java foreach loops (Bug#18378) > > + > > 2014-09-01 Eli Zaretskii <eliz@gnu.org> > > > > * 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)) ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18378: [Patch] wrong fontification of Java code 2020-01-22 20:59 ` Alan Mackenzie @ 2020-01-23 14:13 ` Stefan Kangas 2020-01-23 18:09 ` Alan Mackenzie 0 siblings, 1 reply; 8+ messages in thread From: Stefan Kangas @ 2020-01-23 14:13 UTC (permalink / raw) To: Alan Mackenzie; +Cc: Jordon Biondo, 18378, Paul Pogonyshev Hi Alan, Alan Mackenzie <acm@muc.de> writes: > I missed this bug report back in 2014. The code has moved around so > much since then that Jordon's patch no longer applies. But a simple > patch with the same idea appears to fix this bug: Thanks for taking a look. With your fix, applied on the master branch, in the example given: class X { public void x () { for (int this_is_not_a_function_name : getX ()) { } } } The "int" no longer has font-lock-type-face. Should it? Best regards, Stefan Kangas ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18378: [Patch] wrong fontification of Java code 2020-01-23 14:13 ` Stefan Kangas @ 2020-01-23 18:09 ` Alan Mackenzie 2020-02-11 20:06 ` Alan Mackenzie 0 siblings, 1 reply; 8+ messages in thread From: Alan Mackenzie @ 2020-01-23 18:09 UTC (permalink / raw) To: Stefan Kangas; +Cc: Jordon Biondo, 18378, Paul Pogonyshev Hello, Stefan. On Thu, Jan 23, 2020 at 15:13:05 +0100, Stefan Kangas wrote: > Hi Alan, > Alan Mackenzie <acm@muc.de> writes: > > I missed this bug report back in 2014. The code has moved around so > > much since then that Jordon's patch no longer applies. But a simple > > patch with the same idea appears to fix this bug: > Thanks for taking a look. > With your fix, applied on the master branch, in the example given: > class X > { > public void x () > { > for (int this_is_not_a_function_name : getX ()) { > } > } > } > The "int" no longer has font-lock-type-face. Should it? That's funny. It has font-lock-type-face for me, in all of emacs-27, master and standalone CC Mode (in master). font-lock-type-face is indeed correct, here. Are you sure you were .... (I don't think I need to fill in the dots for you. ;-) > Best regards, > Stefan Kangas -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18378: [Patch] wrong fontification of Java code 2020-01-23 18:09 ` Alan Mackenzie @ 2020-02-11 20:06 ` Alan Mackenzie 0 siblings, 0 replies; 8+ messages in thread From: Alan Mackenzie @ 2020-02-11 20:06 UTC (permalink / raw) To: Stefan Kangas; +Cc: Jordon Biondo, 18378, Paul Pogonyshev Hello again, Stefan. Ping? -- Alan Mackenzie (Nuremberg, Germany). On Thu, Jan 23, 2020 at 18:09:47 +0000, Alan Mackenzie wrote: > Hello, Stefan. > On Thu, Jan 23, 2020 at 15:13:05 +0100, Stefan Kangas wrote: > > Hi Alan, > > Alan Mackenzie <acm@muc.de> writes: > > > I missed this bug report back in 2014. The code has moved around so > > > much since then that Jordon's patch no longer applies. But a simple > > > patch with the same idea appears to fix this bug: > > Thanks for taking a look. > > With your fix, applied on the master branch, in the example given: > > class X > > { > > public void x () > > { > > for (int this_is_not_a_function_name : getX ()) { > > } > > } > > } > > The "int" no longer has font-lock-type-face. Should it? > That's funny. It has font-lock-type-face for me, in all of emacs-27, > master and standalone CC Mode (in master). font-lock-type-face is indeed > correct, here. > Are you sure you were .... (I don't think I need to fill in the dots for > you. ;-) > > Best regards, > > Stefan Kangas > -- > Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#18378: [Patch] wrong fontification of Java code 2020-01-20 21:16 ` Stefan Kangas 2020-01-22 20:59 ` Alan Mackenzie @ 2020-02-23 12:50 ` Alan Mackenzie 1 sibling, 0 replies; 8+ messages in thread From: Alan Mackenzie @ 2020-02-23 12:50 UTC (permalink / raw) To: Stefan Kangas; +Cc: Jordon Biondo, 18378-done, Paul Pogonyshev 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 <pogonyshev@gmail.com> 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 <jordonbiondo@gmail.com> 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 <jordonbiondo@gmail.com> > > + > > + * progmodes/cc-fonts.el (c-font-lock-declarators): Special > > + case for declarations inside Java foreach loops (Bug#18378) > > + > > 2014-09-01 Eli Zaretskii <eliz@gnu.org> > > * 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)) ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-02-23 12:50 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-09-01 9:48 bug#18378: wrong fontification of Java code Paul Pogonyshev 2014-09-01 19:20 ` bug#18378: [Patch] " Jordon Biondo 2020-01-20 21:16 ` Stefan Kangas 2020-01-22 20:59 ` Alan Mackenzie 2020-01-23 14:13 ` Stefan Kangas 2020-01-23 18:09 ` Alan Mackenzie 2020-02-11 20:06 ` Alan Mackenzie 2020-02-23 12:50 ` Alan Mackenzie
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).