To the outside world, developers can have an unhealthy fixation with their code editor. It’s not surprising — most of us spend longer with our IDE than our families. Sean’s recently-posted list of free editors provoked a plethora of debate about what is and what’s not the best coding tool.
There are dozens of code editors to choose from and many are freeware or open source. Ultimately, the choice is yours, whether it’s Windows Notepad, VIM or VisualStudio. However, there are a number of key IDE features that I’d recommend to all web developers.
An editor won’t remain on my PC if it doesn’t provide the following:
Speed and stability
The editor must start quickly and remain responsive. Sorry Eclipse and Aptana.
Multiple files / MDI interface
The days of opening a single source file are long gone. Tabs are my preferred choice of interface and they absolutely must support middle-click closing!
Multiple language support
Line wrapping and numbering
It may be bad practice, but long lines of code are sometimes necessary. The editor should let you view code without horizontal scrolling, so a line wrapping option is essential. When the inevitable error occurs at line 4321, you need to be able to find that bug quickly — so forget any editor that does not display line numbers.
Missing quotes or tags can cause havoc, but color-coding can dramatically reduce your error rate. Bonus points are awarded for any editor offering fully-customizable color schemes.
Microsoft VisualStudio sets the gold standard with IntelliSense. Few editors reach that level, but if I’m adding a
<p> tag, you can guarantee I want a closing
</p>. Please don’t make me type it!
Session store and restore
When the editor is restarted, it should restore the files you were working on, open them in the correct order and preferably at the last line you were editing.
The option to open other files in the current project can save time.
Find and replace across files
How many times have you renamed a class or function? The editor should provide facilities to change all references quickly and easily.
The following options are great if they’re available:
Jumping between functions in the same file is easier if you can bookmark individual lines.
Similarly, it can be useful to ‘split’ a file into multiple windows so different segments can be edited at the same time.
The facility to collapse or expand segments allows you to concentrate on the important code.
Good font support
In general, I prefer to code using a proportional font. I may be in the minority, but please don’t force me to use monospace! SciTE offers the best solution; you can switch between monospaced and proportional fonts using Ctrl+F11.
Shortcuts, plugins, and macros
If you use particular keyboard combinations or functionality, configurable shortcuts, macros and plugins can help you migrate to another editor.
And the Bad Features…
Sometimes, editors offer dubious functionality that you really do not need.
WYSIWYG design view
Whilst WYSIWYG can be useful for novice developers, you will soon discover that hand-coding HTML and CSS is quicker than any design package. It can also be essential if your application requires DOM manipulation. If a WYSIWYG view is provided, make sure it doesn’t refactor your carefully-crafted code when you accidentally hit the ‘design’ button.
Obtrusive project management
Sometimes, you just need to open a file and make a minor change — please don’t force us to create a new project!
Dumb HTML-generation tools
I do not need a toolbar icon that uses valuable screen estate and inserts a
<p> tag. And I certainly don’t need icons that insist on adding deprecated
What are the essential features you look for in a code editor? Are there any “features” that particularly annoy you?