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