Subject: mailing-list for TeXmacs Users
List archive
From : Nicolas Ratier <address@hidden>- To: address@hidden
- Subject: Syntax highlighting of programs with TeXmacs
- Date: Sat, 7 Aug 2021 13:42:28 +0200
Hello,
I propose a solution to include programs in TeXmacs with syntax highlighting for about 100 languages. The programs can also contain Unicode characters.
This solution uses the GNU source-highlight program :
https://www.gnu.org/software/src-highlite/
https://www.gnu.org/software/src-highlite/source-highlight.html
---------------------------------------
For users (Linux) :
---------------------------------------
install the GNU tools, uni2ascii and source-highlight
copy the attached files into a directory
./src2tm.sh test01.ml
which generates a file test01.tm
In TeXmacs : Insert -> Link -> Include test01.tm
---------------------------------------
For developers
---------------------------------------
The output format for generating TeXmacs files is defined in the "texmacs.outlang" file. I preferred to generate the TeXmacs TM format because this format is very close to HTML and it was easier in this case than generating the TeXmacs format in scheme or s-expression STM.
To be precise, the TM format is complicated because of the indentation of the <xxx></xxx> tags, the limitation of the number of characters in width and finally the particular treatment of the blank lines. So I generate a simpler format, which is of course recognized without ambiguity by TeXmacs. The normalization is done at the first save of the file.
Explanations for the src2tm.sh file:
1/ The uni2ascii program allows to manipulate Unicode characters because neither source-highlight, nor TeXmacs take into account UTF8 files. My solution implies a limitation: the source file that we want to include must not contain the pattern:
"@@@_@@@[0-9A-F]+&&&_&&&"
2/ The sed program makes it easy to handle line breaks in the generated file, I just added a blank at the end of each line so that empty lines are no longer empty! (anyway, you can always remove these blanks by a script scheme inside TeXmacs)
Remarks:
1/ If you want to view TeXmacs source code, you have to describe the TeXmacs input format in a texmacs.lang file. This has to be done ... and in your rush, why not also add julia.lang.
2/ There is an API in C++ to call source-highlight, it's not necessarily a good idea to use it, significant development time and source of additional bugs for a minimal improvement. A script scheme to call uni2ascii, source-highlight and include the generated file is enough (do one thing and do it well ... UNIX).
Before asking to include the texmacs.outlang file in the source-highlight distribution, I prefer to propose it to you before, to receive your critics and improvements.
Have a nice vacation,
Nicolas
Attachment:
source-highlight.tar.gz
Description: application/gzip
- Syntax highlighting of programs with TeXmacs, Nicolas Ratier, 08/07/2021
- Re: Syntax highlighting of programs with TeXmacs, vincent douce, 08/13/2021
Archive powered by MHonArc 2.6.19.