I have some downtime today so I decided to look at some other IDEs for doing mainly JS work. When my JS projects get bigger (2000+ lines), I need my idea to have several features. Without these features I find the IDE unusable.
1. Custom Object Intellisense for global objects
2. Go to Definition working for everything including functions, objects and global objects
3. Code documentation pop-up, when I use a function I want a pop that explains what the function is and the required arguments.
There are other features that IDEs requires (JS auto completion) but without those I don’t consider the software and IDE, it’s just a text editor. It’s also important to note that if I can get these features but it requires a ton of extra work, then I’m just wasting my time. The point of the IDE is make me more efficient not less.
I tested the different apps by loading up my current project and checking out these features.
1. I have a public static object created in a separate file. Can the app give me proper Intellisense for this object?
2. Use the go to definition option for a function, and object declared inside of the same file, and use it on the object form test 1.
3. If 1 and 2 pass then see if this feature is supported and the format required.
Sublime text 3
1. Failed, no Intellisense. After looking around I found a package that might do this, but I got errors when trying to install it. I shouldn’t have to spend hours of my time to get this feature when it comes out of the box in other IDEs.
2. Function pass, object in file failed, global object failed.
1. Passed, also had a window with the list events (bonus points!!)
2. Function Passed, Both types of object passed (use ctrl+j)
Could not get it to work, I kept getting a time out error.
1. Failed. Tried to use symbols, and several other packages.
2. Function Passed, also found multiple copies of the function and gave me a choice. I used the same function name in a different file. This is a nice feature. Objects (both types) failed. Why do people like this so much?
1. Passed but not great, the Intellisense list had hundreds of options other than the 4 function I created on that object. Some may like this but I don’t, but it is better than nothing.
2. Passed all three tests with flying colors.
3. Passed but you have to click CTL+Q to make it appear. Maybe you can change that but it’s good enough for this review.
1. Failed. Did some Googling but didn’t find an answer.
2. Passed on function, passed on object, failed on global object.
2. Passes all 3.
So Brackets, Net Beans and WebStorm are the winners. Of the three I have used net-beans a lot in the past, but I’m going to try brackets out (it also looks nicer). NetBeans doesn’t handle the HTML side of things very nicely, and WebStorm costs too much.
If I got something wrong fell free to let me know. If your options take too long or aren’t easy then don’t bother. I’m not going to spend a lot of time to get functionality I can get out the box.