guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] emacs: Support auto-updating after performing REPL operation


From: Alex Kost
Subject: Re: [PATCH] emacs: Support auto-updating after performing REPL operation.
Date: Wed, 15 Oct 2014 10:30:16 +0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Ludovic Courtès (2014-10-14 23:17 +0400) wrote:

> Alex Kost <address@hidden> skribis:
>
>> Currently when a user performs some REPL operation using Emacs UI –
>> e.g. installs a package from *Guix Package Info* buffer, information in
>> that buffer stays the same, and he needs to press "g" there to revert
>> the buffer.
>
> By “information in the buffer”, what do you have in mind?  There’s
> highlighting of installed packages, and marks.  Am I missing something?
>
> Pressing ‘g’ removes marks and updates highlighting.

"Installed" column is also being changed.  And in the list of installed
packages, deleted packages disappear (I mean if you delete some packages
and press "g" there).  As for *Guix Package Info* buffer, there are many
differences between installed and not-installed packages.

I have in mind that all data will be updated.  Here is what revert
(pressing "g") does in a Guix buffer:

- the existing data is erased (using ‘erase-buffer’);
- information about packages/generations is received again;
- it is inserted in the buffer.

I used to update information manually (before this change) and I think
that such auto-updating is natural and is exactly what a user expects.
Don't you agree?

>> The attached patches will add that missing feature: after finishing a
>> REPL operation, a buffer from which this operation was performed will be
>> automatically updated.
>
> What if the operation fails?  For instance, you carefully select a bunch
> of packages to install, and then the operation fails because of some
> transient networking error, say.  In such a case, the *Guix Package
> Info* buffer should *not* be updated IMO, because that would mean losing
> all the marks for no reason.

Auto-updating happens only if a REPL operation was successful.  When a
debugger prompt is entered (for example when a user interrupts the
process with "C-c C-c"), buffers are not updated, so the marks will not
be lost.

Thanks for asking, it led me to the idea that if a package operation was
"dry-run", then auto-updating shouldn't be performed as no changes were
made.  I'll adjust the commit for this case (assuming that you agree
with that :-))

-- 
Thanks,
Alex



reply via email to

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