protected void addContent(JPanel contentPanel) {
		// Extension point
	}
An autocompleter that may be attached to one or more {@link JTextField}.

<p>
Each autocompleter instance has one associated window (displaying the list of suggestions) and
one associated model (generating the list of suggestions). Thus, the list can only be active on
one of the attached text fields at a time. This is usually the desired behavior, and it allows
for one autocompleter to be reused on many fields. Behavior is undefined when multiple
autocompleters are attached to the same text field. More likely, you should implement a composite
model if you wish to present completions from multiple models on a single text field.

<p>
By default, the autocompleter is activated when the user presses CTRL-SPACE, at which point, the
model is queried for possible suggestions. The completer gives the model all the text preceding
the current field's caret. This behavior can be changed by overriding the
{@link #getPrefix(JTextField)} method. This may be useful, e.g., to obtain a prefix for the
current word, rather than the full field contents, preceding the caret. The list is displayed
such that its top-left corner is placed directly under the current field's caret. As the user
continues typing, the suggestions are re-computed, and the list tracks with the caret. This
positioning behavior can be modified by overriding the {@link #getCompletionWindowPosition()}
method. As a convenience, the {@link #getCaretPositionOnScreen(JTextField)} method is available
to compute the default position.

<p>
Whether or not the list is currently displayed, when the user presses CTRL-SPACE, if only one
completion is possible, it is automatically activated. This logic is applied again and again,
until either no suggestions are given, or more than one suggestion is given (or until the
autocompleter detects an infinite loop). This behavior can by modified on an item-by-item basis
by overriding the {@link #getCompletionCanDefault(Object) getCompletionCanDefault(T)} method.
This same behavior can be activated by calling the {@link #startCompletion(JTextField)} method,
which may be useful, e.g., to bind a different key sequence to start autocompletion.

<p>
The appearance of each item in the suggestion list can be modified by overriding the various
{@code getCompletion...} methods. Note that it's possible for an item to be displayed one way,
but cause the insertion of different text. In any case, it is best to ensure any modification
produces an intuitive behavior.

<p>
The simplest use case is to create a text field, create an autocompleter with a custom model, and
then attach and show.

<pre>{@code
JTextField field = new JTextField();

AutocompletionModel<String> model = new AutocompletionModel<String>() {
    &#64;Override
    public Collection<String> computeCompletions(String text) {
        // ... Populate the completion list based on the given prefix.
    }
}
TextFieldAutocompleter<String> completer = new TextFieldAutocompleter<String>(model);
completer.attachTo(field);
// ... Add the field to, e.g., a dialog, and show.

}</pre>

@param <T> the type of suggestions presented by this autocompleter.
Ghidra/Framework/Docking/src/main/java/docking/widgets/autocomplete/TextFieldAutocompleter.java