* [Feature Discuss] Nested buffer
@ 2018-07-23 16:03 fei xiaobo
2018-07-23 19:51 ` Stefan Monnier
2018-07-23 20:11 ` Brett Gilio
0 siblings, 2 replies; 19+ messages in thread
From: fei xiaobo @ 2018-07-23 16:03 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 630 bytes --]
Hi all.
I am building a plan to implement *Nested buffer* in Emacs recently. Is it
a good ideal?
Nested buffer what I mean here is the sub-buffers which embedded in a host
buffer.
- Nested/Embed buffer's content is linked to an arbitrary buffer.
- Host buffer's content consists of the content of all the nested
buffers.
If having this, we could embed multiple buffers' content into a host buffer
to get one virtual buffer. And, after updating the nested buffer's content,
the virtual host buffer's content is updated too. I think it will be
helpful for many special plugins.
Appreciated any comments or suggestion.
[-- Attachment #2: Type: text/html, Size: 780 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-23 16:03 [Feature Discuss] Nested buffer fei xiaobo
@ 2018-07-23 19:51 ` Stefan Monnier
2018-07-24 3:33 ` Harry Fei
2018-07-23 20:11 ` Brett Gilio
1 sibling, 1 reply; 19+ messages in thread
From: Stefan Monnier @ 2018-07-23 19:51 UTC (permalink / raw)
To: emacs-devel
> I am building a plan to implement *Nested buffer* in Emacs recently.
> Is it a good idea?
Hard to have an opinion on this without some more detail of the intended
uses (e.g. examples of the "many special plugins") and the way you
intend to do it (e.g. how do you specify which buffer is nested
into which other and more specifically *where* in that other buffer).
My first reaction would be: way too hard to implement.
Stefan
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-23 16:03 [Feature Discuss] Nested buffer fei xiaobo
2018-07-23 19:51 ` Stefan Monnier
@ 2018-07-23 20:11 ` Brett Gilio
2018-07-23 20:31 ` Clément Pit-Claudel
1 sibling, 1 reply; 19+ messages in thread
From: Brett Gilio @ 2018-07-23 20:11 UTC (permalink / raw)
To: fei xiaobo; +Cc: emacs-devel
fei xiaobo writes:
> Hi all.
>
> I am building a plan to implement *Nested buffer* in Emacs
> recently. Is it
> a good ideal?
>
> Nested buffer what I mean here is the sub-buffers which embedded
> in a host
> buffer.
>
> - Nested/Embed buffer's content is linked to an arbitrary
> buffer.
> - Host buffer's content consists of the content of all the
> nested
> buffers.
>
> If having this, we could embed multiple buffers' content into a
> host buffer
> to get one virtual buffer. And, after updating the nested
> buffer's content,
> the virtual host buffer's content is updated too. I think it
> will be
> helpful for many special plugins.
>
> Appreciated any comments or suggestion.
Could you provide a scenario where you would find this feature to
be
useful? I am not casting it off, but I am having a hard time
thinking of
what it could be used for that Emacs doesn't already do.
--
Brett M. Gilio
Free Software Foundation, Member
https://parabola.nu | https://emacs.org
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-23 20:11 ` Brett Gilio
@ 2018-07-23 20:31 ` Clément Pit-Claudel
2018-07-23 23:15 ` Phil Sainty
2018-07-25 2:28 ` Stefan Monnier
0 siblings, 2 replies; 19+ messages in thread
From: Clément Pit-Claudel @ 2018-07-23 20:31 UTC (permalink / raw)
To: emacs-devel
On 2018-07-23 16:11, Brett Gilio wrote:
> Could you provide a scenario where you would find this feature to be
> useful? I am not casting it off, but I am having a hard time thinking of
> what it could be used for that Emacs doesn't already do.
I think anything that was covered by the islands proposals a few months ago would be a good candidate, including mixed-mode buffers (HTML+JS+CSS) and documents that embed code snippets (e.g. org-mode buffers)
It's a very hard problem, though.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-23 20:31 ` Clément Pit-Claudel
@ 2018-07-23 23:15 ` Phil Sainty
2018-07-24 1:24 ` Drew Adams
2018-07-24 16:54 ` Alan Mackenzie
2018-07-25 2:28 ` Stefan Monnier
1 sibling, 2 replies; 19+ messages in thread
From: Phil Sainty @ 2018-07-23 23:15 UTC (permalink / raw)
To: Clément Pit-Claudel; +Cc: Emacs-devel, emacs-devel
On 2018-07-24 08:31, Clément Pit-Claudel wrote:
> I think anything that was covered by the islands proposals
That sprang to my mind too. What is the current state of the
"islands" work? Is it still just a discussion, or is there
code as well?
This new suggestion sounds rather like narrowed indirect buffers
(which we can do already), or perhaps an extension of that facility?
-Phil
^ permalink raw reply [flat|nested] 19+ messages in thread
* RE: [Feature Discuss] Nested buffer
2018-07-23 23:15 ` Phil Sainty
@ 2018-07-24 1:24 ` Drew Adams
2018-07-24 15:22 ` Drew Adams
2018-07-24 16:54 ` Alan Mackenzie
1 sibling, 1 reply; 19+ messages in thread
From: Drew Adams @ 2018-07-24 1:24 UTC (permalink / raw)
To: Phil Sainty, Clément Pit-Claudel; +Cc: Emacs-devel, emacs-devel
> > I think anything that was covered by the islands proposals
>
> This new suggestion sounds rather like narrowed indirect buffers
> (which we can do already), or perhaps an extension of that facility?
The new proposal sounds like nearly anything one might want
to imagine. IOW, it sounds like nothing at all. It needs
to be specified - nailed down quite a bit more, so people
can actually think about it, instead of just imagining stuff.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-23 19:51 ` Stefan Monnier
@ 2018-07-24 3:33 ` Harry Fei
2018-07-24 7:16 ` Óscar Fuentes
0 siblings, 1 reply; 19+ messages in thread
From: Harry Fei @ 2018-07-24 3:33 UTC (permalink / raw)
To: Stefan Monnier, brettg; +Cc: emacs-devel@gnu.org
[-- Attachment #1: Type: text/plain, Size: 2481 bytes --]
- Case 1: Collect multiple narrowed-indirect-buffers to edit together.
- Sometimes, when I am working on a large project repository (Maybe
something like Chromium and AOSP), there are some codes highly related to
each other which spread in multiple files. So I want to collect them
together into a host buffer (embed narrow indirect buffer) when I read
those code. After I understand the logic, I want to edit those
code in this
host buffer directly(the content sync back to the origin buffer). Even
more, I can use other editor functions, eg. string replace.
- Here is the example of the buffer
=============================
Somes Note for the Foo releated code.
This is the Foo struct definition
---- Linked to Foo.h buffer----
struct Foo {
int a,
int b,
}
-----------------------------------------
Some function that use Foot
----------Linked to xxx.c ---------
void f1 (f: Foo) {
......
}
-----------------------------------------
----------Linked to yyy.c ---------
void f2 (f: Foo) {
......
}
-----------------------------------------
=============================
- Case 2: Extend eshell or write a new shell
- I want to execute my processes async in eshell by default. So I can
run multiple processes simultaneously in just one session. The output of
those process will be redirected into their own correlative
buffers. Then I
want to embed those output buffers into the eshell buffer just to fake a
normal shell experience.
- Here is the example (in a Imaginary eshell). The two process's
output is updated simultaneously.
============================================
/home/aaa/work: npm
start
(Enter here to execute non-exitable program)
---------------------- Output of `npm start` ------------------------
XXX server is listen on 8000
request [GET]: .......................
request [GET]: ........................
-------------------------------------------------------------------------------
/home/aaa/work: curl
localhsot:8000/foo
(Then Enter here to execute a curl)
---------------------- Output of `curl localhost:8000.....`
------------------------
...........................
...........................
...........................
...........................
-------------------------------------------------------------------------------
/home/aaa/work: |
(Then we can execute more command here )
============================================
[-- Attachment #2: Type: text/html, Size: 3598 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 3:33 ` Harry Fei
@ 2018-07-24 7:16 ` Óscar Fuentes
2018-07-24 14:33 ` Eli Zaretskii
2018-07-25 2:31 ` Stefan Monnier
0 siblings, 2 replies; 19+ messages in thread
From: Óscar Fuentes @ 2018-07-24 7:16 UTC (permalink / raw)
To: emacs-devel
Harry Fei <tiziyuanfang@gmail.com> writes:
> - Case 1: Collect multiple narrowed-indirect-buffers to edit together.
> - Sometimes, when I am working on a large project repository (Maybe
> something like Chromium and AOSP), there are some codes highly related to
> each other which spread in multiple files. So I want to collect them
> together into a host buffer (embed narrow indirect buffer) when I read
> those code. After I understand the logic, I want to edit those
> code in this
> host buffer directly(the content sync back to the origin buffer). Even
> more, I can use other editor functions, eg. string replace.
Something like this would be very convenient.
In my case, often I have to work on some feature that touches certain
areas of several source files and, at the same time, create and edit
several test cases, each on one file. Having everything on the same
buffer will save lots of buffer switching, while at the same time
providing a compact "work area" that eases reading and editing.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 7:16 ` Óscar Fuentes
@ 2018-07-24 14:33 ` Eli Zaretskii
2018-07-24 14:54 ` Ihor Radchenko
2018-07-24 14:59 ` Óscar Fuentes
2018-07-25 2:31 ` Stefan Monnier
1 sibling, 2 replies; 19+ messages in thread
From: Eli Zaretskii @ 2018-07-24 14:33 UTC (permalink / raw)
To: Óscar Fuentes; +Cc: emacs-devel
> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 24 Jul 2018 09:16:05 +0200
>
> Harry Fei <tiziyuanfang@gmail.com> writes:
>
> > - Case 1: Collect multiple narrowed-indirect-buffers to edit together.
> > - Sometimes, when I am working on a large project repository (Maybe
> > something like Chromium and AOSP), there are some codes highly related to
> > each other which spread in multiple files. So I want to collect them
> > together into a host buffer (embed narrow indirect buffer) when I read
> > those code. After I understand the logic, I want to edit those
> > code in this
> > host buffer directly(the content sync back to the origin buffer). Even
> > more, I can use other editor functions, eg. string replace.
>
> Something like this would be very convenient.
>
> In my case, often I have to work on some feature that touches certain
> areas of several source files and, at the same time, create and edit
> several test cases, each on one file. Having everything on the same
> buffer will save lots of buffer switching, while at the same time
> providing a compact "work area" that eases reading and editing.
Any reason why several windows side by side couldn't serve the same
purpose? (You can disable the mode line if that gets in the way.)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 14:33 ` Eli Zaretskii
@ 2018-07-24 14:54 ` Ihor Radchenko
2018-07-24 15:08 ` Eli Zaretskii
2018-07-25 4:41 ` Van L
2018-07-24 14:59 ` Óscar Fuentes
1 sibling, 2 replies; 19+ messages in thread
From: Ihor Radchenko @ 2018-07-24 14:54 UTC (permalink / raw)
To: Eli Zaretskii, Óscar Fuentes; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 239 bytes --]
> Any reason why several windows side by side couldn't serve the same
> purpose? (You can disable the mode line if that gets in the way.)
>
For example, it would not be possible to fold/hide the content, like in
org-mode or hideshow.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 14:33 ` Eli Zaretskii
2018-07-24 14:54 ` Ihor Radchenko
@ 2018-07-24 14:59 ` Óscar Fuentes
2018-07-24 15:03 ` Óscar Fuentes
2018-07-24 15:14 ` Eli Zaretskii
1 sibling, 2 replies; 19+ messages in thread
From: Óscar Fuentes @ 2018-07-24 14:59 UTC (permalink / raw)
To: emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
>> Something like this would be very convenient.
>>
>> In my case, often I have to work on some feature that touches certain
>> areas of several source files and, at the same time, create and edit
>> several test cases, each on one file. Having everything on the same
>> buffer will save lots of buffer switching, while at the same time
>> providing a compact "work area" that eases reading and editing.
>
> Any reason why several windows side by side couldn't serve the same
> purpose? (You can disable the mode line if that gets in the way.)
That is what I do when the number of affected areas is small, but...
1. The screen has limited space.
2. Arranging the windows takes time and is fragile (commands like
`compile' and derivatives changes the layout, temporally or permanently;
you are forced to use another frame for magit, gnus...).
3. Editing a single buffer is more natural and convenient. Things like
"replace this with that" would be automatically narrowed to the contents
of the virtual buffer.
I see the OP's proposal as a method for achieving narrowing at the file
level (Emacs already has buffer-level narrowing): pick some files, put
them (or parts of them) on the same buffer, and proceed as if you were
working on a mini-project written on a single file.
My first impression about his proposal was kind of "meh", but the more I
think about it, the more interesting it looks.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 14:59 ` Óscar Fuentes
@ 2018-07-24 15:03 ` Óscar Fuentes
2018-07-24 15:14 ` Eli Zaretskii
1 sibling, 0 replies; 19+ messages in thread
From: Óscar Fuentes @ 2018-07-24 15:03 UTC (permalink / raw)
To: emacs-devel
Óscar Fuentes <ofv@wanadoo.es> writes:
> I see the OP's proposal as a method for achieving narrowing at the file
> level
/s/file level/filesystem level/
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 14:54 ` Ihor Radchenko
@ 2018-07-24 15:08 ` Eli Zaretskii
2018-07-25 4:41 ` Van L
1 sibling, 0 replies; 19+ messages in thread
From: Eli Zaretskii @ 2018-07-24 15:08 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: ofv, emacs-devel
> From: Ihor Radchenko <yantar92@gmail.com>
> Cc: emacs-devel@gnu.org
> Date: Tue, 24 Jul 2018 22:54:21 +0800
>
> > Any reason why several windows side by side couldn't serve the same
> > purpose? (You can disable the mode line if that gets in the way.)
> >
>
> For example, it would not be possible to fold/hide the content, like in
> org-mode or hideshow.
Maybe I don't understand what you mean by fold/hide, but isn't
narrowing relevant?
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 14:59 ` Óscar Fuentes
2018-07-24 15:03 ` Óscar Fuentes
@ 2018-07-24 15:14 ` Eli Zaretskii
1 sibling, 0 replies; 19+ messages in thread
From: Eli Zaretskii @ 2018-07-24 15:14 UTC (permalink / raw)
To: Óscar Fuentes; +Cc: emacs-devel
> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Tue, 24 Jul 2018 16:59:11 +0200
>
> > Any reason why several windows side by side couldn't serve the same
> > purpose? (You can disable the mode line if that gets in the way.)
>
> That is what I do when the number of affected areas is small, but...
>
> 1. The screen has limited space.
Not nowadays.
> 2. Arranging the windows takes time and is fragile (commands like
> `compile' and derivatives changes the layout, temporally or permanently;
> you are forced to use another frame for magit, gnus...).
I just create a new frame for that, and use that frame only for such
special situations. All the other buffers live on other frames, so
popping buffers don't bother me.
> I see the OP's proposal as a method for achieving narrowing at the file
> level (Emacs already has buffer-level narrowing): pick some files, put
> them (or parts of them) on the same buffer, and proceed as if you were
> working on a mini-project written on a single file.
>
> My first impression about his proposal was kind of "meh", but the more I
> think about it, the more interesting it looks.
If you say so. Volunteers are welcome to come up with patches that
implement this cleanly.
^ permalink raw reply [flat|nested] 19+ messages in thread
* RE: [Feature Discuss] Nested buffer
2018-07-24 1:24 ` Drew Adams
@ 2018-07-24 15:22 ` Drew Adams
0 siblings, 0 replies; 19+ messages in thread
From: Drew Adams @ 2018-07-24 15:22 UTC (permalink / raw)
To: Phil Sainty, Clément Pit-Claudel; +Cc: Emacs-devel, emacs-devel
> The new proposal sounds like nearly anything one might want
> to imagine. IOW, it sounds like nothing at all. It needs
> to be specified - nailed down quite a bit more, so people
> can actually think about it, instead of just imagining stuff.
For starters, define "nested". Any restrictions on
nesting? More than one level of nesting possible?
Zone/"buffer" overlap possible? Narrowed indirect
buffers can have overlapping content, for example.
They can even hold the entire buffer contents. (The
word "nested" doesn't suggest this possibility, but
who knows what was intended?)
Define just what the things are that get nested,
and what they are nested in (same kind of thing?).
Are they really buffers? pieces of buffers? views
of buffers? Define how they can be nested - just
what "nesting" means here.
If this is going to lead to anything, there needs
to be more flesh, I think: either some more
specification or some beginning code to think about.
Contrast Alan's detailed description of "islands".
That led to some interesting discussion because
it was fairly complete, detailed, and clear. The
current suggestion is, so far, just two words:
"nested" and "buffer".
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-23 23:15 ` Phil Sainty
2018-07-24 1:24 ` Drew Adams
@ 2018-07-24 16:54 ` Alan Mackenzie
1 sibling, 0 replies; 19+ messages in thread
From: Alan Mackenzie @ 2018-07-24 16:54 UTC (permalink / raw)
To: Phil Sainty; +Cc: Clément Pit-Claudel, emacs-devel
Hello, Phil.
On Tue, Jul 24, 2018 at 11:15:20 +1200, Phil Sainty wrote:
> On 2018-07-24 08:31, Clément Pit-Claudel wrote:
> > I think anything that was covered by the islands proposals
> That sprang to my mind too. What is the current state of the
> "islands" work? Is it still just a discussion, or is there
> code as well?
Neither, really. :-( I still think it is a sound proposal, but the
amount of work involved in implementing it would be so immense that it
would take a team of three to six people to do it. It would certainly be
beyond my abilities to do on my own. My feeling, when the topic was
under discussion, was that the requisite enthusiasm and commitment wasn't
there. To be honest, that would be expecting rather a lot.
A project of that size would inevitably involve coordination, and other
project management things, like agreeing on interfaces, and possibly
having deadlines and such. There's no experience of anything like this
in the Emacs project, at least, not that I'm aware of.
So I don't think that the "islands" proposal is going to get implemented.
Which is a pity.
[ .... ]
> -Phil
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-23 20:31 ` Clément Pit-Claudel
2018-07-23 23:15 ` Phil Sainty
@ 2018-07-25 2:28 ` Stefan Monnier
1 sibling, 0 replies; 19+ messages in thread
From: Stefan Monnier @ 2018-07-25 2:28 UTC (permalink / raw)
To: emacs-devel
> I think anything that was covered by the islands proposals a few months ago
> would be a good candidate, including mixed-mode buffers (HTML+JS+CSS) and
> documents that embed code snippets (e.g. org-mode buffers)
But having those chunks represented as nested buffers only solves the
problem of "which buffer-local variables to use when", which is
basically the easy problem (and it does it in a pretty hard way).
It doesn't solve the issue of interaction between chunks at the boundary
(which is the part that mostly requires coordination via some
standardized protocol).
Stefan
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 7:16 ` Óscar Fuentes
2018-07-24 14:33 ` Eli Zaretskii
@ 2018-07-25 2:31 ` Stefan Monnier
1 sibling, 0 replies; 19+ messages in thread
From: Stefan Monnier @ 2018-07-25 2:31 UTC (permalink / raw)
To: emacs-devel
> In my case, often I have to work on some feature that touches certain
> areas of several source files and, at the same time, create and edit
> several test cases, each on one file. Having everything on the same
> buffer will save lots of buffer switching, while at the same time
> providing a compact "work area" that eases reading and editing.
BTW, this sounds like a problem that could be solved also with something
like Phil Lord's `lentic`.
Stefan
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Feature Discuss] Nested buffer
2018-07-24 14:54 ` Ihor Radchenko
2018-07-24 15:08 ` Eli Zaretskii
@ 2018-07-25 4:41 ` Van L
1 sibling, 0 replies; 19+ messages in thread
From: Van L @ 2018-07-25 4:41 UTC (permalink / raw)
To: Emacs-Devel devel
>> Any reason why several windows side by side couldn't serve the same
>> purpose? (You can disable the mode line if that gets in the way.)
>>
>
> For example, it would not be possible to fold/hide the content, like in
> org-mode or hideshow.
Is what it is a global virtual buffer for webbing relevant line spans from files to work on all at once?
A use case might be to extract lines of code and documentation for commenting and presentation to a judge in a software audit of VW Audi’s Dieselgate affair.
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2018-07-25 4:41 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-23 16:03 [Feature Discuss] Nested buffer fei xiaobo
2018-07-23 19:51 ` Stefan Monnier
2018-07-24 3:33 ` Harry Fei
2018-07-24 7:16 ` Óscar Fuentes
2018-07-24 14:33 ` Eli Zaretskii
2018-07-24 14:54 ` Ihor Radchenko
2018-07-24 15:08 ` Eli Zaretskii
2018-07-25 4:41 ` Van L
2018-07-24 14:59 ` Óscar Fuentes
2018-07-24 15:03 ` Óscar Fuentes
2018-07-24 15:14 ` Eli Zaretskii
2018-07-25 2:31 ` Stefan Monnier
2018-07-23 20:11 ` Brett Gilio
2018-07-23 20:31 ` Clément Pit-Claudel
2018-07-23 23:15 ` Phil Sainty
2018-07-24 1:24 ` Drew Adams
2018-07-24 15:22 ` Drew Adams
2018-07-24 16:54 ` Alan Mackenzie
2018-07-25 2:28 ` 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).