json-emacs/json-mode

Loss of latex-mode Fontification When Loading Libraries in latex-mode-hook That Require json-mode

gabrylab opened this issue · 3 comments

My actual scenario involves using latex-mode-hook to load some libraries that require json-mode.

I replicated my issue in a MWE:

I have a LaTeX file:

\documentclass{article}
\usepackage{mwe}
\begin{document}

\blindtext

\noindent
\includegraphics[width=.4\textwidth]{example-image-a}\hfill
\includegraphics[width=.4\textwidth]{example-image-b}

\blindtext

\end{document}

If I load it like this:

emacs -Q test.tex

I get this "correct" latex-mode fontification:

enter image description here

I have also a config file (I simplified it to obtain the feature):

(add-hook 'latex-mode-hook
          #'(lambda ()
	      (package-initialize)
	      (require 'json-mode)))

If I load my .tex file like this:

emacs -Q --eval "(load-file \"/tmp/config.el\")" test.tex

I lose latex-mode fontification:

enter image description here

  1. In the last case, to restore correct latex-mode fontification I need to do M-x latex-mode
  2. This problem does not happen with other packages or custom libraries but, in my experience, it happens only for the json-mode package.
  3. If I load json-mode "before" latex-mode I have no problem. E.g. if I modify the config.el file this way:
(package-initialize)
(require 'json-mode)

and I do:

emacs -Q --eval "(load-file \"/tmp/config.el\")" test.tex

I get the correct latex-mode fontification.

Am I doing something wrong or is it some kind of bug in json-mode or in Emacs?

Important note. This didn't happen with previous versions of Emacs. Before upgrading to version 29.2, I was using version 27 and never encountered this issue prior to the upgrade.

I opened a ticket bug fix: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69404

And I was aswered:

Then I suggest to look for the reason in json-mode.el. For example,
this part:

(add-to-list 'magic-fallback-mode-alist '("^[{[]$" . json-mode))

could change the global state when you load json-mode.

Best Regards,

Gabriele

Thank you for reporting this. It was a simple mistake of parenthesis nesting: 7e7934d. Fixed.

Thank you! Will this fix be available from Melpa?

I have tagged it as v1.9.1, so it will soon available from MELPA.