From: Heime via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org>
To: Arash Esbati <arash@gnu.org>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Mode hooks for latex and tex files
Date: Mon, 02 Dec 2024 20:29:34 +0000 [thread overview]
Message-ID: <HWx8y-TcHZuvuLwxDcU5sZxIbplPWGqG3qtHAOx3CXvrRm8gx6euYh30ET1dFduw8-whLUfqj541yq_n8kQw8FXfmtTEXjUCZ30-h6LHQ9c=@protonmail.com> (raw)
In-Reply-To: <m2y10xyh3m.fsf@macmutant.fritz.box>
On Tuesday, December 3rd, 2024 at 8:17 AM, Arash Esbati <arash@gnu.org> wrote:
> Heime heimeborgia@protonmail.com writes:
>
> > On Tuesday, December 3rd, 2024 at 1:17 AM, Arash Esbati arash@gnu.org wrote:
> >
> > > The only point you have to consider is that there are 2 major modes for
> > > editing plain-tex and latex files:
> > >
> > > • The modes bundled with Emacs (in tex-mode.el, do
> > > 'M-x locate-library RET tex-mode RET') and
> > >
> > > • the modes provided by AUCTeX (a package you must install from ELPA
> > > first).
> > >
> > > If you're using the former, use `plain-tex-mode-hook' or`
> > > latex-mode-hook', and with the latter, set `plain-TeX-mode-hook' or`
> > > LaTeX-mode-hook'.
> > >
> > > `tex-mode-hook' and` TeX-mode-hook' are sort of meta-modes and not
> > > intended for end users, so don't set them.
> >
> > AUCTeX introduces unnecessary complexity by deviating from standard
> > naming conventions for tool-related modes.
>
>
> Which naming conventions are you referring to and where are they
> described? The ones I'm aware of are written here[1] which read:
>
> You should choose a short word to distinguish your program from other
> Lisp programs. The names of all global symbols in your program, that
> is the names of variables, constants, and functions, should begin with
> that chosen prefix. Separate the prefix from the rest of the name with
> a hyphen, ‘-’. This practice helps avoid name conflicts, since all
> global variables in Emacs Lisp share the same name space, and all
> functions share another name space.
>
> AUCTeX uses camel-case prefix based on the file names, a sort of
> MyLib-varname. As another example, you can grep through the gnus
> sub-directory to see that not every hook defined there is prefixed with
> 'gnus-'.
>
> > Instead of adhering to the typical package-prefixed predicate style
> > (e.g., auctex-tex-mode and auctex-latex-mode), it opts for
> > inconsistent and unintuitive names.
>
>
> This is one opinion; but AUCTeX developers had another one for the
> prefix they used.
> > The use of plain-tex-mode instead of a unified tex-mode (as seen with
> > latex-mode) adds further redundancy. Meta-modes not intended for
> > direct user interaction should avoid using intuitive and general names
> > like tex-mode, reserving such names for user-facing
> > functionality. This inconsistency is unique to AUCTeX;
>
>
> The mode names above (and the corresponding hooks) are all defined in
> tex-mode.el which is distributed with Emacs; they don't belong to
> AUCTeX:
>
> $ grep define-derived-mode tex-mode.el
> (define-derived-mode tex-mode text-mode "generic-TeX"
> (define-derived-mode plain-tex-mode tex-mode "TeX"
> (define-derived-mode latex-mode tex-mode "LaTeX"
> (define-derived-mode slitex-mode latex-mode "SliTeX"
> (define-derived-mode tex-shell shell-mode "TeX-Shell"
> (define-derived-mode doctex-mode latex-mode "DocTeX"
>
> As you can see, tex-mode.el breaks every "rule" you think you're
> describing with "typical package-prefixed predicate style". A "mylib-"
> prefix might be a natural choice for single file libraries, but it isn't
> a must as long you get the prefix right.
Correct, it breaks every rule. Instead of a prefix, the AUCTeX developers
decided upon a camel-case variant. Their package does not fit nicely with
emacs development preferred way.
> > I am also interested in the made hooks. Would the built-in be
> > plain-tex-mode-hook and latex-mode-hook? Is there also tex-mode-hook?
>
>
> Did you read my first message?
>
> Best, Arash
>
> Footnotes:
> [1] https://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Coding-Conventions
next prev parent reply other threads:[~2024-12-02 20:29 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-30 19:55 Mode hooks for latex and tex files Heime via Users list for the GNU Emacs text editor
2024-12-01 14:43 ` Jean Louis
2024-12-01 14:58 ` Heime via Users list for the GNU Emacs text editor
2024-12-01 21:20 ` Heime via Users list for the GNU Emacs text editor
2024-12-02 10:17 ` Jean Louis
2024-12-02 11:13 ` Joel Reicher
2024-12-02 13:17 ` Arash Esbati
2024-12-02 15:58 ` Heime via Users list for the GNU Emacs text editor
2024-12-02 16:15 ` Heime via Users list for the GNU Emacs text editor
2024-12-02 20:17 ` Arash Esbati
2024-12-02 20:29 ` Heime via Users list for the GNU Emacs text editor [this message]
2024-12-02 20:38 ` Arash Esbati
2024-12-02 20:44 ` Heime via Users list for the GNU Emacs text editor
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='HWx8y-TcHZuvuLwxDcU5sZxIbplPWGqG3qtHAOx3CXvrRm8gx6euYh30ET1dFduw8-whLUfqj541yq_n8kQw8FXfmtTEXjUCZ30-h6LHQ9c=@protonmail.com' \
--to=help-gnu-emacs@gnu.org \
--cc=arash@gnu.org \
--cc=heimeborgia@protonmail.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 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.