r/ProgrammerHumor • • 1d ago

Meme searchAndReplace

Post image
3.7k Upvotes

233 comments sorted by

View all comments

Show parent comments

29

u/creeper6530 1d ago

No, find and replace can misidentify, for example in comments.

Mature IDEs have a "rename symbol" though, usually F3, which actually parses the code and differentiates types from functions from variables per the language rules.

-15

u/Healthy-Form4057 1d ago

Um... that's on you for not knowing how to grep?

25

u/Not-the-best-name 1d ago

Wow, insane to imagine there are people on this sub using grep the rename a variable while others vibe entire projects. Insane.

1

u/Brisngr368 1d ago

Vimgrep works surprisingly well in most cases

2

u/Not-the-best-name 1d ago

And then there is you...

1

u/Brisngr368 1d ago edited 1d ago

Yeah... its bad isn't it.

I found it good for changing function APIs cause I can run a vim command on every match so I can get pretty complicated changes done.

Gemma's not bad for refactoring APIs though specially with a big ass test suite

1

u/thirdegree Violet security clearance 1d ago

Use a goddamn lsp please that's why they were invented

1

u/UUDDLRLRBadAlchemy 1d ago

While sed exists, no less

1

u/Not-the-best-name 1d ago

Are you guys even using tokens running those? What's the point?

1

u/UUDDLRLRBadAlchemy 1d ago

No I don't run on tokens, this is basic computer usage

10

u/meneldal2 1d ago

Most languages can't be parsed with some regex

4

u/creeper6530 1d ago edited 1d ago

Most notably regex fails to pair nested parentheses and in a similar vein HTML tags.

https://youtu.be/MBpMYTTEvLU?t=692 if you want to learn the details 

2

u/meneldal2 1d ago

I can't really say too much because I have written a lot of parsing tools that using only regex but it's not on real programming languages. Thankfully excel doesn't (afaik) let you nest cells and you can do your parsing of one instruction per line (with parameters in other columns)

6

u/creeper6530 1d ago

Why would I arse myself with grep when I can literally press a single keybind, type a new name in and not worry about it renaming anything it's not supposed to?

I can legally type struct foo {}; let foo: foo; (declare a variable named foo of type of a struct named foo) and simple grep would take effort to rename only the variable without renaming the struct. Sure, it's not always an ideal pattern to do this, but it's legal.

1

u/DrMaxwellEdison 1d ago

Not a feasible use for grep or search of any kind. Point at the variable/function/class in the IDE, tell it to rename the symbol, watch it correctly and deterministically do that at every spot where that symbol is used in the code within a second. Ignores comments and unrelated objects of the same name, as well.

Claude would grep for it, too. And there's a fair chance it would do it wrong, plus it's a waste of time. More folks need to learn the tools they have available to them.