5 ms·
What about smart refactoring? Being able to rename just about anything (methods, classes, variables, etc...) and knowing that your IDE will do all the right stu
by gregschlom 14y ago
What about smart refactoring? Being able to rename just about anything (methods, classes, variables, etc...) and knowing that your IDE will do all the right stuff.
What about instantly knowing who calls that method or uses that class or that variable, with much more flexibility than just grepping through the code?
Those are the features I use the most in any IDE.
- azov 14y agoWhy does it have to be lumped into IDE? Both could be written as standalone utilities that your favorite editor can call. I think IDEs hurt innovation in development tools more than almost anything else. They are like crack for your workflow - easy to get started with, but once you're on them you're stuck. Plugging in better tools into existing IDE is a big PIA if possible at all, and rewriting the whole IDE is a huge undertaking for any company who wants to make your life better.
- wvenable 14y agoMy IDE has more plugins installed than my web browser! Standalone utilities generally have poorer UI and require more effort to find and run.
- joelhooks 14y agoThe core of JetBrains tech is a well built, performant, pluggable foundation that makes them incredibly responsive when it comes to new tools, languages, features, fixes, etc
- pjmlp 14y agoI have been using IDEs since the MS-DOS days and my life is way better with them than without. Using vim, emacs and similar always leaves a taste of doing a time travel to the early days of UNIX using text terminals.
- _pmf_ 14y ago> Why does it have to be lumped into IDE? Both could be written as standalone utilities that your favorite editor can call. Yes. And it has been done. Over and over, each approach crappier than the next. I'm using Eclipse/CDT; it's really shitty, but sadly still more usable than Vim for large (-ish) projects.
- Watabou 14y agoI'm not really sure what you mean but vim does refactoring just fine with ack/vimgrep with bufdo (applies any vim commands to the current list of buffers) It also has ctags support so you can navigate your code, go to a method/variable/class name and instantly find out where it was defined and such.
- hboon 14y agoA full-featured refactoring tool should be smart enough to only rename functions/methods that belong to the same class for example. This is generally possible only when the tool "understands" the language. A search and replaceable can't do this correctly.
- zgm 14y agoThis. Vim is great for simple scripts and small projects, but once a project grows beyond a certain size I really prefer an environment with more robust refactoring like Intellij.
- randomsearch 14y agoI've just vim a bit, but I'm no expert. It seems to me that IDEs such as Eclipse, VS etc. are much better suited to large scale development than vim. For example, recently I worked on the HotSpot JVM, beginning by analysing the codebase. I started with vim and got cscope and related tools working, but they didn't seem to always work, and were much less useful than those I'd used in IDEs. In the end I switched to Eclipse, and was able to carry out the analysis very easily. One of the Oracle JVM engineers told a friend - they generally use emacs for development, but when someone is trying to get their head around the code, they use an IDE. So it seems to me that this guy and others "internalize" the way they codebase works, and then subsequently switch back to editors. Thing is, this all seems rather baffling to me. Surely IDEs are designed to remove a lot of the burden of memorizing syntax, APIs, and the way the codebase works. Intuitively, this sounds like a step forward. But - lots of experienced and smart programmers still use vim and emacs rather than VS, Eclipse, Qt creator, IntelliJ. Those people know a lot more than me about coding. So there must be a rationale for sticking to text editors. Can anyone enlighten me please? Should I invest more time in emacs/vim? If yes, why?
- qdog 14y agoI rarely refactor across entire projects, but I'm fairly certain vim has plugins that can do that. As for finding what calling methods there are, as other have stated, you can use ctags, or go full throttle with Cscope - http://cscope.sourceforge.net/ http://cscope.sourceforge.net/ it will do textual searches along with displaying all callers for a method across all the files you tell it to search (in setup). With the vim gui and a cscope backend, I'm pretty sure vim is just as much an IDE as any of the other editors. It just happens to work fine in a terminal, too.
- roel_v 14y ago"With the vim gui and a cscope backend, I'm pretty sure vim is just as much an IDE as any of the other editors." <guy never having run more than a mile> 'Yeah I'm pretty sure that these 7.95$ Walmart sneakers are just fine for running the NY marathon, why would I need those Nike's or Asics?'
- qdog 14y agoYou're assuming I don't ever use one of the other IDE's. I've used Eclipse on occasion (currently using it somewhat on Android development as a debugger) and I have to open up Visual Studio at work on occasion. Neither is better for me than vim and unix tools, even if I have to run under cygwin. It's cool that jetbrains is making something new, I just wanted to point out there are few (if any)features vim and/or emacs do not have.
- duaneb 14y agoI'm pretty sure c++ refactoring is impossible (or near to it) because of the ## concat preprocessor directive.
- mserdarsanli 14y agoNot handling ## directive would not be a big loss
- duaneb 14y ago