Releases: chrisant996/clink
Releases Β· chrisant996/clink
v1.6.12
v1.6.11
- Added
os.setalias()
for setting a doskey alias without needing to invoke the doskey.exe program. - Fixed a case where match descriptions could be displayed with incorrect padding and truncation (regression introduced in v1.6.6).
- Lua debugging enhancements:
- Changed the built-in embedded scripts to include debug info, which allows some Lua error messages to be more useful for troubleshooting.
- Added
srcmap
command in the Lua debugger to override where to find source files.
v1.6.10
- Added an optimization to further reduce flicker when re-drawing the prompt.
- Added a
user_data.shared_user_data
table to allow linked argmatchers to share data with each other while an input line is being parsed (see Responding to Arguments in Argmatchers for details). - Fixed #579; popup lists could accidentally truncate text in the first column when there's only one column.
- Fixed #576; setup exe doesn't remove old uninstall exe files.
- Fixed #575; error when
color.executable
is set andcolor.unrecognized
is not (regression introduced in v1.6.2).
v1.6.9
- Fixed #574;
prompt.spacing
"eats" lines containing Unicode Surrogate Pairs such as for some nerdfont icons (Windows Terminal accidentally returns that such lines are empty). - Fixed #573; C# was unable to read Clink's version resource.
- Fixed #555; security advisory CVE-2020-24370 for a Lua bug.
v1.6.8
v1.6.8
- Fixed #571; error in clink.bat under some circumstances (regression introduced in v1.6.7).
v1.6.7
- Recognize the little-known
cmd /r
as a synonym forcmd /c
so that Clink can optimize and skip injecting into acmd /r
process. - Fixed displaying descriptions when they're left-justified (regression introduced in v1.6.6).
- Fixed
argmatcher:chaincommand("run")
to not find argmatchers for builtin CMD command names (since CMD doesn't get invoked in that case, so it won't get interpreted as a CMD command). - Fixed
argmatcher:chaincommand()
to find an argmatcher for a builtin CMD command even if a directory exists with the same name (since CMD interprets that case as a CMD command). - Fixed
argmatcher:chaincommand("cmd")
so whenexec.aliases
is enabled it can include aliases as completions. - Fixed
argmatcher:addarg({loopchars="+", etcetc})
so that-Q:+x
still gets parsed into two input words-Q:
and+x
. - Fixed to parse
foo^ bar
as two words "foo" and "bar". - Fixed to recognize
^echo
(etc) as a builtin CMD command name despite embedded^
characters. - Fixed #570; fixed #569 more thoroughly, and
cd /d
cannot be used anywhere because it also requires command extensions.
v1.6.7
- Recognize the little-known
cmd /r
as a synonym forcmd /c
so that Clink can optimize and skip injecting into acmd /r
process. - Fixed displaying descriptions when they're left-justified (regression introduced in v1.6.6).
- Fixed
argmatcher:chaincommand("run")
to not find argmatchers for builtin CMD command names (since CMD doesn't get invoked in that case, so it won't get interpreted as a CMD command). - Fixed
argmatcher:chaincommand()
to find an argmatcher for a builtin CMD command even if a directory exists with the same name (since CMD interprets that case as a CMD command). - Fixed
argmatcher:chaincommand("cmd")
so whenexec.aliases
is enabled it can include aliases as completions. - Fixed
argmatcher:addarg({loopchars="+", etcetc})
so that-Q:+x
still gets parsed into two input words-Q:
and+x
. - Fixed to parse
foo^ bar
as two words "foo" and "bar". - Fixed to recognize
^echo
(etc) as a builtin CMD command name despite embedded^
characters. - Fixed #570; fixed #569 more thoroughly, and
cd /d
cannot be used anywhere because it also requires command extensions.
v1.6.6
- Added
clink history --no-show-time
to allow omitting history timestamps even when thehistory.time_stamp
setting isshow
. - Fixed match display to not right justify descriptions when the screen isn't wide enough or when descriptions contain aligned columns (like
clink set
completions do since v1.6.3). - Fixed
clink history
when output is redirected; strip any escape codes that might be embedded in the time format. - Fixed #569;
cmd /e:off
causes syntax error in clink.bat script. - Fixed #567;
clink history compact
accidentally deletes all timestamps. - Fixed documentation error in Lua API Reference about
"w"
mode inio.open()
andio.sopen()
(the behavior was correct, but the documentation was inaccurate/unclear).
v1.6.5
- Added all match fields in the table of matches passed to the
clink.onfiltermatches()
callback function. - Fixed stripping colors from strings (e.g. when displaying in popup lists); it didn't strip 8-bit and 24-bit colors correctly.
NOTE: This release includes changes that enable clink-gizmos's FZF integration to show nerd fonts file icons in completion lists. See the README file there for more info. It also requires using dirx.
v1.6.4
- Added
rl_buffer:hassuggestion()
andrl_buffer:insertsuggestion()
for direct access to inserting suggestions without invoking Readline commands. - Added
clink.dirmatchesexact()
andclink.filematchesexact()
which are the same as the non-exact
variants, except these don't append a*
to the search pattern. For example,clink.filematchesexact("*.zip")
can collect exactly "*.zip" file matches instead of "*.zip*". - Added OS version info to
clink info
. - Added UNC share name completion when using Executable Completion (the
exec.enable
setting). - Fixed completing input
.
or..
when theexec.enable
setting is enabled. - Fixed applying
colored-completion-prefix
when match display filtering is active or a match has a customdisplay
field. - Fixed the
exec.path
setting so it doesn't accidentally include directories if their names end with an executable extension such as.exe
. - Fixed finding an argmatcher registered with a full path (e.g.
c:\foo\bar.exe
) when a full path is entered without a drive letter (e.g. enter\foo\bar.exe
). - Fixed #562;
clink autorun install
strips quotes by mistake.
v1.6.3
- Breaking Change: For the four Ctrl-- key combinations, Clink got the Shift key backwards and generated inaccurate input codes. And that broke the Readline/bash default key binding for
undo
(the Windows default key binding of Ctrl-z works fine). If your .inputrc file has bindings for any of the Ctrl-- key combinations then you can keep the keys working the same by updating the key bindings. You can even use the$if clink_version >= 1.6.3
syntax in your .inputrc file to make it define the key bindings differently in different versions of Clink.Key Combination Old Code New Code Ctrl-- "\C-_"
orC-_
"\e[27;5;189~"
Ctrl-Shift-- "\e[27;6;189~"
"\C-_"
orC-_
Ctrl-Alt-- "\e\C-_"
or"\M-\C-_"
orM-C-_
or etc"\e[27;7;189~"
Ctrl-Alt-Shift-- "\e[27;8;189~"
"\e\C-_"
or"\M-\C-_"
orM-C-_
or etc - Completions for all
clink set
settings include the current value in the description field (e.g. typeclink set
Alt-= to see Clink settings and their current values). - Fixed to differentiate between
undo
andvi-undo
commands again (they do the same thing, but are technically different commands). - Fixed
execute-named-command
to also accept Ctrl-- forundo
(the emacs binding for undo). - Fixed redisplaying multi-line prompts after using completion during
execute-named-command
. - Fixed accidentally loading the history file twice on each prompt; now it loads once, as intended.
- Fixed another double-free and potential crash in the Readline library; after navigating through history entries and then editing a history entry, pressing Ctrl-c or Ctrl-Break could cause a crash or memory corruption (regression exposed by changes in Readline 8.2).
- Applied fixes for 6 Lua bugs, curated by @goodusername123 (thank you!) from Lua.org:
- "Dead keys with nil values can stay in weak tables."
- "Expression list with four or more expressions in a 'for' loop can crash the interpreter."
- "Label between local definitions can mix-up their initializations."
- "Return hook may not see correct values for active local variables when function returns."
- "Suspended __le metamethod can give wrong result."
- "Wrong code generated for a 'goto' followed by a label inside an 'if'."
- Fixed the Lua debugger so 5-digit line numbers don't break indentation when showing source code lines.