Menu

JEdit

Hugh Greene

JEdit is a code editor written in Java. An older,
smaller version of it is used in LateralGM on the main branch of
development, while a secondary branch is working to replace it with
JoshEdit.

Comparison to JoshEdit

Both

  • Functional text and code editors
  • Written in Java
  • Small, modular and extensible
  • Syntax Highlighting
  • Based on JComponent, rather than JTextComponent, so a lot of text
    functionality needs to be replicated
  • Action-based interaction, meaning that you can have buttons and
    keystrokes invoke certain actions (like copy/paste, etc).
  • Undoable

JEdit

  • Complete, but using an older version (since the newer version is
    huge and a fully featured text editor, rather than just a text area)
  • No official development. May grab some features from newer versions.
    All development must be done by the LateralGM team during
    implementation.
  • Very stable.
  • Back-end based on Document, a java class, albeit complicated, with
    index-based character positioning. Caret and Selection seem to be
    integer-based rather than class-based.
  • Separate front-end painting class keeps the main class under 2000
    lines (including comments).
  • Flexible font support.
  • A complete Completions menu to suggest completions to the text you
    are typing.
  • Missing several of the features that JoshEdit has, however it is
    possible to add them.
  • Very well documented and modularized.

JoshEdit

  • New project, most key functionality present.
  • Undergoing semi-active official development.
  • Not too stable yet. A few big bugs still need to be worked out.
    • Drag and Drop broken.
    • Drag-scrolling buggy.
    • Viewport tends to lose the caret.
    • A list of stuff here: JoshEdit:Todo
  • Back-end based on a list of a custom Line class, which delegates to
    StringBuilder. Positioning is point-based (row,column). Likewise,
    custom Caret and custom Selection classes are defined.
  • Front-end painting and a hodgepodge of everything else related to it
    is thrown into the main JoshText class, bringing it to over 2000
    lines of code.
  • Font support restricted to monospaced fonts.
  • Completions menu functionality replicated from the JEdit one.
    Functionality mostly there, with work still under way to complete
    the rest.
  • A number of features that JEdit does not natively have
    • Line numbers.
    • Rectangle selection.
    • Multi-line typing.
    • Settings panel and Find dialog (although currently broken)
  • Poorly documented and modularization tends to be done by refactoring
    the code.

Related

Wiki: Java
Wiki: JoshEdit
Wiki: JoshEdit_branch

MongoDB Logo MongoDB