6 ms·
Ask HN: What is the must have feature of your IDE
What are the features of your IDE that you think separate it from the rest? What can you not live with out.
If there are things you don't like about your chosen IDE, what are those?
- Joeboy 13y agoI use vi(m) because it's available everywhere. I have no particular opinion on whether it's otherwise better than anything else, and I kind of suck at using it.
- fengor 13y agoWEll you could check out "Practical Vim" i found it tremendously helpful
- Joeboy 13y agoYeah, "learn to use vim properly" has been on my TODO list for about 15 years now. It's probably time I did something about it.
- syllogism 13y agoThis Vim game helped me more than anything I'd seen in ~5 years: http://vim-adventures.com http://vim-adventures.com
- dllthomas 13y agoIt's pretty outstanding, but I'm kind of baffled by the pricing (6 months for $25). As already a vim expert, I clicked the pay link expecting to happily drop a one-time ~$10 and balked. Just going through the demo is likely to be worthwhile, though.
- syllogism 13y agoThe pricing's aggressive, but I've been in chump-mode for Vim for way too long. So for me it was like, "okay you've got me, you bastard." It was worth the money, because even small, lasting productivity improvements are that valuable. There are heaps of other ways to learn vim, but it's been a long time and I haven't done them.
- dllthomas 13y agoSure; I'm not convinced it's not worth it for most people! I'm just not sure how able they'll be to convince people of that, and I don't expect it's worth it for me (unfortunately).
- adamnemecek 13y agoSmart and fast definition and reference lookups. That's all I really need but it's surprising how many IDEs are broken in this aspect.
- jaegerpicker 13y agoYeah those are definitely my favorite features, something that I think Intellij gets really right but most others don't. But my can't live without feature is Visual debugging. It reduces cognitive overhead to such a degree that it's the IDE killer feature for me.
- fengor 13y ago* Syntax hilighting (any text editor can have this) * Find Resource by starting to type the filename * Follow function calls * integrated debugger
- monk_e_boy 13y ago> Integrated debugger! I used visual studio a long time ago, now any ide without a debugger seems quaint. I use NetBeans and NuSphere (PHP IDE) both are OK. The NuSphere PHP/debug plugin is ace. You can pause, edit variables, run random commands, move execution to a different point, all sorts of cool stuff. Also love the chrome JS debugger, it's a bit verbose for my liking, maybe that's JS having a lot of crap bundled in objects all visible by default.
- benjaminwootton 13y agoI love the combination of Tmux and VI. This is because of the tight integration with the shell and the fact that I can work completely without a mouse. Alas I am a Java guy and restricted to IntelliJ at work. It's a great IDE but I never feel as 'at home' as I do in the shell. My favorite and most used refactoring feature in any IDE is Extract Method. It's a simple one, but I use it repeatedly when cleaning up both my own code and legacy code. My code would be much uglier without it.
- adamtaa 13y agoMust have features for me are code completion "intellisense" to borrow a term. Proper and diverse syntax highlighting, Function/Method signature helpers, code/file navigation, and a clearly defined layout of the interface. Additionally, the IDE should have a clearly defined purpose and all utilities and support functions should reflect this. SOme good examples IMO are visual studio, and jetbrains IDEs of which I primarily use webstorm
- nubela 13y agoCode jump. Intellisense. Refactoring is really sweet too, but that I can do with just find/replace (carefully).
- Kronuz 13y agoSyntax highlighting, code completion, jump to definition and code linting, search and replace (regexps) in project... and of course a nice and, most importantly, fast code editor. So, I use Sublime Text. Although it technically isn't an IDE, with some plugins installed (SublimeCodeIntel, SublimeLinter, and others), it works wonderfully as is if was. And it's blazing fast too.
- jbrooksuk 13y agoI really love Sublime, so here are a few features which stop be from switching to apps such as Chocolat. - Multiple Cursors, at first you think this is just a gimmick, but it soon shows its usefulness. I use this feature all of the time. - Jump to definition. - Useful and intuitive key bindings. - Console output.
- venomsnake 13y agoSearch, Search and Replace in multiple files.
- ya3r 13y agoThe ability to turn off features.
- chrisdone 13y agoWell, mine is Emacs. > What are the features of your IDE that you think separate it from the rest? What can you not live with out. Extensibility. I can live without any other built-in features, because I can always write them myself in short order. Imagine a programming language in which you can't write your own functions. You wouldn't want to use that, would you?
- Singletoned 13y ago> Imagine a programming language in which you can't write your own functions. You wouldn't want to use that, would you? I think I'm going to be quoting that for quite a while to come. I'm a fellow Emacs user, and I think that perfectly sums up why I use it.
- dllthomas 13y ago"infinite wishes"
- edw519 13y agoAbility to turn off anything I don't want. Nothing distracts my focus from my core work more than the IDE doing something I didn't intend. This is especially irritating when I accidentally switched modes or put myself somewhere else with no idea what I did or how to undo it. So I should be able to turn it off and never worry about it again. The caveman in me loves textpad.
- draven 13y agoEmacs keybindings, extensibility (that would include configurability.) I'm an Emacs user. I don't have a very long init.el but appreciate being able to deactivate stuff I don't use, especially things like scrollbars, toolbars, etc. Using IDEs I feel overwhelmed (too many GUI elements) and powerless (mostly because I'm not familiar with them, but discoverability is important too, see Emacs' apropos.)
- pedalpete 13y agoI totally agree with most IDEs and even the number of menus and capabilities in Sublime Text being overwhelming or hidden. Discoverability is important, and the ability to 'get out' of any mode easily. But at the same time, not visually overloading the user, which I think most IDEs are guilty of.
- kushti 13y agoSmart completion based on type info(Intellij Idea, Scala & Java code)
- skrebbel 13y agoDiscoverability. I want to be able to download a library (through whatever means), and then figure out how to use it from within my code. I want to be able to type the name of a class, object, namespace, whatever the language has for that, that corresponds to the name of said library and then just play with it. I want docs for every method and class (or function, object, whatever) that I enter, in a tooltip, at my fingertips. I want autocomplete, not because I am too lazy to type, but because I want to call functions that actually exist. I want my IDE to tell me which parameters a function expects and what to think about when calling it. Seriously guys, if I wanted to continuously switch between my editor and a browser with API docs, I'd be using a text-editor. If I wanted to spend 80% of my time going through badly commented undocumented source code written by colleagues or outright (friendly, OSS-contributing) strangers, I'd join a Ruby shop. I want an IDE with discoverability, and a language that supports this well. My other must-have feature is integrated debugging. An IDE without integrated debugging isn't and IDE, it's a text editor with some plugins.
- girvo 13y agoOh gosh, I agree so very very much. Sadly, for the dynamic languages I program in most, few IDEs handle this correctly. Komodo is the closest, and even it chokes on some more advanced stuff (like IoC containers and the like, though i can get around it with annotations in the comments). Edit: oh by the way, SublimeCodeIntel? It's a port of Komodo's CodeIntel library. I switched to Sublime entirely for a while, but bit the bullet and bought a license for Komodo IDE and use Textadept for smaller projects and quick edits (it's a nice Lua-extensible editor, with an awesome ncurses front end to run in the terminal/over SSH)
- jaegerpicker 13y agoHave you tried Intellij's dynamic language IDE's? they are pretty awesome and imo much better than Komodo. Javescript/Python/ruby are all supported out of the box and there are plugins for a ton of other languages.
- girvo 13y ago
- sparkie 13y agoCorrect syntax highlighting. (Ie, based on proper parsing and semantic analysis, not simple regex matching of keywords). Autocompletion. Go-to definition. Automatic, configurable code styling (i.e. AStyle). Visual debugging support (Click for breakpoints, step through code, watch variables/memory etc).
- paulferrett 13y agoInsane-fast code completion, jump to definition, bracket/brace/quote/tag auto-closing. Just the boring usual things :)
- pron 13y agoCodejump, auto-complete, pop-up docs, error highlighting, debugger, some refactoring.
- jasin 13y agoQuality debugger integration and easy navigation in code.
- qollin 13y ago1. Refactoring. Mostly needed: - project wide renaming of functions, classes, ... inside the main editor (not through a "Refactoring dialog") - "extract method" at the press of a hotkey 2. Code generation to support "using things before defining them" (like what CTRL-1 in eclipse does). So I can e.g. use a class in a test that does not exist yet and have the IDE generate a stub of that class for me. 3. Automatic organization of imports. I don't want to have to lookup and type package names. 4. Everything needs to work without a mouse
- dferlemann 13y agocannot live without (from VS): - syntax highlighting obviously - THIS IS BIG: open IDE with unlimited number of instances. I forgot which IDE annoyed me on this one... IntelliJ? - reference lookup - intellisense - code (unit test) coverage map, unit test project integration - ability to make my own extension, add-on, macros, etc - SCM integration, detect file change and indicates which files have been changed in source panel. - code map ... want but have not encountered: - source panel file structure that allow me to open files in different apps of my choice. detects file type. - simple, un-confusing, customizable UI - all shortcuts need to be customizable ...
- pedalpete 13y agoCan you explain what you mean about 'unit test project integration'? I'll have to take a look at how VS gives a unit test coverage map. I was trying to figure out a way to link unit tests to their code to make it easier (visually) to write your tests and your code at the same time in the same window and watch your tests pass in real time as you code. Similar to the original lighttable demo, but using tests, and hopefully easier to understand.
- zkar 13y agoThis comment only on the first question: Ability to reverse engineer the program flow and provide a sequence diagram based on a run. THis should have the ability to specify a filter so unnecessary noise/well understood parts of the program flow can be skipped
- pedalpete 13y agoSounds really interesting. Are you thinking something like selecting a function/method will chain all the other functions/methods that call it and display them like a tree map? Have you seen this somewhere already? I'm not sure how difficult this would be to create, but I'm thinking if implemented properly, it could help in working with less/scss and show how changing a variable or class would affect the rest of the compiled css. What classes and ids would be affected, etc. etc.
- VMG 13y agoI can live without vim keybindings, but it's annoying.
- finishingmove 13y ago"Find in Files" and "Find and Replace in Files".
- alextingle 13y agogrep sed -i
- ssawyer06 13y agoThis might sound stupid, but I like IDEs that look good. Honestly, they all have pretty much the same feature set. I like to use applications that are pleasing to stare at for hours on end (and don't require much customization to get there).
- pedalpete 13y agoI find most IDEs hideous and difficult to look at with so many buttons that I don't use and don't want to use. What have you found that looks good? Sublime is ok, so is Lighttable.
- ssawyer06 13y agoI like Ninja IDE for Python. Don't have a nice looking one for Java. NetBeans is a bit less visually offensive than Eclipse.
- dllthomas 13y agoOne feature I've been loving in vi lately is the ability to easily drop source locations into my quickfix list to step through. Not sure I "can not live with out" that, though. Modal editing is probably the most important feature to me, followed closely by shell integration.
- kldavis4 13y agoAbility to navigate a large code base quickly, refactoring, jump to declaration/implementation.
- coffeeaddicted 13y agoMust have: - An editor that can show different line-endings (cr/lf) and it must be possible to between them (nice to have - switching that independently for each open file). - Text search per file, per project and per solution. Nice to have: - Correct syntax highlighting - Find definitions/declarations in c++ code correctly - Free software - Cross platform support - Support for different compilers - Show potential compile errors already on typing (in VS since 2010 I think, that feature alone made me use VS again more regularly) - Debugger with the features of VS (fast, most useful data shown automatically or with mouse-over, easy to edit values, easy to copy&paste parameters + values + stack, easy to add watches with right-click, remembers breakpoints&watches&active windows between debug sessions, comfortable conditional breakpoints and watches) - Nice support for disassembler (stuff like showing c++ and it's asm code mixed) - Locking window layouts (missing that in VS where I mess up my layout by dragging windows accidentally all the time) - Configuration files that don't cause troubles when working in teams (troubles I've seen with IDE's in the past had been user-specific settings being in project-files and path-settings not written in a OS independent way so each time someone checked in from another all paths got changed again) - Allow putting project files in any place independent of where the sources are (seen that one several times - IDE's that insisted of placing their project files in the root of the project) - Plugin-support
- pedalpete 13y agocurious about your 'text search per solution'. Are you saying 'text search across all projects'? Does having the configuration files and project files not saved within the project solve most of the problems you describe with user-settings and project files?
- coffeeaddicted 13y agoYeah, solution is the name in VS for it. Workspace is maye a better name. Basically a file containing more than 1 project file (like a project + all it's libraries). The problems with configuration files are solved when typical settings for a user/machine are never inside project file settings. I know one IDE which for example saves the currently active project of a solution in the solution file. But that's something everyone is changing all the time and is really a user-specific setting. Sounds trivial but is really annoying in combination with version control systems.
- djKianoosh 13y agoNot being slow. Is that a feature? For example, when IDEs like Eclipse decide to take 2 minutes to switch between an xml file and a java and javascript file. Why so many devs put up with this is beyond me, but I digress...
- pedalpete 13y agoabsolutely! I have barely used eclipse (or other IDEs). I know they aren't fast, but wasn't sure how many people were annoyed by the speed. Anybody know why it takes so long? Is it because the file needs to load up all the documentation, code bindings, auto-completes, etc. that many other people here have mentioned? I'm guessing if an IDE is looking through a file every time it opens and mapping that files method paths throughout the project, that could take a bit of time.
- daGrevis 13y agoSince I started to use Vim, I can't switch to any other editor or IDE. It's not because Vim editor is so great or because I don't like those niceties that other editors and IDEs offer, but it's because I have those Vim-bindings in my muscle memory and I can't be productive w/o them. Show me an IDE that has nice support for Vim-bindings and is highly customizable (plugin support with rich API, programming language I can use to improve it as I like it), and I will happily leave Vim and use it. So far the closest thing I've seen is Lighttable, but still it lacks some Vim-bindings and is very in beta for now. To answer OP's question, Vim-bindings and configuration options at extreme.
- pedalpete 13y agoI know there are sublime text plugins for VI bindings (I think they are the same as Vim bindings), and it is also highly customizable with plugins. I had difficulty getting into lighttable for some reason.
- daGrevis 13y agoVim bindings include Vi bindings, but Vim bindings is more. Light Table is very alpha, so at the moment it's really not a serious candidate to replace Sublime or Vim. Will see what happens. :)
- alextingle 13y agoI don't use IDEs because I hate being distracted by their features (most of which I don't want). A good syntax highlighting text editor with tabs is all I want.
- SippinLean 13y agoWow, really? Typing `fu` then pressing `enter` to type `function(){}` will always be faster than typing the whole thing out. I can't imagine not wanting features like that...
- alextingle 13y agoYeah, that's exactly the kind of feature that I can't stand. It takes approximately a second to type "nction(){}". Actual typing is an insignificant part of the time it takes to write code. OTOH, for me, the extra cognitive load of having to think about how the editor is going to interpret my keystrokes is a real distraction. What happens if I want to type "fu<new line>"? Will I need to type "fu <new line><left arrow><delete><down arrow>"? Or is the editor clever enough to realise that "fu..." shouldn't be expanded in this context? So, what is the context that the editor sees at this point in the code?... Etc. Every time the editor types something for me that I wasn't expecting, it distracts me from my flow. Or if I maintain a mental model of what the editor thinks is going on, then I won't be surprised, but I'm also not devoting 100% of my attention to the task at hand. I do use some very simple auto-completion. So, having the editor re-create the indent of the previous line when I press <return> is OK - because it's completely predictable. Finally, some IDEs seem to think that its a great idea to pop-up menus on top of the code, where I'm trying to type. (Intellisense, I'm looking at you!) That's completely infuriating. I want to be able to see my code.
- jaredsohn 13y agoAn additional annoyance is when your UI freezes as the IDE needs to think while populating a popup window. (such as http://stackoverflow.com/questions/3590489/visual-studio-2010-intellisense-slows-down-everything http://stackoverflow.com/questions/3590489/visual-studio-201...)
- thenerdfiles 13y agoSyntax Highlighting File and Project Viewer Integrated Debugger Integrated Linter Source Code as Tags/Analysis/Overview Code Completion Tmux
- pedalpete 13y agoCan you explain what you mean about 'Source Code as Tags/Analysis/Overview'? I did a web search but didn't come up with anything.
- thenerdfiles 13y agoLike Tagbar and Ctags for Vim. SublimeText has an file overview panel which sort of produces this, but what I prefer is a sortable table of contents of classes, functions, and variables -- like a miniview of your current file. Having Integrated SCM, or at least a per file history, is important to me, too.
- qwerta 13y agoMy IDE must have only single feature: it must be Idea :-).
- pedalpete 13y agoI assume you mean IDEA from IntelliJ?
- dwc 13y agoPros: Vi's ability to be easily mouseless, and it's wonderful "editing language". By "editing language" I mean that editing commands follow a syntax with verbs, objects, modifiers, etc. The "dw" command, for instance, deletes a word. Then you learn that "p" is a paragraph object. Can you "dp" to delete a paragraph? Of course, because that's how it goes in vi/vim. Want to delete 4 words? 4dw. Want to change a word? cw deletes and then puts you in insert mode. Does that work on paragraphs and other things? Of course. Learning new things in vim is kind of like compound interest in terms of payoff. Every text object you learn gets multiplied by all the verbs you know, and any new verb can be applied to all the text objects you know. Cons: vimscript
- pedalpete 13y agothat all sounds really amazing, and so many people love VI, I'm wondering if more IDEs have copied these short cuts. I know sublime text has a plugin to add VI shortcuts. I always found it a bit awkward to get in and out of VIs 'edit modes', it just seemed so unnatural.
- dwc 13y agoThe whole modal aspect takes time to get used to, and some people never get over it. Even given a fair shot, I don't think vi is for everyone. For my part, after using emacs for more than a decade, I knew I'd stick with vi after about 2 weeks.