@c This is part of the AUCTeX Manual. @c Copyright (C) 2004-2006, 2008, 2009, 2013-2015, @c 2020-2022 Free Software Foundation, Inc. @c See the file auctex.texi for copying conditions. @ifset rawfile @include macros.texi @node Development,,(dir),(dir) @top Future Development of @AUCTeX{} @end ifset The following sections describe future development of @AUCTeX{}. Besides mid-term goals, bug reports and requests we cannot fix or honor right away are being gathered here. If you have some time for Emacs Lisp hacking, you are encouraged to try to provide a solution to one of the following problems. If you don't know Lisp, you may help us to improve the documentation. It might be a good idea to discuss proposed changes on the mailing list of @AUCTeX{} first. @menu * Mid-term Goals:: * Wishlist:: * Bugs:: @end menu @ifset rawfile @node Mid-term Goals @chapter Mid-term Goals @raisesections @end ifset @ifclear rawfile @node Mid-term Goals @section Mid-term Goals @end ifclear @itemize @bullet @item Integration of @previewlatex{} into @AUCTeX{} As of @AUCTeX{} 11.81 @previewlatex{} is a part of @AUCTeX{} in the sense that the installation routines were merged and @previewlatex{} is being packaged with @AUCTeX{}. Further integration will happen at the backend. This involves folding of error parsing and task management of both packages which will ease development efforts and avoid redundant work. @item Error help catalogs Currently, the help for errors is more or less hardwired into @file{latex.el}. For supporting error help in other languages, it would be sensible to instead arrange error messages in language-specific files, make a common info file from all such catalogs in a given language and look the error texts up in an appropriate index. The user would then specify a preference list of languages, and the errors would be looked up in the catalogs in sequence until they were identified. @item Combining @samp{docTeX} with Ref@TeX{} Macro cross references should also be usable for document navigation using Ref@TeX{}. @item Fix remove-style feature Currently @code{TeX-remove-style} implementation isn't good. It is common practice that major mode functions directly add macros and environments via @code{TeX-add-symbols} and @code{LaTeX-add-environments}, but those macros and environments are lost once @code{TeX-remove-style} runs. It is necessary to run major mode function, by e.g.@: @code{normal-mode}, again to recover them, but that makes no point in running @code{TeX-remove-style} itself because major mode function kills all buffer-local variables. As of @AUCTeX{} 12.3, @code{TeX-remove-style} is no longer used by any other codes. @item Factor out syntax propertization from @file{font-latex.el} Syntax propertization is implemented in @file{font-latex.el}. This means that features which depend on syntax parse don't work well for @file{tex-font.el} users and those who disable font lock. Hence syntax propertization should be factored out from @file{font-latex.el} and implemented as a major mode facility. (Texinfo mode is an exception because it already has its own syntax propertize function, which just copies the one available in Emacs built-in texinfo mode.) @item Add documentation Following entries should be included in the document: @itemize @minus @item Variables @code{LaTeX-insert-into-comments}, @code{TeX-translate-location-hook} @item How to use @code{TeX-auto-add-type}, as well as functions and variables generated by that macro. @ifclear rawfile They should be covered in the node @ref{Hacking the Parser}. @end ifclear @item Usage of @ConTeXt{} mode @end itemize @end itemize @node Wishlist @section Wishlist @itemize @bullet @item Enable syntactic font lock for verbatim constructs in @samp{docTeX} mode In @samp{docTeX} mode buffer, @samp{%} sign at the line beginning hinders syntactic font lock of verbatim constructs. This should be improved. @item Simplify tool bar implementation The library @file{toolbar-x.el} was developed as an abstraction layer to absorb difference between XEmacs and @acronym{GNU} Emacs. Now that XEmacs is no longer supported, the library, together with @file{tex-bar.el} as a whole, can be much simplified (or even unified). @item Documentation lookup for macros A parser could gather information about which macros are defined in which @LaTeX{} packages and store the information in a hashtable which can be used in a backend for @code{TeX-doc} in order to open the matching documentation for a given macro. The information could also be used to insert an appropriate @samp{\usepackage} statement if the user tries to insert a macro for which the respective package has not been requested yet. @item Improvements to error reporting Fringe indicators for errors in the main text would be nice. @item A math entry grid A separate frame with a table of math character graphics to click on in order to insert the respective sequence into the buffer (cf. the ``grid'' of @samp{x-symbol}). @item Crossreferencing support It would be nice if you could index process your favorite collection of @file{.dtx} files (such as the @LaTeX{} source), just call a command on arbitrary control sequence, and get either the @acronym{DVI} viewer opened right at the definition of that macro (using Source Specials), or the source code of the @file{.dtx} file. @item Better plain @TeX{} support For starters, @code{LaTeX-math-mode} is not very @LaTeX{}-specific in the first place, and similar holds for indentation and formatting. @item Page count when compiling should (optionally) go to modeline of the window where the compilation command was invoked, instead of the output window. Suggested by Karsten Tinnefeld @email{tinnefeld@@irb.informatik.uni-dortmund.de}. @item Command to insert a macrodefinition in the preamble, without moving point from the current location. Suggested by "Jeffrey C. Ely" @email{ely@@nwu.edu}. @item A database of all commands defined in all stylefiles. When a command or environment gets entered that is provided in one of the styles, insert the appropriate @code{\usepackage} in the preamble. @item A way to add and overwrite math mode entries in style files, and to decide where they should be. Suggested by Remo Badii @email{Remo.Badii@@psi.ch}. @item Create template for (first) line of tabular environment. @item @c FIXME: Already fixed? I think prompting for the master is the intended behaviour. It corresponds to a `shared' value for @code{TeX-master}. There should probably be a `none' value which wouldn't query for the master, but instead disable all features that relies on @code{TeX-master}. This default value for @code{TeX-master} could then be controled with mapping based on the extension. @item Use index files (when available) to speed up @kbd{C-c C-m include @key{RET}}. @item Option not to calculate very slow completions like for @kbd{C-c C-m include @key{RET}}. @item Font menu should be created from @code{TeX-font-list}. @item Installation procedure written purely in emacs lisp. @item Included PostScript files should also be counted as part of the document. @item A nice hierarchical by-topic organization of all officially documented @LaTeX{} macros, available from the menu bar. @item @code{TeX-command-default} should be set from the master file, if not set locally. Suggested by Peter Whaite @email{peta@@cim.mcgill.ca}. @item Make @AUCTeX{} work with @samp{crypt++}. Suggested by Chris Moore @email{Chris.Moore@@src.bae.co.uk}. @item Make @AUCTeX{} work with @samp{longlines}. This would also apply to @previewlatex{}, though it might make sense to unify error processing before attempting this. @item @c FIXME: Already achieved? The @samp{Spell} command should apply to all files in a document. Maybe it could try to restrict to files that have been modified since last spell check? Suggested by Ravinder Bhumbla @email{rbhumbla@@ucsd.edu}. @item Make @key{.} check for abbreviations and sentences ending with capital letters. @item Use Emacs 19 minibuffer history to choose between previewers, and other stuff. Suggested by John Interrante @email{interran@@uluru.Stanford.EDU}. @item Documentation of variables that can be set in a style hook. We need a list of what can safely be done in an ordinary style hook. You can not set a variable that @AUCTeX{} depends on, unless @AUCTeX{} knows that it has to run the style hooks first. Here is the start of such a list. @table @code @item LaTeX-add-environments @item TeX-add-symbols @item LaTeX-add-labels @item LaTeX-add-bibliographies @item LaTeX-largest-level @end table @item Outline should be (better) supported in @TeX{} mode. At least, support headers, trailers, as well as @code{TeX-outline-extra}. @item @code{TeX-header-start} and @code{TeX-trailer-end}. We might want these, just for fun (and outlines) @item Plain @TeX{} and @LaTeX{} specific header and trailer expressions. We should have a way to globally specify the default value of the header and trailer regexps. @item Get closer to original @code{TeX-mode} keybindings. A third initialization file (@file{tex-mode.el}) containing an emulator of the standard @code{TeX-mode} would help convince some people to change to @AUCTeX{}. @item Use markers in @code{TeX-error-list} to remember buffer positions in order to be more robust with regard to line numbers and changed files. @item Finish the Texinfo mode. For one thing, many Texinfo mode commands do not accept braces around their arguments. @item Hook up the letter environment with @file{bbdb.el}. @end itemize @node Bugs @section Bugs @c FIXME: Are those bugs still present? @itemize @bullet @item The style hooks automatically generated by parsing files for @file{example.dtx}, @file{example.sty}, @file{example.drv} and @file{example.bib} all clash. Bad. Clash with hand-written style hooks should be removed by dialect discrimination --- to be checked. @item @kbd{C-c `} should always stay in the current window, also when it finds a new file. @item Do not overwrite emacs warnings about existing auto-save files when loading a new file. @item Maybe the regexp for matching a @TeX{} symbol during parsing should be @samp{"\\\\\\([a-zA-Z]+\\|.\\)"} --- @email{thiemann@@informatik.uni-tuebingen.de} Peter Thiemann. @item @AUCTeX{} should not parse verbatim environments. @item Make @samp{`} check for math context in @code{LaTeX-math-mode}. and simply self insert if not in a math context. @item Make @code{TeX-insert-dollar} more robust. Currently it can be fooled by @samp{\mbox}'es and escaped double dollar for example. @item @c FIXME: Is support for table environment really necessary? Correct indentation for tabbing, table, and math environments. @end itemize @c Local Variables: @c mode: texinfo @c TeX-master: "auctex" @c End: