help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: How to edit "mixed" (e.g. HTML/JavaScript) files?


From: Lennart Borgman (gmail)
Subject: Re: How to edit "mixed" (e.g. HTML/JavaScript) files?
Date: Thu, 08 Mar 2007 17:06:53 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.10) Gecko/20070221 Thunderbird/1.5.0.10 Mnenhy/0.7.5.666

David Hansen wrote:
On Thu, 08 Mar 2007 14:27:12 +0100 Lennart Borgman wrote:

Did you try nXhtml above? It should work OTB. Drawbacks is that it
requires the Emacs 22 beta. Maybe also in the beginning that it uses
nxhtml-mode for XHTML.

nXhtml takes another approach to multiple modes. Since Emacs
actually have no way to restrict a mode to only handle part of a
buffer (not even in Emacs 22) it instead switches mode. See the home
page for more info.

My experiences all come from editing .jsp files.  I doubt this
approach will work here.  Java mode will be totally confused by the
html parts.

Yes, I guess that is right. I therefore have two different approaches. The other approach narrows the buffer and shows just the narrowed part. This is used for embedded css and javascript, but could be used for other things as well.

I have thought about instead of narrowing adding overlays to the part that belongs to the other mode, but I have not got down to actually implement it yet. Doing that could make it look like a mixing of major modes.


Also note that switching the mode may be OK for small files but
complete fortification of a >1k lines file takes some time that
is not acceptable during editing (but i have to admit that i haven't
tried nxhtml yet).

The multi-mode.el approach is to have multiple indirect buffers with
different major modes and it narrows to the region with `point'.
You don't have to run the major-mode command all the time and the
current major mode won't get confused by the rest of the buffer but
indentation can only work within one region.

There are a some more minor glitches (especially font-locking) but i
think it's at least a promising approach.

I guess you mean that it is bad to switch major mode because of that it takes long time, or are there other reasons?

If it is the time to change that is important, what do you believe is that takes too much time?

When it comes to fontification the approach with indirect buffers can not work, unfortunately, since text properties (which are used for fontification) are shared between the buffers. This together with that a major mode wants to fontify the whole buffer makes it impossible as far as I can see. (There is nothing in Emacs 22 beta that can remedy this either.)


I hope this topic will get some more attention after the upcoming
(?) release of Emacs 22.

Yes, that would be good. But I think we need some experiences then about what can work.

As far as I can see switching major mode might not be that bad if it could be applied to a part of a buffer.

Maybe I should say that I just found some glitches in the handling of mode switching between nXhtml mode and PHP mode so I have to find out what that could be. So if someone wants to test then please wait a little while.




reply via email to

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