Comparison of Javascript-based source code editors

This article provides basic feature comparison between some of the javascript-based source code editors available today. This article is not all-inclusive or necessarily up-to-date.

Overview

List of source code editors

Site

Cost (US$)

Software license

Open source

| EditArea

Home, Demo

LGPL

| CodePress

Home

LGPL

| CodeMirror

Home Page

BSD-like

| Code Area 3

Home Page

Public domain

| Code Area 2

Home Page

GPL

| Helene

Home, Demo

GPL

| CodeIDE

Home Page

Unknown

Unknown

| 9ne

Home Page

GPL

| jsvi

Home Page

Unknown

Unknown

List of features

Feature testing was performed with Firefox 2.0.0.7, and results may not match those in other browsers.

Feature

EditArea

CodePress

CodeMirror

Code Area 2

Code Area 3

Helene

CodeIDE

9ne

jsvi

Drag'n'Drop

yes

yes

yes

no

yes

no

no

no

no

Copy'n'Paste

yes

yes (still working on IE)

yes

no

yes

no

no

no

no

Drag-and-drop support

Supported by: EditArea, CodeArea 3, CodePress, CodeMirror

Not supported by: CodeArea 2

Copy and paste support (Within area)

Supported by: CodeArea 3, Edit Area, CodePress, CodeMirror

Not supported by: CodeArea 2

Copy and paste with other applications (Firefox)

Supported by: CodePress, CodeMirror, EditArea, CodeArea 3

Copy and paste with other applications (IE7)

Supported by: CodeMirror, EditArea, CodeArea 3

Viewable area limited highlighting (scalable to larger files)

CodePress

Textarea based (uses highlighting overlays)

EditArea, CodeArea 3

Use iframe

CodePress, CodeMirror

Custom spell checking

Supported by: none;

Browser-based spell checking

Supported by: CodeArea 3;

Browser-based zooming

Supported by: CodeArea 3, CodeMirror, CodePress (partial - line numbers aren't correct)

Not supported: CodeArea 2, EditArea (Has custom text-size selection, though)

Multiple Undo allows the user to undo/redo multiple, granular changes to the document

Supported by: CodeArea 3 (Complete snapshots), EditArea (snapshots on delete and newline), CodePress (snapshots on delete and newline)

Simple Undo allows the user to undo the last change

Not supported by: CodeMirror, CodeArea 2

Multiple instances support means that multiple edit boxes can be displayed on the same screen

Supported by: CodePress, EditArea, CodeArea 2, CodeArea 3

Ctrl-A (Select All)

Supported By: CodePress,CodeMirror,EditArea,CodeArea 3

Not supported by: CodeArea 2

Automatic bracket insertion

Supported by: CodePress

Auto-indentation refers to maintaining the current indent level when the enter key is pressed - not code reformatting.

Supported by: CodeMirror, EditArea, CodeArea 3

Not supported by: CodePress

Bracket matching refers to the highlighting of the matching pair of braces, brackets, or parenthesis when the cursor is positioned on one of them.

Supported by: EditArea

Not supported by CodeMirror, CodeArea 3, CodePress

Batch indentation refers to indenting and un-indenting multiple lines at a time.

Supported by: EditArea

Not supported by CodePress, CodeMirror, CodeArea 3

Multiple languages per file

Supported by: none;

TODO: Other aspects

  • What size files do these editors handle best
  • How many dependencies (files) does each require? When compressed, what is the minimum download size in kilobytes?
  • Tabbed editing?
  • "Fast" mode, without syntax highlighting?
  • Javascript architecture (prototype, functional, or closure-based)
  • How responsive is each library (with and without a large file loaded)? (Not sure how to measure this yet.)
  • How long is the delay before syntax-highlighting occurs on new text.

Language features

  • Syntax highlighting (None, pattern, or full parser)
  • Snippet support
  • Code suggestion
  • Code folding
  • Text folding
  • Customizable key bindings

Offspring projects

list of projects based on each engine, offering more/less features.

CodePress powered

EditArea powered

  • Scaffold[BETA] by Jupiter (Justin Meyer (and others?)) - tabbed editing ? - database creation ?

Browser Compatibility

  • IE 6
  • IE 7
  • FF 1.5
  • FF 2.0
  • Safari
  • Safari/Win
  • Opera

Extensibility Features

  • Feature plugins
  • Interface languages (English, French, etc.)
  • Syntax highlighting plugins
  • Bracket completion plugins
  • Language snippet plugins
  • Code suggestion plugins