[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Extending define-derived-mode
From: |
Eli Zaretskii |
Subject: |
Re: Extending define-derived-mode |
Date: |
Thu, 01 Jun 2023 08:47:19 +0300 |
> From: Yuan Fu <casouri@gmail.com>
> Date: Wed, 31 May 2023 13:48:56 -0700
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>,
> emacs-devel@gnu.org,
> mickey@masteringemacs.org,
> theo@thornhill.no,
> dgutov@yandex.ru
>
> > This is not simple in practice. Ask yourself why don't the
> > FOO-ts-mode's simply run the (existing) hooks of FOO-mode? Look at
> > the code, and you will understand: the stuff people put in these hooks
> > usually customizes aspects that are very different in each of the
> > modes: font-lock, indentation, syntax tables, supporting "electric"
> > sub-modes, styles of comments and other things, etc. The few places
> > where the new TS modes tried to run the same hooks and share most of
> > the initialization code (for example, bash-ts-mode and sh-mode,
> > python-ts-mode and python-mode) introduced subtle bugs which were only
> > recently fixed. One problem with inheriting from the same base mode
> > is that doing initialization there could be problematic because the
> > mode stuff that gets automatically instantiated and initialized by
> > define-derived-mode, such as the mode's map and variable, is not yet
> > set up when the base mode's initialization runs, so you cannot do some
> > of the things we are used to do there, like setting up the menu-bar
> > menus.
> >
> > So it would seem that, for efficient and convenient facilities of this
> > kind, we need some way of defining stuff in the base mode, which will
> > be actually run later, when the child mode is set up.
>
> I don’t entirely understand the example. Say I have a xxx-base-mode, and I
> want to setup menu-bar menus in it to be shared by xxx-mode and xxx-ts-mode.
> What is the problem that I’m gonna run into? Couldn’t you just use the
> base-mode’s keymap?
A base mode usually doesn't have a map, only the actually used derived
modes do.
- Re: Extending define-derived-mode, (continued)
Re: Extending define-derived-mode, Yuan Fu, 2023/06/02
Re: Extending define-derived-mode, Theodor Thornhill, 2023/06/01
Re: Extending define-derived-mode,
Eli Zaretskii <=
Re: Extending define-derived-mode, Philip Kaludercic, 2023/06/05