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).