Skip to content

Releases: chrisant996/clink

v1.3.45

04 Oct 19:04
Compare
Choose a tag to compare
  • 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 the cd 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

27 Sep 02:24
Compare
Choose a tag to compare
  • Fixed #348; pasting in ConEmu or Windows Terminal duplicates the 2nd character (regression introduced in v1.3.43).

v1.3.43

26 Sep 16:06
Compare
Choose a tag to compare
  • 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 as clink-expand-history Alt-^, or clink-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 the match.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 recognize foo.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

02 Sep 22:59
Compare
Choose a tag to compare
  • 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

02 Sep 00:23
Compare
Choose a tag to compare
  • 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 with luafunc: macros (or any macro), to be shown in the clink-show-help and clink-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

24 Aug 15:37
Compare
Choose a tag to compare
  • 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(). Now cmd /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

15 Aug 02:09
Compare
Choose a tag to compare
  • "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

02 Aug 03:19
Compare
Choose a tag to compare
  • 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 as foo.exe&, so that the exec.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

22 Jul 02:30
Compare
Choose a tag to compare
  • When argmatcher:addarg() is passed a table containing loopchars="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 more line_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 a NONL 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

10 Jul 00:40
Compare
Choose a tag to compare
  • 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.