JEdit - hpgDesigns/hpgdesigns-dev.io GitHub Wiki

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.