Releases: chrisant996/clink
Releases Β· chrisant996/clink
v1.3.45
- Fixed the history expansion preview when the input line grows or shrinks to use a different number of screen rows.
- Fixed
"cd"
so it doesn't match thecd
argmatcher, because CMD commands cannot be quoted. - Fixed #356; input line display garbled on Windows 8.1 (regression introduced in v1.3.43).
v1.3.44
v1.3.43
- Added
clink.max_input_rows
setting that limits the number of screen rows to use for displaying the input line, scrolling as appropriate if the input line exceeds the limit. - Added
color.histexpand
setting. When this is configured with a color, then Clink highlights history expansions in the input line and shows a preview of the expansion that will be applied near the current cursor position. - Added
history.auto_expand
setting. When this is set to false, history expansions will not be performed automatically upon Enter, but they may still be performed by invoking expansion commands such asclink-expand-history
Alt-^, orclink-expand-line
Alt-Ctrl-E. - When a coroutine error happens, write a Lua traceback to the log file.
- The
clink-diagnostics
command now reports costs for prompt filters and input line coloring classifiers when a numeric arg is given (e.g. Alt-1,Ctrl-x,Ctrl-z). - Fixed the input line color when the command word is an alias and a directory and has an argmatcher (regression introduced in v1.3.40).
- Fixed how the inserted completion is highlighted while using
clink-select-complete
with thematch.substring
setting enabled. - Fixed Readline bugs in the numeric arg input state;
- Numeric arg overflow check was missing in certain cases.
- Numeric arg input state could accidentally empty the prompt string.
- Numeric arg input state accidentally continued showing the arg input message after using Alt-- while already in numeric arg input state.
- Fixed some minor input line coloring and completion mistakes for
clink set
. - Fixed
quoted-insert
followed by Esc, so that it inserts the raw ESC character. - Fixed how Esc is handled in isearch mode (e.g. Ctrl-r); it should terminate isearch without reverting the input line.
- Fixed
what-is
to consistently reset the color afterward. - Fixed vi insertion mode when
terminal.raw_esc
is enabled, so that Esc changes to vi command mode. - Fixed
clink.refilterprompt()
to report an error upon invalid usage (it cannot be used inside a prompt filter, as that could cause infinite recursion and a crash). - Fixed #344;
history
prints UTF8 text incorrectly. - Fixed #342; typing
foo.abc
doesn't recognizefoo.abc.cmd
. - Fixed #340; various display glitches in the Readline library (Clink now uses custom display routines instead of the Readline display routines).
- Fixed #339;
%CD%
doesn't expand.
v1.3.42
- Added
console.checkinput()
to check whether input is available. - Changed
console.readinput()
to accept an optional no_cursor argument to avoid changing cursor visibility or position. - Fixed #320; resizing the terminal can garble the prompt (bash has the same problem, so Clink now uses custom code to handle resizing the terminal).
v1.3.41
- Added
io.truncate()
to truncate a file. - Added
string.comparematches()
to compare two matches; this is normally not needed because Clink automatically sorts matches, but some match generators may prefer to disable the automatic sorting and perform custom sorting. - Added
rl.describemacro()
to associate descriptions withluafunc:
macros (or any macro), to be shown in theclink-show-help
andclink-what-is
commands. - The
clink.popuplist()
function now accepts a callback function to be invoked when Del is pressed. - The
colored-completion-prefix
configuration variable now works with match display filtering, provided the display strings only prepend or append to the match strings. - Removed the obsolete
clink.gui_popups
setting. - Fixed the
completion-prefix-display-length
configuration variable in various cases. - Fixed timing condition that could potentially crash (regression introduced in v1.3.40).
v1.3.40
- Clink now has an icon, and also includes some colored icons for color-coding your shortcut files, terminal tabs, and etc.
- Avoid mis-coloring a directory name as though it is an argmatcher (uses a background thread to stay responsive).
- Fixed command word completion after
:chaincommand()
. Nowcmd /cΒ
Tab works properly. - Fixed
:chaincommand()
to work properly in a nested argmatcher; it should imply:nofiles()
otherwise it can pop out to the previous argmatcher instead of chaining. - Fixed
cmd
argmatcher to only chain after the/c
and/k
flags, to more accurately match actual cmd.exe syntax. - Fixed backward compatibility for argmatchers using the old v0.4.9 APIs with functions as argument options (regression introduced in v1.2.7).
- Fixed the
clink-select-complete
command with match display filtering.
v1.3.39
- "Use enhanced defaults" now includes history timestamps.
- Fixed delay while loading the history file when history timestamps are enabled (regression introduced in v1.3.18).
- Fixed suggestions to resume after fully accepting an input line suggestion and then changing the text (regression introduced in v1.3.29).
- Fixed reporting unbound commands in
clink-show-help
when arg is 4 (Alt-4,Alt-H) (regression introduced in v1.3.9). - Fixed to normalize path separators in a fully qualified pathname when using
clink.argmatcher(full_path)
. - The documentation now shows a link icon when hovering over any heading or API name, to make it easy to copy and share links.
v1.3.38
- Added
clink.recognizecommand()
function that input line coloring classifiers can use to find whether to color a word as executable. This is the same mechanism Clink uses internally, and the analysis is asynchronous. - Now
clink.argmatcher(command)
may be passed a fully qualified pathname for command to enable different argmatchers for programs with the same name. - Fixed argmatcher lookup to favor doskey aliases, so that e.g. "
dir
" can be aliased to an alternative program but "Β dir
" can invoke the built-in dir command, and they can each have separate argmatchers. - Fixed the
oncommand
event to also fire when the command word offset changes, because adding/removing a leading space can change whether the command is an alias, which can make the typed command word resolve to a different file or program to invoke. - Fixed
line_state:getcommandoffset()
when the first word is quoted. - Fixed
line_state
parsing for input lines such asfoo.exe&
, so that theexec.enable
setting can generate matches properly. - Fixed completion so that CMD command names are not among the completions when preceded by a quote.
- Fixed
color.argmatcher
color to not overwrite custom colors that may have already been applied. - Fixed
^
to not be a word break character when parsing the input line.
v1.3.37
- When
argmatcher:addarg()
is passed a table containingloopchars="chars"
then the chars are treated as delimiters for a single argument, and they do not move on to the next argument slot in the parser. - Added
clink.parseline()
to parse a string into one or moreline_state
objects. - Added
os.getdrivetype()
to get the drive type for a path; especially useful if your code needs to skip network paths. - Added
match_builder:setvolatile()
to force the matches to be used only once. This makes it possible for match generators to produce different kinds of matches based on what has been typed, e.g. an email address match generator could list user names until@
is typed, and then list domain names. - The
clink-diagnostics
command now lists registered argmatchers when the numeric arg > 1 (Alt-2,Ctrl-x,Ctrl-r). - Rewrote the path parsing routines to properly respect UNC paths and
\\?\
syntax and\\?\UNC\
syntax. - Fixed
clink.print(NONL, etc)
to not print a TAB character after aNONL
that is the first argument. - Fixed #329; file completions may be mistakenly marked as directories (regression introduced in v1.2.36; affects only backward compatibility mode).
- Fixed #326;
rl.expandtilde()
doesn't have a way to expand tildes everywhere in an input line string. - Fixed #325; potential hangs while typing if
%PATH%
contains a UNC path.
v1.3.36
- Incremental search in
clink-popup-history
now centers the found item if it is scrolled out of view. - Tilde expansion is supported for all Lua script directory names and for the
%CLINK_PROFILE%
environment variable (but there is a quirk, and for the profile directory tilde expands to%LOCALAPPDATA%
for backward compatibility purposes). - Fixed some tilde expansion issues; quotes weren't always recognized, and embedded tildes could in some cases result in malformed paths.
- Fixed semicolon delimiter in
%CLINK_COMPLETIONS_DIR%
. - Fixed stack exhaustion crash when using
inject --profile nul
. - Fixed detection of device names when coloring command words; a device name anywhere in a path is not a valid executable.