Releases: chrisant996/clink
Releases Β· chrisant996/clink
v1.4.25
- Now
os.issignaled()
works duringonendedit
andonfilterinput
events. - Improve emulation for F7 history popup (the
win-history-popup
command); Left or Right replace the input text with the selected line. - Transient prompt filters can suppress the transient prompt on a case by case basis by returning
nil, false
. - Fixed typo in
clink set --help
text. - Fixed where the prompt prefix (from v1.4.24) is inserted in the prompt string, so that shell integration escape codes can work properly.
- Fixed #457; unrecognized OSC escape codes accidentally stripped from prompt string.
v1.4.24
- Added
path.fnmatch()
which behaves like the Linuxfnmatch(3)
function. - Added
os.globmatch()
which performs recursive file pattern globbing the same as git does. - Added support for
%CLINK_PROMPT_PREFIX%
,%CLINK_PROMPT_SUFFIX%
,%CLINK_RPROMPT_PREFIX%
, and%CLINK_RPROMPT_SUFFIX%
to provide prefix/suffix strings to surround the prompt strings, and for prompt filters to define a:surround()
function to add their own prefix/suffix strings if needed. - Fixed
~
by itself to change directories, the same as~\
. - Fixed horizontal scrolling in popup lists (is possible whenever the item doesn't fit and no items contain control codes).
- Fixed #452;
history delete #
doesn't work (regression introduced in v1.1.43). - Fixed #448; completion malfunction with
..\does_not_exist
(regression introduced in v1.4.1).
v1.4.23
- Added help message in
clink-select-complete
: when descriptions are shown below the matches, this adds text to mention that F1 toggles showing descriptions inline with the matches. - Added
clink update --check
to only check for an update without installing it.
v1.4.22
- Fixed
clink-select-complete
to use per-matchappendchar
when present. - Fixed repetitive unnecessary work in the background when the
completion
auto-suggest strategy encounters afromhistory
argument slot in an argmatcher. - Fixed the installer
/S
flag (silent install) so it returns exit code 0 on success.
v1.4.21
- The
clink-diagnostics
command can report merged argmatchers. When a numeric arg of 2 or greater is given (e.g. Alt-2,Ctrl-x,Ctrl-z) then it includes a list of defined argmatchers. The list now also reports any merging of argmatchers that occurred. - Fixed
clink update
sowinget
doesn't get confused about whether an update is available for Clink. Oncewinget update clink
performs an update, or once a Clink v1.4.21 or greater .exe installer is run, thenwinget
should stop getting confused.
v1.4.20
- Fixed
os.isfile()
andos.isdir()
when the specified name contains<
or>
or"
, which are special wildcard characters for MS-DOS compatibility. This caused an error when typing"<
, which then mistakenly thought a completion script named<.lua
existed. - Fixed
rl.expandtilde()
to omit a trailing backslash when expanding~
by itself. This is to avoid running afoul of the\"
parsing rules forargv[]
for programs. - Fixed potential crash when the
clink
command line takes more bytes as UTF8 than it does as UTF16.
v1.4.19
- Added
builder:setforcequoting()
to force quoting rules to be applied to matches even if they aren't filenames. This also reverts "quoting for non-filename completions" in v1.4.13; there isn't a safe and backward-compatible way to automatically deduce when non-filenames matches need quoting, so a match generator needs to turn it on explicitly when desired.
v1.4.18
- Added
clink.oninputlinechanged()
to register a function to be called whenever the input line is changed.
v1.4.17
- Added
os.isuseradmin()
to get whether CMD is running as an admin account. - Added
os.getfileversion()
to get a table with version information if the file contains a Windows version info resource. - The
clink-diagnostics
command now reports costs for Lua event callback functions when a numeric arg is given (e.g. Alt-1,Ctrl-x,Ctrl-z) or when thelua.debug
setting is enabled.
v1.4.16
- Added
history.show_preview
setting that controls whether to show a preview of history expansions (previously it was inferred by whethercolor.histexpand
was set). - Added detection for problematic codes in the prompt string. The
clink-diagnostics
Ctrl-X,Ctrl-Z command reports problem codes in the prompt string. When certain problem codes exist in the prompt string, then Clink compensates by reprinting the entire input line after printing the prompt string. Ideally, the prompt string should be fixed by the user, but sometimes that's difficult if the prompt string was generated by a tool. - Potential Breaking Change: Fixed how hidden and system files are handled by
os.globdirs()
andos.globfiles()
(it had never worked properly). It worked fine with the default modes of thefiles.hidden
andfiles.system
settings andmatch-hidden-files
config variable. But if any of those were changed from the default values then malfunctions could occur. With the fix, in backward compatibility mode thefiles.hidden
andfiles.system
settings andmatch-hidden-files
config variable control whetheros.globdirs()
andos.globfiles()
find hidden or system files, as before, and things can potentially malfunction. When the optionalextrainfo
argument is non-zero or when a new optionalflags
table is passed to them, they now default to including hidden files and omitting system files, but theflags
table can override that. This change was necessary because some scripts were unable to detect git repositories when thefiles.hidden
setting was false. Excluding hidden files never worked properly in the past. Clink v1.4.16 does its best to be as backward-compatible and forward-compatible as possible, but in some cases scripts may need to be updated to work properly when the settings or config variable are changed from their default values. - Fixed the
match-hidden-files
config variable to work again (regression introduced in v1.0.0). Also, when off, now it hides files and directories whose names begin with.
. - Fixed #421;
clink.bat
errors with quoted arguments (regression introduced in v1.3.47). - Updated documentation with more cross-referencing links for Clink settings, Readline commands, Readline config variables, and standard Lua APIs.