Main Features:
- If there are too many candidates returned by the completer,
completemode and completeselectmode did not work properly.
Similar to the bash completion pager, list candidates and
offer "--More--" on the end of each page. User can select
" ", "y" or "Y" to keep listing or "q", "Q", "n", "N" to
stop listing. When paging completes, we also exit out of
completion mode.
- Added aggregate completion when entering completeselectmode
where the candiddates dwindle down sharing a larger common
prefix. This makes typing a little faster than having to
select. More bash-like behaviour.
Other Fixes:
- Fix various crashes where candidates are too wide for the
width of the screen and causes division by zero.
- Fix crash with wide (Asian characters) in completion.
- Streamline redrawing as CompleteRefresh was called too
often.
- Fix crashes around ctrl-a and ctrl-b in select mode when
candidates don't fit on a line
- Fix prev/next candidates in select mode when candidates
don't fit on a line
- Fix crash when ctrl-k was pressed in select mode. This
caused us to exitselectmode which cleaned up all the data
but left us in complete mode such that if CompleteRefresh
was callled directly, the data was not initialized.
- Fix complete and select mode redraw issues when candidates
did not fit on one line.
- Fix cursor position issues after CompleteRefresh especially
if the prompt and buffer also went over 1 line.
- Fix redraw issue where exiting completion mode using
certain key presses leaves candidates on the screen.
Fixes for Windows:
- Use window size for visible height/width instead of buffer size
- Adjust for Window's EOL behaviour.
Notes:
- Added Height info to different structures as the decision to
page or not required height information.
- Added OnSizeChange(). Didn't know if I could get rid of the
OnWidthChange()? Would be nice to remove the Width stuff and
just have Size (width + height info).