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.