JEdit

From ENIGMA
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.