all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Alan Mackenzie <acm@muc.de>
Cc: emacs-devel@gnu.org
Subject: Re: Several Major Modes.
Date: Sun, 17 Nov 2019 23:56:16 +0200	[thread overview]
Message-ID: <d70bd752-eb1c-d39e-a8d9-c897aa6ddb43@yandex.ru> (raw)
In-Reply-To: <20191117160326.GA11551@ACM>

On 17.11.2019 18:03, Alan Mackenzie wrote:
> Hello, Dmitry.
> 
> On Sun, Nov 17, 2019 at 14:48:35 +0200, Dmitry Gutov wrote:
>> Hi Alan,
> 
>> On 16.11.2019 15:10, Alan Mackenzie wrote:
> 
>>>>> You also need to make sure narrowing is available for any purpose
>>>>> required by a major mode.
> 
>>>> Eh, I think it's "available" already, but I'd have to see specific
>>>> examples.
> 
>>> Oh good!  I have to admit I haven't actually seen MMM Mode running,
>>> or at least I don't remember it.
> 
>> I think we won't really know until there's a good change of CC Mode
>> working with MMM Mode, so then people could try and exercise various
>> features. And we'll see what works and what does not.
> 
> Other than CC Mode's handling of syntax-table text properties, what
> precisely is hindering it working in MMM Mode?  (That question's partly
> addressed at myself.)
> 
> [ .... ]

Here's the email you missed. For some reason I can't find it in the 
emacs-devel archive, but it was also addressed to you and Stefan, and 
Stefan received it:

(quote begins)

By the way, I had a thought.

Like, normally font-lock does widen the buffer before fontifying 
anything. So I was wondering, why doesn't this happen between steps iii 
and iv somewhere?

Turns out, the (unless font-lock-dont-widen (widen)) calls are performed 
inside the default values of font-lock-fontify-region-function and 
font-lock-fontify-buffer-function.

But CC Mode sets font-lock-fontify-region-function to a different value, 
and that specific function doesn't include this piece of code. Or 
rather, didn't. The new commit added an unconditional (widen) call.

I think if you simply wrap it in (unless font-lock-dont-widen ...), it 
will improve compatibility with mmm-mode already (without adverse 
effects, I imagine). After that, you could audit if the other (widen) 
calls spread across CC Mode are still necessary. Maybe they're used in 
indentation code (that's also solvable). Maybe also by some other commands.

(quote ends)

This would be the first step. It really comes down to my original request:

diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 73160fc7a4..9b27ee79e9 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -2233,7 +2233,7 @@ c-font-lock-fontify-region
    ;; Type a space in the first blank line, and the fontification of 
the next
    ;; line was fouled up by context fontification.
    (save-restriction
-    (widen)
+    (unless font-lock-dont-widen (widen))
      (let (new-beg new-end new-region case-fold-search)
        (if (and c-in-after-change-fontification
  	       (< beg c-new-END) (> end c-new-BEG))



  reply	other threads:[~2019-11-17 21:56 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20191109144026.20810.76129@vcs0.savannah.gnu.org>
     [not found] ` <20191109144027.DDC3720927@vcs0.savannah.gnu.org>
2019-11-11 16:52   ` master 7362554: Widen around c-font-lock-fontify-region. This fixes bug #38049 Dmitry Gutov
2019-11-11 20:34     ` Alan Mackenzie
2019-11-12 13:36       ` Dmitry Gutov
2019-11-13 21:19         ` Alan Mackenzie
2019-11-13 22:33           ` Dmitry Gutov
2019-11-14 13:42             ` Stefan Monnier
2019-11-14 14:05               ` Dmitry Gutov
2019-11-14 14:29                 ` Eli Zaretskii
2019-11-14 14:35                   ` Dmitry Gutov
2019-11-14 14:48                     ` Eli Zaretskii
2019-11-14 14:50                       ` Dmitry Gutov
2019-11-14 16:08                         ` Eli Zaretskii
2019-11-14 21:07                           ` Dmitry Gutov
2019-11-15  9:31                             ` Eli Zaretskii
2019-11-15 10:24                               ` Dmitry Gutov
2019-11-15 13:00                                 ` Eli Zaretskii
2019-11-14 13:49             ` Eli Zaretskii
2019-11-14 14:08               ` Dmitry Gutov
2019-11-14 14:37             ` Dmitry Gutov
2019-11-14 14:55               ` Stefan Monnier
2019-11-14 15:02                 ` Dmitry Gutov
2019-11-14 15:33                   ` Stefan Monnier
2019-11-14 16:12                 ` Eli Zaretskii
2019-11-14 18:51                   ` Stefan Monnier
2019-11-14 19:19                     ` Eli Zaretskii
2019-11-14 19:48                       ` Dmitry Gutov
2019-11-14 19:56                         ` Eli Zaretskii
2019-11-14 19:59                           ` Dmitry Gutov
2019-11-15  7:34                             ` Eli Zaretskii
2019-11-15  7:52                               ` Dmitry Gutov
2019-11-14 21:29                       ` Stefan Monnier
2019-11-14 21:46                         ` Dmitry Gutov
2019-11-15  9:36                         ` Eli Zaretskii
2019-11-15 10:26                           ` Dmitry Gutov
2019-11-15 23:27                           ` Stefan Monnier
2019-11-16  8:02                             ` Eli Zaretskii
2019-11-17  0:50                               ` Stefan Monnier
2019-11-17  3:33                                 ` Eli Zaretskii
2019-11-17  7:36                             ` Dmitry Gutov
2019-11-17 15:44                               ` Eli Zaretskii
2019-11-17 17:59                                 ` Dmitry Gutov
2019-11-17 18:26                                   ` Eli Zaretskii
2019-11-17 18:35                                     ` Dmitry Gutov
2019-11-14 19:58                 ` Dmitry Gutov
2019-11-14 21:24             ` Several Major Modes. [Was: master 7362554: Widen around c-font-lock-fontify-region. This fixes bug #38049.] Alan Mackenzie
2019-11-14 22:11               ` Dmitry Gutov
2019-11-15 20:10                 ` Several Major Modes Alan Mackenzie
2019-11-15 21:45                   ` Dmitry Gutov
2019-11-16 13:10                     ` Alan Mackenzie
2019-11-17 12:48                       ` Dmitry Gutov
2019-11-17 16:03                         ` Alan Mackenzie
2019-11-17 21:56                           ` Dmitry Gutov [this message]
2019-11-14 13:35           ` master 7362554: Widen around c-font-lock-fontify-region. This fixes bug #38049 Eli Zaretskii
2019-11-15 22:43           ` Dmitry Gutov
2019-11-14 12:02         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d70bd752-eb1c-d39e-a8d9-c897aa6ddb43@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.