axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] Vim syntax file


From: Fabio S.
Subject: Re: [Axiom-developer] Vim syntax file
Date: Tue, 12 Nov 2013 15:21:44 +0100 (CET)
User-agent: Alpine 2.02 (DEB 1266 2009-07-14)

Ralph

I still prefer correct spelling.

Oooops!  Sorry...

Just replace the keywords function by:

keywords () {
   echo ")what $1" | $EXE > $1.vim
}

And send my the 4 files.

They are all the same and they read

Unknown option: -nosman
To use a specific workspace use, e.g.: spad -ws -nosman
Goodbye.

Can you first check, whether

 echo ")what domains" | axiom -nosman

produces anything on your computer.

It produces the same three lines as above

In any case, I updated the files: I added syntax for system commands too
and I added instructions to create owns  command syntax files.
Required user intervention is very limited and straightforward and I
think that trying to eliminate it completely can be not worth of and,
also, not completely deterministic, given the "garbage" in output spool
files.

Come on, for FriCAS, my keywords.sh script gets already rid of that
garbage automatically. One just has to play a bit with sed.
Semiautomatic stuff is pretty useless.

The operations.vim doesn't quite match. There are some places where in
your original file you have something like \M~=\m. Since I don't use
vim, I don't understand the differences.

The \M stuff (which today I slightly modified) is somewhat necessary due
to vim handling of regexps, to have a precise control of them regardless
of users' settings.

Could that be added to keywords.sh? Since I don't know vim, I wouldn't
know whether the result is right if I corrected keywords.sh myself.

Sure they can: assuming that you have the files
cat.txt com.txt dom.txt pack.txt op.txt,
you just need


cat cat.txt  | sed  "s/\(^.*$\)/syn keyword axCategories \1/"  > categories.vim
cat com.txt  | sed "s/\s//g" | sed "s/\(^.*$\)/syn match axCommand 
\"\\\\V)\1\\\\m\"/" > commands.vim
cat dom.txt  | sed  "s/\(^.*$\)/syn keyword axDomain \1/" > domains.vim
cat pack.txt | sed  "s/\(^.*$\)/syn keyword axPackages \1/"  > packages.vim
cat op.txt   | sed "s/\\\\/\\\\\\\\/" | sed  "s/\(^[a-zA-Z].*$\)/syn keyword axOperation \1/" | sed  
"s/\(^[^s].*$\)/syn match axOperation \"\\\\V\1\\\\m\"/" > operations.vim

(in fact, this is the content of the little script I added today)

Please note that I also added com.txt which is the output of
)what command

The \V tells the vim regexp engine to take any character literally, except for the backslash. The \m reset to vim standard meaning.
The \m is  necessary only in case there is a trailing \
This doesn't happen in com.txt but it does in op.txt
The other three files contain only keywords character, so we don't need regexp (ie, syn match), which is better.

Fabio



reply via email to

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