Le 11 sept. 07 à 19:27, Brad Miller a écrit :
Alain,
Thanks for the good ideas!
So I think what you are saying is that it would be nice to conditionally include some grammars as a part of the latex grammar depending on which packages you are using. This would have some very good benefits: 1. It would keep package grammars like lstlistings from making the plain latex grammar overly long. 2. This might have some speed benefits for editing as well. 3. It would also make it easy for people to incrementally add new scopes to the grammar that are specific to individual packages without having to modify the plain latex grammar.
This is great. But as far as I know this is not possible in the current version of TM.
Today we have to do things the other way around For example I would have to make an lstlistings grammar that included latex and tex. But this is not good at all since it only would allow me to have the specialized grammar for one particular package.
So, until we get to TM 2.0 or later, or someone tells us how to conditionally include grammars, we have to keep adding to the latex grammar for each package that we want to have scoped.
yes, you made a correct synthesis of my ideas.
But why conditionally include grammars ??
I'm not a specialist of script, regex etc.... but in a first time it's possible to build some grammars like
text.tex text.tex.math text.tex.beamer text.tex.listings text.tex.tikz etc....
And to finish the text.tex.latex by some include like
include = 'text.tex.listings'; ?
Each user can modify the list of the package grammars !
Perhaps I'm wrong ...
About listings, why make a grammar to this package ?
There is a way to turn around the difficulties.
\lstinputlisting[key=value list]{hfile name}
example :
\usepackage{listings} \lstset{language=C} ... \begin{document} \lstinputlisting{main.c} \end{document}
or you can make that
\lstinputlisting[first=10,last=50]{main.c}
It is the only way for me to use listings because I'm french (I need only to include latex code but with accents) and it's impossible to use listings with utf8 actually, so I need to save file with latin1 encoding and to use two encodings latin1 and utf8 is the same file ! (very bad)
I suppose that you need to include java code or python code but there are scopes to verify the syntax of these languages. So why waste time with a difficult grammar and not include the sources of codes.
Regards Alain