-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
improve discoverability of include/exclude functionality #345
Comments
Can you leave this kind of unconstructive commentary at the door please? It immediately puts me on the defensive and makes it harder to have a productive conversation with you. I don't know what you mean by
Could you please explain why you can't use ripgrep's own support for this feature? Why is the |
In hindsight, you're absolutely right and I should have been more diplomatic. Being tired enough to compromise your judgement is insidious when you're not very in touch with your emotions and have no social intuition because nothing feels off until someone else bites your head off for letting your frustrating leak into things. I'll try to clarify my points so that the constructive aspects I intended come through:
Part of the frustration that I accidentally let leak through came from an impression of "First, there's no
I didn't know about it.
That said, using (It also doesn't help that it ensures the need to chord at least one character in an exclusion, but |
I understand. It happens. :-)
I understand that. But this doesn't help me at all because I think I'm already doing it. The presence or absence of features alone isn't enough to determine my thought processes. I will counter with a should of my own: when reporting bugs, drop the meta commentary. If you have a serious problem with how the project is being run, then open a new issue and address it directly. Please. Otherwise, it's just a distraction. (I hate being told what I should be doing, as if there were some Clearly One Correct Way to run a project. Let's try to focus on the actual user experience and work to improve it instead.)
ripgrep's speed when the cache is hot is the primary thing that I've benchmarked. If your search needs to do slow I/O, the relative performance of your chosen search tool matters a lot less. So it seems to me like the opposite is intended: if you have spinning rust and your searches always hit disk, then ripgrep probably isn't going to be a huge win for you. But if you have SSDs, lots of RAM or frequently search the same stuff, then ripgrep might be a big win.
Yes, I don't like it either. It has similarly undesirable effects when left unescaped in bash. The intention was to be consistent with the glob syntax found in the ignore files, and to use exactly one flag so that precedence could be accurately captured. I would support the addition of I'm going to change this issue to "improve discoverability of include/exclude functionality" since that seems to me to be your core issue here. A solution to this problem could include actually adding |
Having now had a better night's sleep, I can see that too. Given that, from my perspective, it's a less glaring way to screw up, I can't guarantee that I'll succeed, but I'll definitely try to find ways to buffer myself against making that mistake again.
Fair enough. I'm not sure I've ever needed to search a codebase big enough that hot-cache
Sounds good. |
While addressing this issue, could you also please clarify whether |
Ah. A little bit of experimentation convinces me that rg does what I want. Better documentation would be nice though. (I know, I know, a pull request would be good.) |
When using
ack
, I often want to ignore some pattern just once.In order to get ripgrep's UX (User eXperience) to match ack's on everything but performance, I had to write a shell wrapper function (so the wrapper adds as little overhead as possible) which parses the command-line and re-serializes it, just so that I can get the functionality that tools like ack (
--ignore-dir=DIRNAME
) and grep (--exclude=GLOB
) give me for free.Here it is pruned down to the relevant bit. (It also implements a
~/.rgrc
to complement~/.ackrc
)Regardless of your own opinions, this sort of "being less functional than competitors in easy-to-trip-over ways" behaviour is bad PR. If I had an SSD, I'd just have dismissed ripgrep as "obviously not yet mature enough" and moved on.
The text was updated successfully, but these errors were encountered: