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