Releases: chrisant996/clink
Releases Β· chrisant996/clink
v1.5.6
- Added
os.getpushddepth()
, which works when%PROMPT%
contains exactly one$+
. - The
clink-popup-history
andwin-history-list
commands show timestamps whenhistory.time_stamp
is set toshow
. - Fixed
os.geterrorlevel()
whencmd /u
was used. - Fixed word break parsing in the input line when certain Unicode characters are present.
- Fixed Unicode string conversions to disallow translating to "similar" characters (which could be problematic in filenames).
- Fixed a crash in
rl.getkeybindings()
if it's called by a Lua script running insideclink set
. - Fixed Lua debugger input if a script error occurs inside
clink set
. - Fixed a width quirk in
clink-select-complete
where typing to narrow the list to a single item accidentally made the column width at least 3 characters, even if the item was only 1 or 2 characters width. - Fixed
clink history
to handle escape codes embedded in thehistory.time_format
setting. - Fixed a potential crash after using
remove-history
at the beginning of the history list. - Fixed #494; Lua error when using
unicode.fromcodepage()
(reported and fixed before the bug was published). - Fixed #493;
clink-select-complete
displays the selected item incorrectly if bothcolored-stats
andcolored-completion-prefix
areoff
(regression introduced in v1.5.5).
v1.5.5
- Changed the
clink.autoupdate
setting to allowoff
,check
(the default),prompt
, andauto
for more control over how and when updating happens. When set toprompt
orauto
Clink can trigger updates automatically, so you don't need to even runclink update
. - Enhanced
debug.log_terminal
to include low level console keyboard and mouse input events. - Fixed
debug.log_terminal
to capture all input (regression introduced in v1.5.2). - Fixed slowness during
clink-select-complete
while typing, caused by excessive match generation. - Fixed selection highlight in
clink-select-complete
when the whole match text has been typed. - Fixed #486; window title escape code doesn't work properly if it contains emoji or UTF content.
- Internal changes.
v1.5.4
- Further contrast improvements for default colors to be readable in both Dark and Light terminal themes.
- Added
arginfo
field inbuilder:addmatches()
and in match display filtering. - Auto-suggestions are no longer shown while searching history; it was too distracting and confusing.
- Fixed updating the input line display after using
clink-popup-history
orwin-popup-history
(regression introduced in v1.5.3). - Fixed
old-menu-complete
andmenu-complete
when there's only one match. The first time it should insert the match, and subsequent times should ding instead of cycling through the same match over and over and requiring an equal number ofundo
to undo. - Fixed match display filtering to support the
match.substring
setting. - Fixed match display filtering to support the
files.system
setting. - Fixed the cursor position if match display filtering happens the first time
clink-select-complete
is used in a session. - Fixed a case where two
undo
were required to fully undo whatmenu-complete
inserted. - Fixed Esc during incremental history search mode so it cancels the search.
- Fixed input line coloring after
non-incremental-reverse-search-history
ornon-incremental-forward-search-history
finds an exact match for the search text (since v1.1.5). - Internal changes and optimizations.
v1.5.3
- Added
builder:setfullyqualified()
to force completions to be inserted as fully qualified path names. - Completions for
clink set setting_name input
use fully qualified path names for input. This helps avoid accidentally setting relative paths in global settings; since the current directory changes frequently, setting relative paths usually leads to unintended consequences. - Only load a script from a
completions\
directory if the associated command exists in the file system. Also, pass the fully qualified file name as input to the script (in Lua, use...
to get script arguments, e.g.local command = ...
). clink info
now reports whether Clink is injected.- Improve efficiency of updating the input line display. This eliminates some redundant processing in the Readline library and in Clink.
- Fixed input line parsing and coloring when the
doskey.enhanced
setting is off or when doskey macro expansion is suppressed. - Fixed
line_state:getwordinfo()
to accurately set the.alias
field when thedoskey.enhanced
setting is off or when doskey macro expansion is suppressed. - Fixed coloring the command word in the command line when queued keys select and accept a command line from history instantly (it could accidentally continue without applying the appropriate coloring).
- Fixed script error in
clink.filematches(nil)
andclink.dirmatches(nil)
; they were meant to behave the same as passing an empty string.
v1.5.2
- Adjusted the colors in "Use enhanced defaults" to have sufficient contrast to be readable in both Dark and Light terminal themes.
- More reliably detect whether hosted in Windows Terminal, and even when Windows Terminal is set as the default terminal application.
- Fixed crash in
clink.popuplist()
when thecurrent
argument is past the end of the list of items. - Fixed cursor location when the input line contains embedded CTRL characters.
- Fixed #474; pasting is slow in Windows Terminal and ConEmu.
- Fixed #470; typo in help text.
v1.5.1
- Added
rl.getcommandbindings()
to get info about a command, including the key(s) bound to it, if any. - Changed to also allow
clink.popuplist()
inside a function registered byclink.onfiltermatches()
. - Changed console input mode handling to more aggressively clear
ENABLE_VIRTUAL_TERMINAL_INPUT
since it interferes with input (especially Ctrl key combinations) and some console programs set it but accidentally neglect to clear it when they're finished.
v1.5.0
- Added code-signing.
- Added note after successful
clink update
to clarify that the update will take effect in new Clink windows. - Fixed order of running the autostart script (from the
clink.autostart
setting) vs loading Lua; the autostart script should run before Lua so that Lua scripts can query environment variables set by it. Otherwise Lua scripts may behave differently on initial load versus after invoking theclink-reload
command (e.g. Ctrl-X,Ctrl-R). - Fixed precedence of match colors; readonly should be lower precedence than executable.
- Fixed #469; incorrect usage of
memset()
.
v1.4.28
- Added
console.getcursorpos()
to get the cursor position. - Updated
os.getscreeninfo()
to include the cursor position. - Changed character width measurements in Windows Terminal to accommodate certain fully qualified color emoji variants such as "βοΈ" vs "β". The former is U+2714 U+FE0F and Windows Terminal draws a double-width color emoji; the latter is U+2714 and Windows Terminal draws a single-width character in the current font. Note that Windows Terminal draws the characters; Clink just tries to make the best prediction it can about how Windows Terminal will draw the characters.
- Fixed display glitch where auto-suggest caused the display to scroll up an extra line at the bottom of the screen.
- Fixed display glitch where cursor position was wrong when the input line ends with a history expansion directive that ends exactly at the right edge of the terminal.
- Fixed
cmd.ctrld_exits
so Ctrl-D always exits with return code 0, so that terminal programs allow the shell window to close gracefully. - Fixed mouse input when the
horizontal-scroll-mode
inputrc variable ison
. - Fixed missing prompt text when a prompt filter encounters an unhandled Lua error; now a placeholder prompt string is used so it's clear where the prompt is.
- Fixed #467; On-Screen Keyboard in Swedish keyboard layout can't type
\
. - Internal improvements.
v1.4.27
- Fixed when the
terminal.emulate
setting isauto
on Windows 8.1 and earlier (regression introduced in v1.4.26).
v1.4.26
- Added built-in support for shell integration with Windows Terminal v1.18 and higher. Note: Windows Terminal gets confused about the command line text when the transient prompt is enabled.
- Changed
clink.getansihost()
to return two strings; the first string is the mode in use, and the new second string is what Clink detected (and will use when theterminal.emulation
setting isauto
). - Fixed to use terminal emulation when the
terminal.emulate
setting isauto
and ANSICON is present. Clink's output is no longer able to be intercepted by ANSICON, so bypass it and use Clink's own terminal emulation. - Fixed #461; crash due to invalid RVA in ANSI32.DLL or ANSI64.DLL (ANSICON).