Skip to content

Releases: chrisant996/clink

v1.5.3

18 Aug 16:29
Compare
Choose a tag to compare
  • Added builder:setfullyqualified() to force completions to be inserted as fully qualified path names.
  • Completions for clink set setting_name input use fully qualified path names for input. This helps avoid accidentally setting relative paths in global settings; since the current directory changes frequently, setting relative paths usually leads to unintended consequences.
  • Only load a script from a completions\ directory if the associated command exists in the file system. Also, pass the fully qualified file name as input to the script (in Lua, use ... to get script arguments, e.g. local command = ...).
  • clink info now reports whether Clink is injected.
  • Improve efficiency of updating the input line display. This eliminates some redundant processing in the Readline library and in Clink.
  • Fixed input line parsing and coloring when the doskey.enhanced setting is off or when doskey macro expansion is suppressed.
  • Fixed line_state:getwordinfo() to accurately set the .alias field when the doskey.enhanced setting is off or when doskey macro expansion is suppressed.
  • Fixed coloring the command word in the command line when queued keys select and accept a command line from history instantly (it could accidentally continue without applying the appropriate coloring).
  • Fixed script error in clink.filematches(nil) and clink.dirmatches(nil); they were meant to behave the same as passing an empty string.

v1.5.2

09 Aug 09:35
Compare
Choose a tag to compare
  • Adjusted the colors in "Use enhanced defaults" to have sufficient contrast to be readable in both Dark and Light terminal themes.
  • More reliably detect whether hosted in Windows Terminal, and even when Windows Terminal is set as the default terminal application.
  • Fixed crash in clink.popuplist() when the current argument is past the end of the list of items.
  • Fixed cursor location when the input line contains embedded CTRL characters.
  • Fixed #474; pasting is slow in Windows Terminal and ConEmu.
  • Fixed #470; typo in help text.

v1.5.1

03 Jul 23:26
Compare
Choose a tag to compare
  • Added rl.getcommandbindings() to get info about a command, including the key(s) bound to it, if any.
  • Changed to also allow clink.popuplist() inside a function registered by clink.onfiltermatches().
  • Changed console input mode handling to more aggressively clear ENABLE_VIRTUAL_TERMINAL_INPUT since it interferes with input (especially Ctrl key combinations) and some console programs set it but accidentally neglect to clear it when they're finished.

v1.5.0

26 Jun 16:56
Compare
Choose a tag to compare
  • Added code-signing.
  • Added note after successful clink update to clarify that the update will take effect in new Clink windows.
  • Fixed order of running the autostart script (from the clink.autostart setting) vs loading Lua; the autostart script should run before Lua so that Lua scripts can query environment variables set by it. Otherwise Lua scripts may behave differently on initial load versus after invoking the clink-reload command (e.g. Ctrl-X,Ctrl-R).
  • Fixed precedence of match colors; readonly should be lower precedence than executable.
  • Fixed #469; incorrect usage of memset().

v1.4.28

18 Jun 23:09
Compare
Choose a tag to compare
  • Added console.getcursorpos() to get the cursor position.
  • Updated os.getscreeninfo() to include the cursor position.
  • Changed character width measurements in Windows Terminal to accommodate certain fully qualified color emoji variants such as "βœ”οΈ" vs "βœ”". The former is U+2714 U+FE0F and Windows Terminal draws a double-width color emoji; the latter is U+2714 and Windows Terminal draws a single-width character in the current font. Note that Windows Terminal draws the characters; Clink just tries to make the best prediction it can about how Windows Terminal will draw the characters.
  • Fixed display glitch where auto-suggest caused the display to scroll up an extra line at the bottom of the screen.
  • Fixed display glitch where cursor position was wrong when the input line ends with a history expansion directive that ends exactly at the right edge of the terminal.
  • Fixed cmd.ctrld_exits so Ctrl-D always exits with return code 0, so that terminal programs allow the shell window to close gracefully.
  • Fixed mouse input when the horizontal-scroll-mode inputrc variable is on.
  • Fixed missing prompt text when a prompt filter encounters an unhandled Lua error; now a placeholder prompt string is used so it's clear where the prompt is.
  • Fixed #467; On-Screen Keyboard in Swedish keyboard layout can't type \.
  • Internal improvements.

v1.4.27

08 Jun 18:26
Compare
Choose a tag to compare
  • Fixed when the terminal.emulate setting is auto on Windows 8.1 and earlier (regression introduced in v1.4.26).

v1.4.26

08 Jun 10:06
Compare
Choose a tag to compare
  • Added built-in support for shell integration with Windows Terminal v1.18 and higher. Note: Windows Terminal gets confused about the command line text when the transient prompt is enabled.
  • Changed clink.getansihost() to return two strings; the first string is the mode in use, and the new second string is what Clink detected (and will use when the terminal.emulation setting is auto).
  • Fixed to use terminal emulation when the terminal.emulate setting is auto and ANSICON is present. Clink's output is no longer able to be intercepted by ANSICON, so bypass it and use Clink's own terminal emulation.
  • Fixed #461; crash due to invalid RVA in ANSI32.DLL or ANSI64.DLL (ANSICON).

v1.4.25

23 May 17:55
Compare
Choose a tag to compare
  • Now os.issignaled() works during onendedit and onfilterinput 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

18 Apr 23:19
Compare
Choose a tag to compare
  • Added path.fnmatch() which behaves like the Linux fnmatch(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

16 Mar 02:27
Compare
Choose a tag to compare
  • 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.