[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Syntax ambiguities in narrowed buffers and multiple major modes: a p
From: |
Alan Mackenzie |
Subject: |
Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution. |
Date: |
Sat, 25 Feb 2017 21:22:36 +0000 |
User-agent: |
Mutt/1.7.2 (2016-11-26) |
Hello, Stefan
On Sat, Feb 25, 2017 at 14:42:06 -0500, Stefan Monnier wrote:
> Sounds fairly close to some of the ideas I toyed with.
Excellent!
> Here are a few comments:
> > o - Ambiguity involved with narrowed regions - sometimes programs and
> > users wish to see syntactic entities (e.g. strings, comments) as
> > though point-min were a syntactically neutral position - other times
> > they want the syntax to be relative to the beginning of the buffer.
> I don't think this need is very serious for users.
> So, I think we should focus on those cases where this is used by Elisp
> code.
I don't really see the distinction between users and code here. If we
implement for one, it will work for the other, won't it?
> > o - There will be two new syntax classes introduced for use in syntax
> > table text properties: "island open" and "island close". Together,
> > these enclose an "island", a region of the buffer syntactically
> > disjoint from the text outside of the region.
> [ I like to consider that strings and comments are also a form of
> "island", although we're probably better off supporting them in
> a special way like we do now. ]
I think that's just confusing the meaning of "island", which I'd like to
keep clear and unambiguous. Something to be decided is how we'd handle
an island within a comment or string.
> I think we should try not to limit ourselves to nesting of islands.
> IOW, we should strive to find a design where a single char can close an
> island and open another one.
That would need just a minor extension of what I set out, I think.
Something like an "island swap" syntax class. This might find use in
languages like lex and yacc.
> > o - narrow-to-region will be given an optional argument which, if set,
> > directs Emacs to make the new region an island. Thus, C-u C-x n n
> > would enable a user to narrow to a "comment within a string" and edit
> > it as though it were a comment.
> How would this work (especially for uses from Elisp)?
> Would it set syntax-table text-properties?
Yes, it would. It would put an island open syntax-table property on the
character before START, and and island close on the character after END.
This would isolate the region syntactically from its surroudings.
> Stefan
--
Alan Mackenzie (Nuremberg, Germany).
- Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution., Alan Mackenzie, 2017/02/25
- Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution., Stefan Monnier, 2017/02/25
- Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution.,
Alan Mackenzie <=
- Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution., Stefan Monnier, 2017/02/26
- Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution., Alan Mackenzie, 2017/02/26
- Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution., Stefan Monnier, 2017/02/26
- Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution., Alan Mackenzie, 2017/02/27
- Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution., Stefan Monnier, 2017/02/27
- Re: Syntax ambiguities in narrowed buffers and multiple major modes: a proposed solution., Stefan Monnier, 2017/02/27