Murex Versions Save

A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)

v4.4.9500

10 months ago

v4.4.9500

Breaking Changes

None

Features

  • autocompletion: su integration for Linux

  • $GOPATH is no longer required to run unit tests

Bug Fixes

  • readline: paths wouldn't autocomplete on scalars (eg cd $GOPATH/...)

  • readline: previews wouldn't work against variables (eg vi ~/file.txt)

v4.4.9100

10 months ago

Resolves a regression bug: CTRL+A CTRL+E cursor position is off https://github.com/lmorg/murex/issues/664

v4.4.9000

10 months ago

v4.4.9000

Breaking Changes

None

Features

  • readline: f1 should work even outside of autocomplete

  • readline: wider preview pane

Bug Fixes

  • readline: fix preview wrapping on long lines

  • readline: image previews should scale to preview height

  • readline: better handling of terminal resizing

v4.4.8000

10 months ago

v4.4.8000

Breaking Changes

  • alt+1..9 hotkeys replaced with shift+f1..f12. Changed because alt+numeric rarely worked (read more)

Features

None

Bug Fixes

  • @IncManPages autocomplete value for Dynamic directive renamed to @IncManPage, like the IncManPage directive

  • readline: render glitch fixed with delayed completions racing against hint text updates

  • readline: render glitches fixed when buffers are not being reset correctly after preview box has, or should have, closed

  • readline: man page preview now removes backspace characters correctly from UNIX docs

  • readline: man page preview now more reliably scrolls to the right line when a flag is highlighted in autocompletion

  • readline: preview now works for list views as well as grid views

v4.4.7000

10 months ago

Breaking Changes

  • preview-enabled config option removed. This actually doesn't break anything, just produces a warning. The config option was also undocumented and experimental

Features

  • Preview is now considered stable. Press f1 while autocomplete is open to use (read more)

Bug Fixes

  • readline: render glitch fixed with delayed completions (most noticeable with path completions)

  • readline: excess white spaces removed from man page descriptions

v4.4.6110

10 months ago

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

Breaking Changes

  • 'Name' field dropped from onCommandCompletion interrupt (this field was never documented)

Features

  • New builtin, round, which can perform rounding operations on numerical inputs (#630, read more)

  • Vastly improved automatic man page parsing. Now descriptions are pulled alongside the flags and results are cached

  • man-get-flags now includes a -d / --description flag to expose the improved man page parser

  • New builtin, return, which exits a given function scope (eg function, private, Dynamic block in autocomplete, etc)

  • Improved git autocompletions

  • find autocompletions added

  • builtin profiles are now imported as separate modules. This makes debugging easier

  • /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)

  • readline: new word jump hotkeys ctrl+left / ctrl+right (PC)

  • readline: new word jump hotkeys option+left / option+right (Mac)

Bug Fixes:

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

  • int types couldn't be compared against num types with >, >=, <, <= operators

  • 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

  • FileRef wasn't being set in test. This caused some tests to fail if they called private functions

  • Check ~/.ssh/config exists before trying to parse it in getHostsFile private (used for SSH and similar tools autocompletions)

  • readline: lots of work done on speeding up redraws and overall responsiveness. eg buffered autocompletion menus

  • readline: hint text should never be displayed if disabled via config

  • readline: soft timeout halved (this can be overridden via config)

  • readline: cropped autocompletion suggestions in gridded layout were one character too short (off by one error)

v4.3.3200

10 months ago

Breaking Changes

  • pre-prompt-func and post-prompt-func have been replaced with onPrompt events: event onKeyPress example=before { ... }

  • The onFileSystemChange event payload now lowercases the filesystem event operation string. However until this release, that payload was undocumented (read more)

Features

  • New events, onPrompt, triggered when the interactive prompt is at various stages

  • Dynamic and DynamicDesc autocompletions can have their partial term prefix filter disabled (read more, previous discussion)

  • New autocompletions: gping

Bug Fixes:

  • Improved Windows support. Arrow keys and other special keys are now handled correctly (#630)

  • Fix ctrl+a offset by 1 error (#628)

v4.2.5110

11 months ago

A minor patch to re-enable tab completion on commands

v4.2.5000

11 months ago

Murex usage has raised considerably in recent weeks. This release addresses a number of feature requests and bugs raised on Github.

Breaking Changes

none

Features

  • new flag in foreach: --step <int>. This allows the foreach to jump indexes at a time. When used, all the lines jumped are merged into a JSON array and that is passed to the foreach nested code block

  • new alias builtin => fexec builtin. This was added to bring more familiarity to those coming from Bash et al (#608)

  • on Darwin, Homebrew defaults are imported, just like you'd expect them to be from any other shell

  • aa few new hotkeys (#611) (#613):

    1. ctrl+a: jump to beginning of line

    2. ctrl+e: jump to end of line

    3. alt+f: jump forwards a word at a time

    4. alt+b: jump backwards a word at a time

    5. ctrl+k: clear line after cursor position

    6. ctrl+l: clear entire screen

    7. ctrl+g: same as esc

  • `open`` builtin should fallback to system default if type unknown (#620)

  • pre-prompt-func added to config. Block runs before the interactive prompt is displayed

  • post-prompt-func added to config. Block runs after the interactive prompt has been exited but before any command lines have been executed

  • auto-cd option added to config: config: set shell auto-cd true. This allows you to traverse directories without having to prefix cd. By default it is disabled

  • Meta values added to foreach, formap, and while. Meta values are a $. variable that holds meta-information about the running block, such as the number of iterations in a loop

  • command alias for exec (for familiarity with Bash)

  • builtin alias for fexec builtin (for familiarity with Bash)

Bug Fixes:

  • brace encapsulated variables, eg $(foobar), now autocomplete as expected

  • improvements to inlining images in iTerm2 when shell running on top of tmux. It still doesn't work reliably but this is an issue with tmux rather than Murex

  • method forwards exceptions rather than errors. This behaviour has been changed to surface issues as errors

  • profile_preload.mx added to profile defaults. This will be loaded before any of the OS-specific profiles

  • missing rune length check causing the shell to panic (#617)

  • fixed deadlock in flag parsing

  • zero length string title bars should be ignored (#614)

  • minor improvements to documentation

v4.1.7300

11 months ago

The previous releases have brought significant advancements to Murex's syntax but at the cost of longer gaps between releases. So the 4.1.x versions will be shorter releases but focusing on bug fixes. The 4.1.x release notes will be appended to murex.rocks changelog and available on Github releases too

v4.1.7300

Breaking Changes

None

Features

  • generic * data type marshaller can now marshal maps (#593)

  • range can count from end when supplied with a negative index (read more)

Bug Fixes

  • fexec private should inherit module string from the owners module (#600)

  • source-ed files should be loaded into a module of a similar name to the parent module

  • new code blocks, {, should force a new parameter when following a closing block, } (#603)

  • fixed problem with encapsulated variables, eg $(PWD), not getting parsed correctly by syntax highlighter