From: Dmitrii Korobeinikov <dim1212k@gmail.com>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: Ihor Radchenko <yantar92@gmail.com>, 35419@debbugs.gnu.org
Subject: bug#35419: [O] [Proposal] Buffer Lenses and the Case of Org-Mode (also, Jupyter)
Date: Sun, 5 Apr 2020 16:05:08 +0600 [thread overview]
Message-ID: <CA+Yh0SRnWZrzpva1xoeDHwNyYyt72yAd64=PvYd7uaAJZPzPsg@mail.gmail.com> (raw)
In-Reply-To: <4bb84e9a-7058-3deb-30f0-b4c8f337b116@yandex.ru>
Thank you for the insight and the references! Quite useful to learn
about this stuff.
вс, 5 апр. 2020 г. в 07:46, Dmitry Gutov <dgutov@yandex.ru>:
>
> Hi!
>
> Some late clarifications about mmm-mode.
>
> On 26.04.2019 00:00, Dmitrii Korobeinikov wrote:
> > > A lot of the functionality of MMM Mode---that which makes the major mode
> > > appear to change---is implemented by saving and restoring the values of
> > > local variables, or pseudo-variables.
> >
> > What I don't understand is where the modes of the submode region run and
> > when they are turned on.
>
> They are run in an empty temporary buffer, see mmm-update-mode-info.
> That is true for all the "submodes" in a buffer. The primary major mode
> is run in the context of that buffer (IIRC). After any of them runs, the
> code responsible for it collects the values of a certain number of known
> variables and associates that map with the major mode (this is a bit of
> a simplification).
>
> > Are necessary modes just allowed to run at the right time for the whole
> > buffer?
>
> When you move between the "chunks", no major mode functions are called.
> Instead, the values of variables are swapped in. Including the value of
> the 'major-mode' variable.
>
> > But then, how are they limited in their effect to just the
> > necessary region? Narrowing?
>
> Usually, yes. Especially when we're talking about font-lock and
> syntax-propertize-function. See mmm-fontify-region-list for an example.
>
> > Could, for example, syntax checking be done efficiently that way?
>
> That depends on the combination of modes and how they are used (either
> they can be nested, like in web templates, or it's a flat list where
> chunks are largely independent like in Jupyter). But in most cases, I
> think, you could pick a good strategy. There are no universal ones, though.
prev parent reply other threads:[~2020-04-05 10:10 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-24 19:20 [Proposal] Buffer Lenses and the Case of Org-Mode (also, Jupyter) Dmitrii Korobeinikov
2019-04-25 3:25 ` Ihor Radchenko
[not found] ` <CA+Yh0SQ7yWQBjXhKbJPrCroriNpwhyFyQWAfHsUvxwmojsjKuw@mail.gmail.com>
2019-04-25 1:37 ` bug#35419: " Noam Postavsky
2019-04-25 7:11 ` bug#35419: Fwd: " 'Ihor Radchenko'
[not found] ` <87sgu6rhkt.fsf@gmail.com>
2019-04-25 8:40 ` bug#35419: " Dmitrii Korobeinikov
[not found] ` <CA+Yh0SSvQMucaC1EJR9GBxpKeP6haGiHN+Lf2QYo8csNoy0Waw@mail.gmail.com>
2019-04-25 17:52 ` Philipp Stephani
[not found] ` <CAArVCkQcwnjeMyRU6rpiuvGsOCUOsnQTQwQSGdDFKwQz_Sbi3g@mail.gmail.com>
2019-04-25 21:14 ` Dmitrii Korobeinikov
2019-04-26 12:05 ` Roland Everaert
2019-05-02 21:24 ` bug#35419: " Dmitrii Korobeinikov
2019-05-02 21:31 ` Dmitrii Korobeinikov
2019-04-25 21:00 ` Dmitrii Korobeinikov
[not found] ` <CA+Yh0ST+u0s6L-hR2=rs3O_46FqXn8utGotORx+FMDb7Jn0Rfw@mail.gmail.com>
2020-04-05 1:46 ` bug#35419: [O] " Dmitry Gutov
2020-04-05 10:05 ` Dmitrii Korobeinikov [this message]
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
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CA+Yh0SRnWZrzpva1xoeDHwNyYyt72yAd64=PvYd7uaAJZPzPsg@mail.gmail.com' \
--to=dim1212k@gmail.com \
--cc=35419@debbugs.gnu.org \
--cc=dgutov@yandex.ru \
--cc=yantar92@gmail.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.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).