Previsouly, use accepts a module name a🅱️x:y, and imports the file
a/b/x/y.elv (under ~/.elvish/lib) as a🅱️x:y. This makes it clumsy to import
modules in deeply nested directories, because the resulting module name is
very long.
Now it is possible to omit some leading path components in the module name by
specifying them using slashes instead of colons. For example, "use a/b/c/x:y"
imports the same file a/b/c/x/y.elv, but as x:y. In other words, the part
before the last slash is used to derive the filename, but not used in the
module name.
The "use" special form used to accept a second argument for an alternative
filename. That argument has been removed to standardize the way the module
file is found. Relavite imports will be introduced some time in future to
compensate some of the lost functionality.
* Updates and fixes to narrow.elv
- Updated to account for recent syntax fixes.
- Added hook capabilities to all three modes, documented in narrow.elv
- Updated embedded module.
- Added bind_keys function to set key bindings
* Addressed style comments and use not-eq
* Updated embedded module
For instance, the binding table for insert mode used to be
$edit:binding[insert], but is now $edit:insert:binding.
Also, renames: edit:loc -> edit:location, edit:compl -> edit:completion, and
edit:nav -> edit:navigation.
The embedded readline-binding module has been updated accordingly.
* Add eval.ScanIntoOpts
eval.ScanIntoOpts is similar to eval.ScanOpts, instead of specifying
each option separately, it accepts an option struct and parse the
options according the struct internally.
Options organized as a group in a struct is more readable and could be
extend in the future if the calling function requires many.
* Use eval.ScanIntoOpts to parse options
* Add max-lines options to control the list size
It does not make sense to show a long list of candidates sometimes.
Adding an option to control the list size.
* Remove usused code
Bindings have been moved to the embedded module.