<commit_before>Java EditLine FAQ
=================

**Why not just use [Java Readline][javareadline]?**

For several reasons.

* Java Readline doesn't expose enough information for completion. It exposes
  the token being completed and the current line, but it doesn't expose the
  *location* of the token. In applications that do context-sensitive
  completion, not knowing the location of the token is a problem.

* Java Readline has not been updated since 2003.

---

**Well, why don't you fix Java Readline, instead?**

Because I wanted to start fresh, with a new API.

---

**What about [JLine][jline]? or [Jline2][jline2]**

JLine is certainly useful, especially since it works on Unix-like systems
and on Windows. However, it isn't as functionally complete as Editline. For
instance, it isn't as configurable, and it doesn't support breadth of
editing commands that Editline supports. JLine2 is a substantial improvement
over JLine, but it's still not as feature-rich as GNU Readline or BSD's
*libedit*.<commit_msg>Ugh. Damned typos...<commit_after>Java EditLine FAQ
=================

**Why not just use [Java Readline][javareadline]?**

For several reasons.

* Java Readline doesn't expose enough information for completion. It exposes
  the token being completed and the current line, but it doesn't expose the
  *location* of the token. In applications that do context-sensitive
  completion, not knowing the location of the token is a problem.

* Java Readline has not been updated since 2003.

---

**Well, why don't you fix Java Readline, instead?**

Because I wanted to start fresh, with a new API.

---

**What about [JLine][jline] or [Jline2][jline2]?**

JLine is certainly useful, especially since it works on Unix-like systems
and on Windows. However, it isn't as functionally complete as Editline. For
instance, it isn't as configurable, and it doesn't support breadth of
editing commands that Editline supports. JLine2 is a substantial improvement
over JLine, but it's still not as feature-rich as GNU Readline or BSD's
*libedit*.
{'fraction_non_alphanumeric': 0.08971233544612384, 'fraction_numerical': 0.006825938566552901, 'mean_word_length': 4.501340482573727, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5838191', 'n_tokens_mistral': 588, 'n_tokens_neox': 544, 'n_words': 289}