github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/docs/changelog/v4.0.md (about)

     1  # v4.0
     2  
     3  This release sees significant improvements for use with non-latin characters in both the interactive prompt and shell scripting. It introduces new syntax to make working with structured data even easier than before. As well as new data types and smoother user experience.
     4  
     5  ## Breaking Changes
     6  
     7  * `$PWD` is no longer a `str`. If you need to parse `$PWD` as a string then you should `out: $PWD` or use `${pwd}`
     8  
     9  * `.` is now a valid bareword character for variables. This will break any instances in code that contain something like `out $hello.` however you can now use `out $(hello).` syntax for safer string infixing
    10  
    11  ## Features
    12  
    13  * dot notation added for variables which allow accessing and writing to object properties. eg `$json.array.index`
    14  
    15  * added support variable encapsulation via `$()` to avoid variable barewords from leaking into other values when infixed. eg `$(foobar)` is the same as `$foobar` ([read more](../parser/string.md))
    16  
    17  * variable names can now be Unicode, eg `$(比如) = "举手之劳就可以使办公室更加环保,比如,使用再生纸。"` ([read more](../parser/string.md))
    18  
    19  * Unicode wide characters are properly handled in readline
    20  
    21  * new data type `path` that is an object
    22  
    23  * new data type `paths`
    24  
    25  * support for lambdas added to variables: eg `@array[{ function }]`
    26  
    27  * readline `[ctrl]`+`[f]` now supports word matching as well as regexp ([read more](../user-guide/terminal-keys.md))
    28  
    29  * readline `[ctrl]`+`[f]` now supports glob filters (eg `*.txt`) too ([read more](../user-guide/terminal-keys.md))
    30  
    31  * `$ENV` and `$GLOBAL` objects (deprecates the need for `global` and `export`)
    32  
    33  * improved error messages in expressions
    34  
    35  * scalars can be used as assignees in expressions, eg `$foo = "bar"`
    36  
    37  * added `-i` flag to ssh autocompletion
    38  
    39  * readline prompts are now buffered to reduce cursor flickering
    40  
    41  ## Non-User Facing / Maintenance Changes
    42  
    43  * backend support added for data types to be dynamic objects
    44  
    45  * updated autocompletion code for `docker` and `git`
    46  
    47  ## Bug Fixes
    48  
    49  * better wide character support in auto completion suggestions
    50  
    51  * function parameters default and comment fields are no longer order dependent 
    52  
    53  * better string parsing for barewords inside arrays and objects
    54  
    55  * ahead of time hint caching now done on demand per hint page rather than against every executable upon Murex start up
    56  
    57  * new lines should be ignored in `%{}`
    58  
    59  * bareword `true` and `false` should be converted to boolean in `%{}`
    60  
    61  * autocomplete suggestions are now dedup'ed when delayed results return similar suggestions to fast results
    62  
    63  * various preview pane bug fixes
    64  
    65  * support for ANSI escape sequences in experimental (disabled by default) TTY buffer
    66  
    67  * correction to `count` docs
    68  
    69  * error not handled in regexp expression matches, `=~`
    70  
    71  <hr>
    72  
    73  Published: 26.03.2023 at 17:50
    74  
    75  ## See Also
    76  
    77  * [Interactive Shell](../user-guide/interactive-shell.md):
    78    What's different about Murex's interactive shell?
    79  * [Terminal Hotkeys](../user-guide/terminal-keys.md):
    80    A list of all the terminal hotkeys and their uses
    81  * [`%[]` Create Array](../parser/create-array.md):
    82    Quickly generate arrays
    83  * [`%{}` Create Map](../parser/create-object.md):
    84    Quickly generate objects and maps
    85  * [`count`](../commands/count.md):
    86    Count items in a map, list or array
    87  * [`function`](../commands/function.md):
    88    Define a function block
    89  * [`path`](../types/path.md):
    90    Structured object for working with file and directory paths
    91  * [`paths`](../types/paths.md):
    92    Structured array for working with `$PATH` style data
    93  * [`string` (stringing)](../types/str.md):
    94    string (primitive)
    95  
    96  <hr/>
    97  
    98  This document was generated from [gen/changelog/v4.0_doc.yaml](https://github.com/lmorg/murex/blob/master/gen/changelog/v4.0_doc.yaml).