Skip to content

Releases: chrisant996/clink

v1.6.12

18 Apr 15:55
Compare
Choose a tag to compare
  • Fixed #597; prompt shows leftover text sometimes (regression introduced in v1.6.10).
  • Fixed #596; it's easy to forget whether Enter in history list executes or inserts.

v1.6.11

08 Apr 16:41
Compare
Choose a tag to compare
  • 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

23 Mar 19:04
Compare
Choose a tag to compare
  • 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 and color.unrecognized is not (regression introduced in v1.6.2).

v1.6.9

18 Mar 16:58
Compare
Choose a tag to compare
  • 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

07 Mar 12:46
Compare
Choose a tag to compare

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 for cmd /c so that Clink can optimize and skip injecting into a cmd /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 when exec.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

07 Mar 11:14
Compare
Choose a tag to compare
  • Recognize the little-known cmd /r as a synonym for cmd /c so that Clink can optimize and skip injecting into a cmd /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 when exec.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

04 Mar 04:49
Compare
Choose a tag to compare
  • Added clink history --no-show-time to allow omitting history timestamps even when the history.time_stamp setting is show.
  • 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 in io.open() and io.sopen() (the behavior was correct, but the documentation was inaccurate/unclear).

v1.6.5

27 Feb 03:12
Compare
Choose a tag to compare
  • 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

18 Feb 17:55
Compare
Choose a tag to compare
  • Added rl_buffer:hassuggestion() and rl_buffer:insertsuggestion() for direct access to inserting suggestions without invoking Readline commands.
  • Added clink.dirmatchesexact() and clink.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 the exec.enable setting is enabled.
  • Fixed applying colored-completion-prefix when match display filtering is active or a match has a custom display 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

01 Feb 10:02
Compare
Choose a tag to compare
  • 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-_" or C-_ "\e[27;5;189~"
    Ctrl-Shift-- "\e[27;6;189~" "\C-_" or C-_
    Ctrl-Alt-- "\e\C-_" or "\M-\C-_" or M-C-_ or etc "\e[27;7;189~"
    Ctrl-Alt-Shift-- "\e[27;8;189~" "\e\C-_" or "\M-\C-_" or M-C-_ or etc
  • Completions for all clink set settings include the current value in the description field (e.g. type clink set Alt-= to see Clink settings and their current values).
  • Fixed to differentiate between undo and vi-undo commands again (they do the same thing, but are technically different commands).
  • Fixed execute-named-command to also accept Ctrl-- for undo (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.