github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/docs/changelog/v4.4.md (about) 1 # v4.4 2 3 v4.4 features two new builtins, improvements in testing, and automatic generation of autocompletion suggestions backed by man page parsing. Plus there has been a lot of focus on improving _readline_ responsiveness 4 5 ## v4.4.9500 6 7 ### Breaking Changes 8 9 None 10 11 ### Features 12 13 * autocompletion: `su` integration for Linux 14 15 * `$GOPATH` is no longer required to run unit tests 16 17 ### Bug Fixes 18 19 * readline: paths wouldn't autocomplete on scalars (eg `cd $GOPATH/...`) 20 21 * readline: previews wouldn't work against variables (eg `vi ~/file.txt`) 22 23 ## v4.4.9000 24 25 ### Breaking Changes 26 27 None 28 29 ### Features 30 31 * readline: `f1` should work even outside of autocomplete 32 33 * readline: wider preview pane 34 35 ### Bug Fixes 36 37 * readline: fix preview wrapping on long lines 38 39 * readline: image previews should scale to preview height 40 41 * readline: better handling of terminal resizing 42 43 ## v4.4.8000 44 45 ### Breaking Changes 46 47 * `alt`+`1`..`9` hotkeys replaced with `shift`+`f1`..`f12`. Changed because `alt`+numeric rarely worked ([read more](../user-guide/terminal-keys.md#recalling-previous-words)) 48 49 ### Features 50 51 None 52 53 ### Bug Fixes 54 55 * `@IncManPages` `autocomplete` value for **Dynamic** directive renamed to `@IncManPage`, like the **IncManPage** directive 56 57 * readline: render glitch fixed with delayed completions racing against hint text updates 58 59 * readline: render glitches fixed when buffers are not being reset correctly after preview box has, or should have, closed 60 61 * readline: man page preview now removes backspace characters correctly from UNIX docs 62 63 * readline: man page preview now more reliably scrolls to the right line when a flag is highlighted in autocompletion 64 65 * readline: preview now works for list views as well as grid views 66 67 ## v4.4.7000 68 69 ### Breaking Changes 70 71 * **preview-enabled** `config` option removed. This actually doesn't break anything, just produces a warning. The `config` option was also undocumented and experimental 72 73 ### Features 74 75 * Preview is now considered stable. Press `f1` while autocomplete is open to use ([read more](../user-guide/terminal-keys.md#preview-box)) 76 77 ### Bug Fixes 78 79 * readline: render glitch fixed with delayed path completions 80 81 * readline: excess white spaces removed from man page descriptions 82 83 ## v4.4.x 84 85 ### Breaking Changes 86 87 * 'Name' field dropped from `onCommandCompletion` interrupt (this field was never documented) 88 89 ### Features 90 91 * New builtin, `round`, which can perform rounding operations on numerical inputs ([#630](https://github.com/lmorg/murex/issues/630), [read more](../commands/round.md)) 92 93 * Vastly improved automatic man page parsing. Now descriptions are pulled alongside the flags and results are cached 94 95 * `man-get-flags` now includes a `-d` / `--description` flag to expose the improved man page parser 96 97 * New builtin, `return`, which exits a given function scope (eg `function`, `private`, **Dynamic** block in `autocomplete`, etc) 98 99 * Improved `git` autocompletions 100 101 * `find` autocompletions added 102 103 * builtin profiles are now imported as separate modules. This makes debugging easier 104 105 * `/integrations` directory added to Murex source, the aim of which is to make it easier for people to contribute autocompletions and other integrations with common command line tools ([Github](https://github.com/lmorg/murex/tree/master/intergrations)) 106 107 * readline: new word jump hotkeys `ctrl`+`left` / `ctrl`+`right` (PC) 108 109 * readline: new word jump hotkeys `option`+`left` / `option`+`right` (Mac) 110 111 ### Bug Fixes: 112 113 * `test` would always run first in any block, regardless of the preferred order of execution. This was because `test (unit|state|config)` required altering the execution state of the shell. The drawback was that `test (run|define|report)` would also run unexpectedly. This lead to hacks like `try { test run * }` to force the correct order of operations. Now the parameters of `test` are checked to determine when to execute the builtin. 114 115 * `int` types couldn't be compared against `num` types with `>`, `>=`, `<`, `<=` operators 116 117 * readline: `^d` will not send EOF if line is not empty. The original behaviour was by design however after pressing `^d` a few too many times when I intended to press `^f` or `^r`, I decided the original design was wrong 118 119 * `FileRef` wasn't being set in `test`. This caused some tests to fail if they called private functions 120 121 * Check `~/.ssh/config` exists before trying to parse it in `getHostsFile` private (used for SSH and similar tools autocompletions) 122 123 * readline: lots of work done on speeding up redraws and overall responsiveness. eg buffered autocompletion menus 124 125 * readline: hint text should _never_ be displayed if disabled via `config` 126 127 * readline: soft timeout halved (this can be overridden via `config`) 128 129 * readline: cropped autocompletion suggestions in gridded layout were one character too short (off by one error) 130 131 <hr> 132 133 Published: 27.07.2023 at 23:12 134 135 ## See Also 136 137 * [FileRef](../user-guide/fileref.md): 138 How to track what code was loaded and from where 139 * [Terminal Hotkeys](../user-guide/terminal-keys.md): 140 A list of all the terminal hotkeys and their uses 141 * [`autocomplete`](../commands/autocomplete.md): 142 Set definitions for tab-completion in the command line 143 * [`config`](../commands/config.md): 144 Query or define Murex runtime settings 145 * [`event`](../commands/event.md): 146 Event driven programming for shell scripts 147 * [`expr`](../commands/expr.md): 148 Expressions: mathematical, string comparisons, logical operators 149 * [`function`](../commands/function.md): 150 Define a function block 151 * [`int`](../types/int.md): 152 Whole number (primitive) 153 * [`man-get-flags` ](../commands/man-get-flags.md): 154 Parses man page files for command line flags 155 * [`num` (number)](../types/num.md): 156 Floating point number (primitive) 157 * [`onCommandCompletion`](../events/oncommandcompletion.md): 158 Trigger an event upon a command's completion 159 * [`private`](../commands/private.md): 160 Define a private function block 161 * [`return`](../commands/return.md): 162 Exits current function scope 163 * [`round`](../commands/round.md): 164 Round a number by a user defined precision 165 * [`test`](../commands/test.md): 166 Murex's test framework - define tests, run tests and debug shell scripts 167 168 <hr/> 169 170 This document was generated from [gen/changelog/v4.4_doc.yaml](https://github.com/lmorg/murex/blob/master/gen/changelog/v4.4_doc.yaml).