GNU bug report logs -
#14003
24.3.50; sgml-mode: support angle brackets inside jsp tags
Previous Next
Reported by: Dmitry Gutov <dgutov <at> yandex.ru>
Date: Wed, 20 Mar 2013 03:40:02 UTC
Severity: normal
Found in version 24.3.50
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
sgml-mode has some support for preprocessing tags.
When it sees tags with percent characters inside (<% hello! %>), it says
that the tag's type is `jsp'.
The templating engine may be different (e.g. ERB or EJS), but all of
these examples can have arbitrary code inside, including angle brackets,
usually serving as comparison operators.
Before revno:111900, only having "<" inside a `jsp' tag was a problem:
it broke indentation on the following lines, until a closing containing
tag. With the aforementioned revision, having either "<" or ">" inside a
`jsp' tag breaks string highlighting, because they changes the depth in
parens returned by (syntax-ppss).
So, the previously discussed general problem
(http://lists.gnu.org/archive/html/emacs-devel/2012-06/msg00238.html)
got worse in practice.
I think we can make it better in this specific case without solving it
in general, and doing it for html-mode would be a big win.
Roughly, I propose to add a rule in sgml-syntax-propertize-function that
would forcibly mark all angle brackets between <% and %> as punctuation
syntax. Testing it with
(with-silent-modifications
(put-text-property (point) (1+ (point))
'syntax-table (string-to-syntax ".")))
seems to help both with highlighting and indentation.
Before I started writing this text, I had another approach in mind, but
this is something that I can probably do in mmm-mode instead, without
changing sgml-mode, by wrapping submodes' syntax-propertize-functions.
Still, doing it sgml-mode should be simpler.
Thoughts?
This bug report was last modified 12 years and 54 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.