On Sun, Dec 18, 2016 at 01:20:26PM +0100, j. van den hoff wrote:
thanks a lot for the new version. regarding the (k)sh syntax filter
I can confirm that the reported problems are gone.
:-)
while testing a bit further I noted that there persists (a so far
seemingly unreported) minor glitch in the tcl syntax filter, it
seems:
I see strange spurious highlighting by reverse video in constructs like
[1G
(the `1G' shows up in reverse video (red in my case))
strangely this happens ony if _not_ in line one. even more strangely
it does also not happen in, e.g.,
[1A
I have encountered the problem when defining constants containing
escape sequences, e.g. like
set gobol {^[[1G}
yes... tcl is harder to parse reliably than it looks, since its
designers chose to use curly-braces to mean (from the user's point of
view) different things. That makes it hard to parse with a lex-based
filter, since matching curly-braces has to be recursive - something
that lex can only approximate with a stack of different states.
For this chunk, my filter tries to see that as a regular expression
because of the "^", and then sees the doubled "[" and decides it can't
be that because the closing curly brace (and end of line) comes before
it finds a valid regex. So it treats the "[" characters specially,
and falls into the "1G" not being a number.
Rather than showing it as an error, I could modify that to just
treat it as a literal (but the downside is that if it were meant
to be a regex, then it would have been an error).
I _could_ rewrite that in C (as I did for perl and ruby) and get
proper recursion...
to move cursor to beginning of line (^[ denoting escape (octal
033)). you can also see the problem with this silly example:
proc 1G {return bla}
puts [1G]
This case is a little different, but again, the leading "1" makes it
think that should be a number, but the "G" tells it that it's not.
note that the reverse video might only appear after deleting and
reinserting the line containing the `[1G' construct.
as an aside: in this example the proc name is furthermore
highlighted as a reserved word (like proc). maybe both problems are
related?
thanks for `vile'
joerg
On Sun, 18 Dec 2016 03:15:10 +0100, Thomas Dickey <address@hidden>
wrote: