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

     1  # v2.3
     2  
     3  This release includes significant changes to the interactive terminal
     4  
     5  This release brings some major improvements to the discoverability of commands
     6  and their parameters in the interactive terminal.
     7  
     8  ### User Facing Changes:
     9  
    10  * New builtin: `method`. This is used to help turn some commands into a
    11    "method", similar in concept to object orientated development where the tab-
    12    completer will return a list of other commands that are compatible with the
    13    formers output data types. It's purely an autocompletion tool and has no
    14    effect in shell scripts.
    15  
    16  * Autocompletion suggestions will differ based on what pipes are used. The idea
    17    behind this is to improve the discoverability of commands. All tokens can
    18    still be used to pipeline to any command type (like before). This rule only
    19    affects autocomplete suggestions in the interactive prompt.
    20  
    21    - `|` will show all available aliases, functions, builtins and external
    22      commands, as usual
    23  
    24    - `->` will default to showing only compatible commands defined in `method`
    25      (see above), however if no methods are found then `->` will fall back to
    26      suggesting all available aliases, functions, builtins and external commands,
    27      like `|`.
    28      
    29    The idea here is for `->` to surface commands that are commonly
    30    expected to be pipelined together but without forcing the user to pause and
    31    remember which token exposes what commands. While `|` is still available for
    32    familiarity
    33  
    34  * Autocompletion de-duplication now places hyphen-prefixed flags at the end of
    35    the results when sorting. This helps bring more relevant flags forward, with
    36    hyphen-prefixed flags still visible when users press `-`
    37  
    38  * External commands return a error message if the exit status is non-zero
    39    ([issue #299](https://github.com/lmorg/murex/issues/299))
    40    ```
    41    ยป exec: false
    42    Error in `exec` (1,1): exit status 1
    43    ```
    44  
    45  * `Index()` (`[`) now returns a different data type from the root object if the
    46    element is a string, integer, float64, boolean or nil ([issue #316](https://github.com/lmorg/murex/issues/316))
    47  
    48  * `runtime` was missing a few flags for reporting supported data types against
    49    the newer APIs
    50  
    51  * Generic types (`*` / `generic`) to include two spaces between columns when
    52    marshalled
    53  
    54  * Syntax highlighter colour tweaks -- no longer using background highlighting
    55    because that looks weird and unreadable on some terminal colour schemes
    56  
    57  * Bug fixes to the fast parser
    58  
    59  * Bug fixes to readline merged from `v2.2.1200` ([issue #362](https://github.com/lmorg/murex/issues/362))
    60  
    61  ### Non-User Facing / Maintenance Changes:
    62  
    63  * `hcl` and `bson` types now use `ReadArray` templates so their behavior should
    64    mimic JSON and YAML
    65  
    66  * Fast parser is now aware of which pipe token (eg `|`, `->`, `=>`, `?`) is used
    67  
    68  * Unit test concurrency fix
    69  
    70  * New tests written for the fast parser
    71  
    72  * Refactored code around hint text and completions to allow for a potential new
    73    UI feature to be built in the future
    74  
    75  * Updated documentation
    76  
    77  <hr>
    78  
    79  Published: 26.09.2021 at 11:33
    80  
    81  ## See Also
    82  
    83  * [`->` Arrow Pipe](../parser/pipe-arrow.md):
    84    Pipes STDOUT from the left hand command to STDIN of the right hand command
    85  * [`method`](../commands/method.md):
    86    Define a methods supported data-types
    87  * [`runtime`](../commands/runtime.md):
    88    Returns runtime information on the internal state of Murex
    89  * [`|` POSIX Pipe](../parser/pipe-posix.md):
    90    Pipes STDOUT from the left hand command to STDIN of the right hand command
    91  
    92  <hr/>
    93  
    94  This document was generated from [gen/changelog/v2.3_doc.yaml](https://github.com/lmorg/murex/blob/master/gen/changelog/v2.3_doc.yaml).