auctex-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [AUCTeX-devel] Support for expl3


From: Sean Allred
Subject: Re: [AUCTeX-devel] Support for expl3
Date: Sat, 4 Apr 2015 12:12:31 -0500


On Apr 4, 2015, at 5:31 AM, Mosè Giordano <address@hidden> wrote:

If you agree to release you contributions to AUCTeX under the terms of
GPLv3 and to assign the copyright to FSF, fill this form

   http://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/Copyright/request-assign.future

and follow the instructions in the header.  Keep in mind an assignment
for the AUCTeX package covers only contributions to AUCTeX, but
assignment for the Emacs package covers both Emacs and AUCTeX (and any
other package included in GNU Elpa repository), so you may want to
indicate the Emacs package if you intend to contribute to Emacs or
other GNU Elpa packages as well.

I’ve sent that form in – currently awaiting a response (from both GNU and my employer, as I understand they have to sign something, too).

I understand how expl3 can be regarded as a different dialect from a
TeX point of view, but I meant how treating it as a different dialect
*in AUCTeX* would be helpful *for AUCTeX*. I didn't follow closely
introduction of dialects, but AFAICT dialects are specific to major
modes: `:latex' for `LaTeX-mode', ":texinfo" for `TeX-texinfo-mode',
and `:bibtex' for `bib-cite-minor-mode' (ok, this is a minor mode).
Dialects are useful to specify a style hook should be loaded in a
specific mode and not in another one, but expl3 style hook should be
loaded anyway in any buffer with LaTeX mode when requested, right?  Or
do you think there are cases in which expl3 style hook should not be
loaded?

I perhaps mis-spoke when I said ‘creating a new dialect’ – I’ve learned that I have *no* idea what I’m talking about here (as it relates to the technical organization of AUCTeX), but I am trying to learn :). I stand by the idea that expl3 is its own thing, separate from Plain/LaTeX/ConTeXt, but ‘dialect’ is a confusing word to use given its contextual significance here.

AUCTeX is charged to be an all-encompassing editing solution for TeX-tech in emacs, no?  Is it truly just for authors, or is it also for the new ‘document roles’ being introduced in LaTeX3 as well? As I’ve said, expl3 is not dependent on LaTeX3, but it forms the platform for the ‘programming layer’ of LaTeX3 – in an ideal world where LaTeX3 is in use and we’ve learned to communicate with butterflies, expl3 is an important part of TeX's publishing process.

To this end, any supportive editor should be designed to provide the greatest advantage to the end-user while keeping the actual editing fluid (i.e. it can’t be *too* complex). Given the nature of expl3 and my exploratory work into implementing such a mode (major, minor, or otherwise), I’m becoming more and more solid in my opinion that it would be best served with a new major mode. To name a few examples from my ideas notebook:

  1. completion for standard functions and parsing of new ones (can obviously be done with existing tools in AUCTeX)
  2. direct bindings to create new functions, variables, keyval definitions, property lists, etc., etc. (can also be done with existing tools and a minor mode)
  3. the ability to see which positional argument a brace group corresponds to (I actually have a solution sketch for this one, actually; shouldn’t be done without at least a minor mode)
  4. the ability to pull up online (in-emacs) documentation on official functions (either manually initiated or eldoc-style; I think documentation can be stripped from the expl3 sources)
  5. some level of l3styleguide enforcement (simply not appropriate on the author level)

As you can see, there are definitely elements that can be supported by a minor mode (1, 2, 3, 4), but there are some that can’t – at least not ‘nicely’ (5). Just as an additional note: just because you *can* implement something in a minor mode doesn’t means it makes sense to *actually* do so (2, 3, 4).

Dialects are useful to specify a style hook should be loaded in a
specific mode and not in another one, but expl3 style hook should be
loaded anyway in any buffer with LaTeX mode when requested, right?  Or
do you think there are cases in which expl3 style hook should not be
loaded?

Personally, I don’t think *any* user-level document should support inline expl3 editing. It’s letting the two roles bleed. However, given actual practice, indirect editing à la Org source code blocks (but bound between `\ExplSyntax[On|Off]` instead) wouldn’t be out-of-the question.

Again, these are all just ideas, and I’m perfectly willing to take on the brunt of development here if necessary (pending paperwork), but the ‘philosophy of AUCTeX’ is important here and not something I can answer :)

Best,
Sean

reply via email to

[Prev in Thread] Current Thread [Next in Thread]