github.com/elves/elvish@v0.15.0/website/blog/0.12-release-notes.md (about) 1 Version 0.12 has been released six months after 0.11, bringing many new features 2 and bugfixes. 3 4 As usual, prebuilt binaries can be found in [get](../get). 5 6 # Breaking Changes 7 8 - The `shared:` namespace has been removed. 9 10 - Line continuations now use backslashes instead of backquotes, in line with 11 POSIX syntax. 12 13 - The `resolve` builtin now returns a string. 14 15 - The variables `$edit:loc-{pinned,hidden}` have been moved into the 16 `edit:location:` namespace, now `$edit:location:{pinned,hidden}` 17 18 - The variable `$edit:arg-completer` has been moved to 19 `$edit:completion:arg-completer`. 20 21 # Notable Fixes and Enhancements 22 23 - The [Elvish package manager](../ref/epm.html) has landed (thanks to 24 @zzamboni!). 25 26 - A `str:` module has been added 27 ([#576](https://github.com/elves/elvish/issues/576)). 28 29 - Styling of the web interface (`elvish -web`) has been reworked, now 30 featuring a dark theme as well as a light theme. 31 32 - Namespaces can now be accessed by as variables with a trailing `:` in the 33 name (e.g. the `edit:` namespace variable can be accessed as `$edit:`). 34 These variables can be indexed like maps 35 ([#492](https://github.com/elves/elvish/issues/492), 36 ([#631](https://github.com/elves/elvish/issues/631))). 37 38 - Support for urxvt-style key sequences has been improved 39 ([#579](https://github.com/elves/elvish/issues/579)). 40 41 - Numbers can now be used as normal variable names (e.g. `$1`). 42 43 - The interactive namespace can now be built dynamically by assigning to the 44 `$-exports-` variable in `rc.elv` 45 ([#613](https://github.com/elves/elvish/issues/613)). 46 47 - Closures can now be introspected 48 ([#560](https://github.com/elves/elvish/issues/560), 49 [#617](https://github.com/elves/elvish/issues/617)). 50 51 - The variable for customizing matchers in completion mode has graduated from 52 `$edit:-matcher` to `$edit:completion:matcher`. 53 54 - The `joins` command no longer ignores leading empty values 55 ([#616](https://github.com/elves/elvish/issues/616)). 56 57 - The `while` special command no longer swallows exceptions 58 ([#615](https://github.com/elves/elvish/issues/615)). 59 60 - The `finally` block of the `try` special command no longer swallows 61 exceptions ([#619](https://github.com/elves/elvish/issues/619)). 62 63 - A set of builtin commands for manipulating environment variables - 64 `has-env`, `get-env`, `set-env`, `unset-env` - has been added. 65 66 - The prompts are now rendered asynchronously. The appearance of 67 [stale prompts](../ref/edit.html#stale-prompt) can be customized. 68 69 - Experimental support for customizing the 70 [eagerness of prompts](https://elv.sh/ref/edit.html#prompt-eagerness). 71 72 - Elvish now writes a `\r` to the terminal before suspending the editor 73 ([#629](https://github.com/elves/elvish/issues/629); thanks to @krader1961 74 for the analysis!). 75 76 - New `edit:history:fast-forward` command to import command history after the 77 current session started. 78 79 - The completion mode no longer completes the longest common prefix 80 ([#637](https://github.com/elves/elvish/issues/637)). 81 82 - New `store:del-dir` command for deleting directory history. 83 84 - Add chdir hooks [`$before-chdir`](../ref/builtin.html#before-chdir) and 85 [`$after-chdir`](../ref/builtin.html#after-chdir). 86 87 - Location mode now supports the notion of workspaces 88 ([#643](https://github.com/elves/elvish/issues/643)). 89 90 - The output of `elvish -buildinfo -json` is now actually valid JSON 91 ([#682](https://github.com/elves/elvish/issues/682)). 92 93 - New [`styled`](../ref/builtin.html#styled) and 94 [`styled-segment`](../ref/builtin.html#styled-segment) commands (thanks to 95 @fehnomenal!) ([#520](https://github.com/elves/elvish/issues/520), 96 [#674](https://github.com/elves/elvish/issues/674)). 97 98 - New builtin `$notify-bg-job-success` variable for suppressing notification 99 of the success of background jobs (thanks to @iwoloschin!) 100 ([#689](https://github.com/elves/elvish/issues/689)). 101 102 - New builtin `$num-bg-jobs` variable for tracking number of background jobs 103 ([#692](https://github.com/elves/elvish/issues/692)). 104 105 - The `edit:complete-getopt` command now supports supplying a description for 106 arguments of options (thanks to @zzamboni!) 107 ([#693](https://github.com/elves/elvish/issues/693)). 108 109 - Complex candidates built with `edit:complex-candidate` are now indexable 110 (thanks to @zzamboni!) ([#691](https://github.com/elves/elvish/issues/691)). 111 112 - New `-norc` flag for skipping `rc.elv` (thanks to @iwoloschin!) 113 ([#707](https://github.com/elves/elvish/issues/707)). 114 115 - Elvish now guards against commands messing up terminal attributes 116 ([#706](https://github.com/elves/elvish/issues/706)).