Clearing the mini editor when closing is something
all sub-classes were already doing so it makes sense
to pull it up to the base class as the default
cancelled() implementation that can still be overridden
if needed.
Using this new `abort` mechanism ensures that autocomplete's changes can never be redone, while eliminating the need to track operation counts explicitly.
Previously if the list was displayed above the cursor
position and the list was filtered to decrease in size
it would be displayed several rows above the cursor as
it shrinks.
Now the position is updated each time the list is populated
so it will always use the latest height when calculating
the position in the editor to place the select list at.
Undo all operations that were performed during an
autocomplete session and only retain the confirmed
operation.
Previously the undo stack would fill with all the
selections made before confirmation and the prefix
was restored to its original text when the operation
was cancelled.
Previously an inserted automcomplete match would not
update the case of the prefix or suffix of the match
and instead only insert the text from the matched word
between the prefix and suffix.
Now the entire matched word is inserted as-is replacing
the existing prefix and suffix.
We now look at the `core.disabledPackages` config key. Rename the `src/extensions` directory to `src/packages`. The config object now talks about loading packages instead of extensions.