Skip to content

Releases: chrisant996/clink

v1.7.22

07 Aug 00:14
Compare
Choose a tag to compare
  • Explicitly disable loadlib and related support in Lua; Clink uses a statically linked Lua engine and does not support dynamic C libraries.
  • Fixed the onprovideline event so it doesn't interfere with the same_dir mode of prompt.transient.
  • Fixed input line coloring of echo in for %i (1 2 3) do @echo %i (regression introduced in v1.6.16).
  • Fixed how clink autorun set parses flags and quotes, so that clink autorun set \"c:\my tools\clink\" inject --autorun works as expected.
  • Fixed the exec.commands setting when an argmatcher uses :chaincommand().
  • Fixed edge cases for @ command prefix when an argmatcher uses :chaincommand().
  • Fixed #779; an argmatcher's onadvance callback accidentally advanced two times if it advanced to the last argument slot.
  • Fixed #782; on Windows 8.1, some multiline prompts may render with extra blank lines.

v1.7.21

13 Jul 22:29
Compare
Choose a tag to compare
  • Fixed TAB expansion of foo ~ when there is no argmatcher for foo.
  • Fixed #772; uninstall fails to uninstall autorun if the logged on user is not an administrator.
  • Fixed #773; unexpected completion behavior after a doskey alias command.

v1.7.20

08 Jun 18:45
Compare
Choose a tag to compare
  • Fixed #763; transient prompt has blank line after it if the input line is the width of the terminal (regression introduced in v1.7.0).
  • Fixed #765; inside a batch script, setlocal interferes with injecting Clink (regression introduced in v1.1.1).

v1.7.19

23 May 17:18
Compare
Choose a tag to compare
  • Fixed some unnecessary work that was performed when starting the Lua engine (a tiny performance boost).
  • Fixed os.getcwd() when the LongPathsEnabled regkey is set.
  • Fixed the application manifest for the clink_*.exe programs to mark them as longPathAware (this doesn't affect CMD; while Clink is injected in CMD, then CMD's manifest is what controls long path awareness).
  • Fixed the oncommand event when using clink-popup-history to select and execute a command from history.
  • Fixed #756; Clink could potentially think it wasn't elevated when running as LOCAL_SYSTEM or the builtin Administrator account.
  • Fixed #758; avoid crashing in a pathological case where something else abuses CMD by injecting background threads that actively garble input and output.
  • Fixed the info command in the Lua debugger.

v1.7.18

03 May 18:00
Compare
Choose a tag to compare

v1.7.18

  • Fixed #752; clink config theme use {name} reports an error (regression introduced in v1.7.17).

v1.7.17

  • Added "4-bit Enhanced Defaults.clinktheme" color theme which approximates the "Enhanced Defaults" colors using only 4-bit terminal colors.
  • Added a clink config theme save -d flag to save a color theme with placeholders for color settings whose current value matches its default value. Loading a color theme saved this way resets those colors to whatever default values are defined at the moment the file is loaded.
  • Changed the default behavior for throttling Lua coroutines. By default there is no throttling anymore. The new lua.throttle_interval setting can be used to enable throttling of Lua coroutines if they cause responsiveness issues. Prior to this, the throttling interval had been hard-coded to 5 seconds, but now it's configurable and is 0 by default (no throttling).
  • Changed rl.getpromptinfo() to be allowed during transient prompt filtering (but still not during normal prompt filtering).
  • Added an optimization to replay keyboard macros faster.
  • Added an optimization to read key sequences faster, which makes Clink a little more responsive while typing.
  • Fixed erasing leftover input text if the prompt height changes while typing.
  • Fixed the oncommand event when an argmatcher uses :chaincommand().
  • Fixed the line_state sent to luafunc: macros invoked during a keyboard macro (it was empty if the keyboard macro had changed the input line).
  • Fixed use of clink.promptcoroutine() during transient prompt filtering (it was accidentally trying to do asynchronous prompt filtering, which isn't possible during transient prompt filtering).
  • Fixed the onadvance callback in argmatchers so it doesn't interfere with match generation.
  • Fixed a problem where clink-popup-history could leak or lose the undo list from the current input line.
  • Fixed an error when applying a *.clinktheme file with a [clear] section.
  • Fixed #751; multi-line oh-my-posh config without newlines causes display problem.

v1.7.17

02 May 21:46
Compare
Choose a tag to compare
  • Added "4-bit Enhanced Defaults.clinktheme" color theme which approximates the "Enhanced Defaults" colors using only 4-bit terminal colors.
  • Added a clink config theme save -d flag to save a color theme with placeholders for color settings whose current value matches its default value. Loading a color theme saved this way resets those colors to whatever default values are defined at the moment the file is loaded.
  • Changed the default behavior for throttling Lua coroutines. By default there is no throttling anymore. The new lua.throttle_interval setting can be used to enable throttling of Lua coroutines if they cause responsiveness issues. Prior to this, the throttling interval had been hard-coded to 5 seconds, but now it's configurable and is 0 by default (no throttling).
  • Changed rl.getpromptinfo() to be allowed during transient prompt filtering (but still not during normal prompt filtering).
  • Added an optimization to replay keyboard macros faster.
  • Added an optimization to read key sequences faster, which makes Clink a little more responsive while typing.
  • Fixed erasing leftover input text if the prompt height changes while typing.
  • Fixed the oncommand event when an argmatcher uses :chaincommand().
  • Fixed the line_state sent to luafunc: macros invoked during a keyboard macro (it was empty if the keyboard macro had changed the input line).
  • Fixed use of clink.promptcoroutine() during transient prompt filtering (it was accidentally trying to do asynchronous prompt filtering, which isn't possible during transient prompt filtering).
  • Fixed the onadvance callback in argmatchers so it doesn't interfere with match generation.
  • Fixed a problem where clink-popup-history could leak or lose the undo list from the current input line.
  • Fixed an error when applying a *.clinktheme file with a [clear] section.
  • Fixed #751; multi-line oh-my-posh config without newlines causes display problem.

v1.7.16

14 Apr 09:25
Compare
Choose a tag to compare
  • Fixed potential crash after pressing Home and then deleting the first word in the input line (regression introduced in v1.7.15).

v1.7.15

12 Apr 21:36
Compare
Choose a tag to compare
  • Fixed the sequence of characters clink echo reports for Ctrl-Bkspc.
  • Fixed an issue where the match.expand_abbrev setting could accidentally move the cursor position when trying to complete x:\does_not_exist.
  • Fixed input line coloring to refresh the display if clink.argmatcher() registers a new argmatcher in response to an event such as clink.oncommand.
  • Fixed extra prompt(s) that could printed if a luafunc: command used rl_buffer:beginoutput() and then rl.invokecommand() to invoke another luafunc: command that did the same, nesting multiple times.
  • Fixed negative numeric arguments with rl_buffer:getargument() and rl_buffer:setargument().
  • Fixed potential heap corruption in os.enumshares().
  • Fixed both completions and clink.parseline() when a command is a doskey alias but ends up with only a command name and spaces after expanding the alias (completions got confused about which argument slot was being completed, and clink.parseline() accidentally reported an extra empty word at the end of the input line).
  • Fixed #743; output doesn't scroll terminal correctly when the terminal screen buffer width is wider than the terminal window width (regression introduced in v1.6.2).
  • Fixed #744; git.getaction() prevents git from properly cleaning up rebase files if you edit a commit during a rebase.
  • Fixed #745; out of bounds read in memcpy after typing cmd /;= and then moving the cursor left twice (regression introduced in v1.5.17).

v1.7.14

03 Apr 00:52
Compare
Choose a tag to compare
  • Added a new clink.scroll_offset setting which controls how many lines to show above or below the selected item in popup lists or the clink-select-complete command (default is 3).
  • Changed clink set name to include the default value of the named setting.
  • The Antares clinkprompt now allows configuring the characters for showing the previous command's exit code (refer to the Antares.clinkprompt file for details).
  • The clink-diagnostics and clink-diagnostics-output bindable commands also show the current *.clinkprompt custom prompt file, if any.
  • Fixed a problem where Esc could leak or corrupt history undo lists when used after searching history (the problem existed since v0.1 in 2012).
  • Fixed the clink-show-help command to stop listing the A-f default key binding as an "Uncategorized" command.
  • Fixed a typo in the Antares clinkprompt when trying to detect a bare git repo.
  • Fixed the history.sticky_search setting (regression introduced in v1.5.12).
  • Fixed default color for color.selected_completion to have better contrast ratio in light terminal themes.
  • Fixed input edge cases in the win-history-list command which missed updating the display.
  • Fixed a color glitch in the clink-popup-history command for history lines marked as having been modified in memory.
  • Fixed the win-history-list command to show a mark for history lines that have been modified in memory, like the clink-popup-history command already does.
  • Fixed an issue where instead of always starting on a new line, output from a command could potentially accidentally start at the end of the input line.
  • Fixed some memory management bugs in history item undo lists.
  • Added a workaround to fix #738; Windows Terminal does not handle the CSI K code correctly when the cursor is past the end of the screen line.
  • Improvements for #739; ConsoleZ, ConEmu, and other tools can interfere with injecting Clink (there's no way to completely prevent opportunities for interference, but this reduces the chances).

v1.7.13

21 Mar 10:04
Compare
Choose a tag to compare
  • Added an error message when clink set fails to write the clink_settings file (e.g. no permission or the file is marked read-only).
  • Added logging when clink inject is slow.
  • Added keyboard info in clink echo --verbose.
  • Condensed the logging during clink inject, but if an error occurs while hooking system APIs then it automatically emits verbose logging instead of condensed logging.
  • Fixed the maximum vertical scroll position limiter to include the input hint row when using the legacy Windows conhost.
  • Fixed #732; Executable Completion does not recognize .LNK files.