activities.el icon indicating copy to clipboard operation
activities.el copied to clipboard

Xref history per activity

Open theyamo opened this issue 1 year ago • 12 comments

Xref history is kept for each activity. When user is not currently in activity and uses xref functionality, the original xref history function is called.

Currently, xref history is not persisted.

theyamo avatar Sep 07 '24 06:09 theyamo

Hello,

This is a very interesting idea. I think it would be very useful, indeed.

A few issues before it could be merged:

  1. Please see this note in the readme: https://github.com/alphapapa/activities.el?tab=readme-ov-file#copyright-assignment
  2. While this code is quite simple, I think this should be implemented as a separate minor mode so users could choose whether to enable it. One of the principles I'm developing Activities by is to be flexible and integrate with other features optionally, rather than forcing users to modify their existing workflows.
  3. One minor note: I think the xref history map can use the activity struct directly as the key rather than the name of the activity. As is, I see no reason not to do so. What do you think?

Thanks for submitting this patch.

alphapapa avatar Sep 07 '24 07:09 alphapapa

It occurred me right away to add this feature when I started using the activities package, because the two modes of operation that emacs offers for xref history are, IMO, either too coarse (global history), or too narrow (window local history).

Emacs hasn't had a concept similar to session/activity to establish a more balanced way of working in between of those extremities.

I used the activity name as the list key for development purposes. The struct itself as the key made the xref storage variable hard to read. It's removed now. I also did the other changes as requested.

I have done the paperwork already some years ago.

theyamo avatar Sep 08 '24 07:09 theyamo

It occurred me right away to add this feature when I started using the activities package, because the two modes of operation that emacs offers for xref history are, IMO, either too coarse (global history), or too narrow (window local history).

Emacs hasn't had a concept similar to session/activity to establish a more balanced way of working in between of those extremities.

Indeed, I hope Activities can serve that purpose well, to optionally integrate and provide context for various features like that.

I used the activity name as the list key for development purposes. The struct itself as the key made the xref storage variable hard to read.

Yeah, that can be a problem with Edebug and the like. Setting various print-level variables can help, but sometimes even that isn't quite enough.

It's removed now. I also did the other changes as requested.

Thanks.

I have done the paperwork already some years ago.

That's good, but the Emacs maintainers require me to verify new (to me) contributors' status through them before accepting such contributions. Forgive me if I should know who you are already. :) Please let me know the name and email address you completed the FSF CA form with, and I'll ask them for verification.

alphapapa avatar Sep 08 '24 08:09 alphapapa

My name and email address have not changed. Hopefully you can get their confirmation.

theyamo avatar Sep 15 '24 08:09 theyamo

My name and email address have not changed. Hopefully you can get their confirmation.

I do not know your name or email address.

alphapapa avatar Sep 15 '24 14:09 alphapapa

They're visible in the git commit headers.

theyamo avatar Sep 18 '24 05:09 theyamo

FWIW, i tried to email fsf.org about this myself (check if my documents are valid for these contributions) but didn't get a reply. Maybe I didn't ask it clearly enough.

theyamo avatar Sep 18 '24 05:09 theyamo

They're visible in the git commit headers.

Since they aren't visible on GitHub's UI, I was hoping you'd be kind enough to save me the extra steps of having to view the PR's commits directly. As well, the name and address configured in git do not necessarily match the ones a contributor used when completing FSF CA paperwork, so it's best to just state them for clarity. It's generally helpful to make the maintainer's job as easy as possible, because there's never enough time to do all the things, especially when multiple projects are on one's plate.

alphapapa avatar Sep 18 '24 07:09 alphapapa

Apologies.

I confirmed with FSF that my gnu paperwork is still valid.

theyamo avatar Sep 27 '24 08:09 theyamo

Apologies.

I confirmed with FSF that my gnu paperwork is still valid.

As I said earlier, the Emacs maintainers require me to get confirmation from them; I am not allowed to take your word for it.

alphapapa avatar Sep 27 '24 16:09 alphapapa

I received your email with name and address, and I cc'ed you on my email to the maintainers.

alphapapa avatar Sep 28 '24 17:09 alphapapa

Eli confirmed your CA. Thanks for your patience. Haven't had much time for Emacs things lately. Will merge this for the next version.

alphapapa avatar Oct 17 '24 03:10 alphapapa