emacs-bug-tracker
[Top][All Lists]
Advanced

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

[debbugs-tracker] bug#14003: closed (24.3.50; sgml-mode: support angle b


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#14003: closed (24.3.50; sgml-mode: support angle brackets inside jsp tags)
Date: Mon, 01 Apr 2013 20:47:02 +0000

Your message dated Tue, 02 Apr 2013 00:43:28 +0400
with message-id <address@hidden>
and subject line Re: bug#14003: 24.3.50; sgml-mode: support angle brackets 
inside jsp tags
has caused the debbugs.gnu.org bug report #14003,
regarding 24.3.50; sgml-mode: support angle brackets inside jsp tags
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
14003: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=14003
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.3.50; sgml-mode: support angle brackets inside jsp tags Date: Wed, 20 Mar 2013 07:36:59 +0400
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?



--- End Message ---
--- Begin Message --- Subject: Re: bug#14003: 24.3.50; sgml-mode: support angle brackets inside jsp tags Date: Tue, 02 Apr 2013 00:43:28 +0400 User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130307 Thunderbird/17.0.4
On 01.04.2013 17:32, Stefan Monnier wrote:
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?

I agree doing it in sgml-mode would be simpler.

I've thought about it some more, and looks like it would be incompatible with what mmm-mode is currently doing. One of the latest additions is the composite syntax-propertize-function:

https://github.com/purcell/mmm-mode/blob/master/mmm-region.el#L806

It iterates over the regions and calls syntax-propertize-function of each major mode, passing it the bounds of the region. So adding propertization of angle brackets to sgml-syntax-propertize-function won't help because it won't be called on submode regions.

Wrapping propertize-functions of the submodes with that logic should work fine, though. So I guess I'll just close this bug.

I do think that multi-major-mode support should let us handle
comments/strings in a separate mode (text-mode, by default).   But I'm
not sure if current multi-major-mode packages are up to that task.

Eh, maybe? With some caveats, probably, but delineating subregions based on string/comment status should be doable with a custom matcher function. But it doesn't seem to solve any big problems, AFAICT.

Handling code regions nested inside interpolated regions in strings, which I've posted about in emacs-devel before, would be nice to have, but it's much less of an immediate problem, especially since nobody uses this syntax feature of Ruby in real code much.

Handling it via mmm-mode, at least, is also problematic, because the syntactic state carries between subregions. So the text inside a string subregion will still be highlighted as string:

https://github.com/purcell/mmm-mode/issues/25


--- End Message ---

reply via email to

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