unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [RFC] Urgrep: New ELPA submission (eventually)
@ 2022-09-12  4:18 Jim Porter
  2022-09-12 12:58 ` Stefan Monnier
  0 siblings, 1 reply; 12+ messages in thread
From: Jim Porter @ 2022-09-12  4:18 UTC (permalink / raw)
  To: emacs-devel

A while back, I made a package called Urgrep ("Universal Recursive Grep" 
- <https://github.com/jimporter/urgrep>), and now that it's pretty 
stable, I'm starting preparations to submit it to GNU ELPA. I'm not 
*quite* ready to submit it for real, but I'm reasonably close and wanted 
to get some wider feedback before I actually do submit it. If you have 
any suggestions, questions, etc, I'm happy to hear them.

A brief summary: Urgrep is designed to provide a universal interface on 
top of all "recursive grep"-like commands, from ripgrep to git grep to 
the classic find+grep. I made it to solve a frustration I had with other 
similar packages: they're primarily built to support a *particular* 
searching tool, and while some can be coaxed into running with other 
tools, it doesn't always work. Even when it does, it's usually not 
seamless, especially when you add Tramp to the equation.

With Urgrep, you can use *any* rgrep-like command[1]. It will 
automatically use the best tool on the system in question, so if some 
remote host doesn't have your favorite tool, it'll still work just fine.

I also added some Isearch-like bindings in the main function's prompt 
(creatively named 'urgrep'). These all start with M-s and let you set 
common search flags, like number of context lines. Maybe there's a 
better way to do this; the current method seemed reasonable to me, but 
I'm certainly open to suggestions. (I looked at transient.el, but it 
didn't seem like the best fit in this case; maybe I just don't know 
enough about transient.el though.)

Again, I'm not quite ready to submit this to GNU ELPA, but I think it's 
stabilized enough that it's worth getting some more eyes on it in case I 
missed something.

- Jim

[1] If it doesn't support your favorite one out of the box, you can add 
your own support: you just need to add to 'urgrep-tools' with the right 
mappings for the various flags.




^ permalink raw reply	[flat|nested] 12+ messages in thread
* [RFC] Urgrep: New ELPA submission (eventually)
@ 2022-09-12  4:56 Jim Porter
  2022-09-12  9:19 ` Stefan Kangas
  2022-09-12 11:11 ` Eli Zaretskii
  0 siblings, 2 replies; 12+ messages in thread
From: Jim Porter @ 2022-09-12  4:56 UTC (permalink / raw)
  To: emacs-devel

(Resending; sorry if you get duplicates.)

A while back, I made a package called Urgrep ("Universal Recursive Grep" 
- <https://github.com/jimporter/urgrep>), and now that it's pretty 
stable, I'm starting preparations to submit it to GNU ELPA. I'm not 
*quite* ready to submit it for real, but I'm reasonably close and wanted 
to get some wider feedback before I actually do submit it. If you have 
any suggestions, questions, etc, I'm happy to hear them.

A brief summary: Urgrep is designed to provide a universal interface on 
top of all "recursive grep"-like commands, from ripgrep to git grep to 
the classic find+grep. I made it to solve a frustration I had with other 
similar packages: they're primarily built to support a *particular* 
searching tool, and while some can be coaxed into running with other 
tools, it doesn't always work. Even when it does, it's usually not 
seamless, especially when you add Tramp to the equation.

With Urgrep, you can use *any* rgrep-like command[1]. It will 
automatically use the best tool on the system in question, so if some 
remote host doesn't have your favorite tool, it'll still work just fine.

I also added some Isearch-like bindings in the main function's prompt 
(creatively named 'urgrep'). These all start with M-s and let you set 
common search flags, like number of context lines. Maybe there's a 
better way to do this; the current method seemed reasonable to me, but 
I'm certainly open to suggestions. (I looked at transient.el, but it 
didn't seem like the best fit in this case; maybe I just don't know 
enough about transient.el though.)

Again, I'm not quite ready to submit this to GNU ELPA, but I think it's 
stabilized enough that it's worth getting some more eyes on it in case I 
missed something.

- Jim

[1] If it doesn't support your favorite one out of the box, you can add 
your own support: you just need to add to 'urgrep-tools' with the right 
mappings for the various flags.



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-02-04 22:22 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-12  4:18 [RFC] Urgrep: New ELPA submission (eventually) Jim Porter
2022-09-12 12:58 ` Stefan Monnier
2022-09-14  4:52   ` Jim Porter
2023-02-04 17:12     ` Ergus
2023-02-04 19:44       ` Jim Porter
2023-02-04 21:37         ` Ergus
2023-02-04 22:22         ` Stefan Monnier
  -- strict thread matches above, loose matches on Subject: below --
2022-09-12  4:56 Jim Porter
2022-09-12  9:19 ` Stefan Kangas
2022-09-12 17:05   ` Jim Porter
2022-09-12 11:11 ` Eli Zaretskii
2022-09-12 18:00   ` Jim Porter

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).