This is another pre-release, for no particular reason other than lack of pre-releases for a long time.
As always, binaries are on https://dl.elvish.io.
unpackbuiltin is now known as
explode, for more excitement.
Mode-specific editor commands now reside in mode-specific subnamespaces of
le:(they used to be all directly under
le:). For instance, navigation-related builtins are now to be found in
le:nav:. For example,
Names of most builtins undergo a simple mechanical transformation like in the example. Notable exceptions are:
le:start-xxxbuiltins that are now
le:nav:default, in consistency with other navigation-mode commands.
le:move-dot-leftare still in the
le:namespace; they are not considered to be insert-mode-specific.
Notable fixes and enhancements
Test coverage has increased to almost 50%.
editpackage has seen some cleanups and refactors.
Matching in location mode is now more sensible (#338).
orhave been added, with similar semantics as Python.
~> and $true $false ▶ $false ~> and $false ?(echo 233) ▶ $false ~> and $true 1 ▶ 1
notbuiltin has been added that negates boolean values.
embedded:readline-bindingmodule has been added. Add
use embedded:readline-bindingto get a (partial) readline-esque binding (#339).
-matchbuiltin for regular expression matching was added.
reprbuiltin for printing the representation of objects has been added.
Elvish per-se no longer depends on cgo for compiling (#345). However, Elvish still uses sqlite, which requires cgo to compile.
When completing a variable in a namespace, e.g.
put $le:lo<Tab>, the candidate menu now only shows the variable names (like
loc-pinned) instead of the whole qualified name (like
$le:loc-pinned). Under the hood, the definition of what is being matched against candidates, as well as the candidates themselves, have changed. When using the default prefix matcher, this has only consequence on how candidates are displayed. However, for other matchers this will make a difference.
An experimental variable
$le:-use-subseq-matcherhas been introduced. If it is set to
$true, Elvish matches completion candidates using a subsequence matching algorithm. Using the example in the previous bullet, in
lois used to match against
loc-pinnedinstead of the entire
$le:loc-pinnedis now considered the candidate.