[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#70820: [PATCH] Editable grep buffers
From: |
Visuwesh |
Subject: |
bug#70820: [PATCH] Editable grep buffers |
Date: |
Tue, 07 May 2024 21:55:09 +0530 |
Tags: patch
Attached patch is a proof of concept for an occur-edit-mode alike for
*grep* buffers. It uses the new track-changes library to track the
edits made in the *grep* buffer to then finally save these edits to the
corresponding files. I've tested this with:
1. pure deletions: If you have a match that says "(cur-beg start"
and you change it to "(cur- start". This is special because
track-changes-fetch passes equal BEG and END to
grep-edit--track-changes-finalise.
2. edits: something like "(cur-beg start" -> "(cur-beg start balh"
is handled like you would expect.
3. edits with newline: if the edit includes a newline, then that is
reproduced.
and what is not handled currently: deleting a match line to imply
deletion of that line from the matched file. I don't know how to handle
this currently, I need to learn the library more.
There's also definitely a million more cases that I didn't anticipate
when I wrote the logic for grep-edit--track-changes-finalise.
I'm sending the patch now to see if there's enough interest before I go
about fixing the edge cases (there's bug#52815). If there is enough
interest, I will take a shot at implementing something like this for
xref result buffers too.
In GNU Emacs 30.0.50 (build 8, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.18.0, Xaw scroll bars) of 2024-05-07 built on astatine
Repository revision: 4b31074f5f49898ba0499a2b617cad425750eafa
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101011
System Description: Debian GNU/Linux trixie/sid
Configured using:
'configure --with-sound=alsa --with-x-toolkit=lucid --with-json
--without-xaw3d --without-gconf --without-libsystemd --with-cairo
--with-xft'
grep-edit.diff
Description: Text Data