unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* How to avoid put-text-property setting buffer modified flag, and messing with the undo history?
@ 2011-06-06 23:12 Wojciech Meyer
  2011-06-06 23:18 ` Lennart Borgman
  2011-06-09 14:15 ` Ehud Karni
  0 siblings, 2 replies; 4+ messages in thread
From: Wojciech Meyer @ 2011-06-06 23:12 UTC (permalink / raw)
  To: emacs-devel


Hi,

I'm trying to dynamically color the buffer using text properties. It
works as follows:

1. I send modified buffer contents to the inferior process

2. Along with the contents I send the location information, what portion
of the buffer has been modified, e.g. for the first time I send whole
buffer and notify the inferior process that whole buffer shall be
invalidated.

3. After that inferior process sends back, syntax information in form of
pair range of characters and type of associated token.

4. Since the inferior process uses specials way of parsing (packrat) it
is efficient way of extracting it, and there is no real latency.

5. The language I am writing mode for allows complete redefinition of
syntax, and modifying it on the fly, so I can't use any of the
conventional ways, or even LALR parsing provided by CEDET is not enough
as it can only can approximate the base syntax, and it will not cope
well with this language.

6. For coloring I use text properties, but they change buffer marking it
as modified and altering undo information, and I don't want that.

How would you implement desired behaviour? How to efficiently workaround
this problem? Is there any other way to change faces of the buffer?
Would overlays be a solution?

Thank you,
Wojciech



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-06-09 15:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-06 23:12 How to avoid put-text-property setting buffer modified flag, and messing with the undo history? Wojciech Meyer
2011-06-06 23:18 ` Lennart Borgman
2011-06-09 14:15 ` Ehud Karni
2011-06-09 15:33   ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).