Version 0.12 has been released six months after 0.11, bringing many new features and bugfixes.
As usual, prebuilt binaries can be found in get.
The shared:
namespace has been removed.
Line continuations now use backslashes instead of backquotes, in line with POSIX syntax.
The resolve
builtin now returns a string.
The variables $edit:loc-{pinned,hidden}
have been moved into the
edit:location:
namespace, now $edit:location:{pinned,hidden}
The variable $edit:arg-completer
has been moved to
$edit:completion:arg-completer
.
The Elvish package manager has landed (thanks to @zzamboni!).
A str:
module has been added
(#576).
Styling of the web interface (elvish -web
) has been reworked, now
featuring a dark theme as well as a light theme.
Namespaces can now be accessed by as variables with a trailing :
in the
name (e.g. the edit:
namespace variable can be accessed as $edit:
).
These variables can be indexed like maps
(#492,
(#631)).
Support for urxvt-style key sequences has been improved (#579).
Numbers can now be used as normal variable names (e.g. $1
).
The interactive namespace can now be built dynamically by assigning to the
$-exports-
variable in rc.elv
(#613).
The variable for customizing matchers in completion mode has graduated
from $edit:-matcher
to $edit:completion:matcher
.
The joins
command no longer ignores leading empty values
(#616).
The while
special command no longer swallows exceptions
(#615).
The finally
block of the try
special command no longer swallows
exceptions (#619).
A set of builtin commands for manipulating environment variables -
has-env
, get-env
, set-env
, unset-env
- has been added.
The prompts are now rendered asynchronously. The appearance of stale prompts can be customized.
Experimental support for customizing the eagerness of prompts.
Elvish now writes a \r
to the terminal before suspending the editor
(#629; thanks to @krader1961
for the analysis!).
New edit:history:fast-forward
command to import command history after
the current session started.
The completion mode no longer completes the longest common prefix (#637).
New store:del-dir
command for deleting directory history.
Add chdir hooks $before-chdir
and
$after-chdir
.
Location mode now supports the notion of workspaces (#643).
The output of elvish -buildinfo -json
is now actually vaid JSON
(#682).
New styled
and
styled-segment
commands (thanks to
@fehnomenal!) (#520,
#674).
New builtin $notify-bg-job-success
variable for suppressing notification
of the success of background jobs (thanks to @iwoloschin!)
(#689).
New builtin $num-bg-jobs
variable for tracking number of background jobs
(#692).
The edit:complete-getopt
command now supports supplying a description
for arguments of options (thanks to @zzamboni!)
(#693).
Complex candidates built with edit:complex-candidate
are now indexable
(thanks to @zzamboni!)
(#691).
New -norc
flag for skipping rc.elv
(thanks to @iwoloschin!)
(#707).
Elvish now guards against commands messing up terminal attributes (#706).