The elvdocs still use the old format (#elvdoc:fn or #elvdoc:var) for now, but
will be changed to "fn" and "var" forms soon.
Also remove the accidentally committed cmd/mvelvdoc. It has been used to perform
the conversion automatically but is not supposed to be committed.
- Keep more metrics than just the minimal duration.
- Change default &min-time to 1s.
- Don't allow unitless value as &min-time.
- Rename &on-run to &on-run-end, and &min-iters to &min-runs.
- Try to avoid escaping & and < when they are not problematic.
- Escape non-breaking space.
- Format lists as loose lists.
- Only indent inline raw HTML when it can actually be parsed as a
paragraph-interrupting HTML block.
Instead of putting all possible flags in prog.Flags, flags are now registered by
the individual subprograms. The 3 flags -sock, -db and -json are shared by
multiple subprograms and still handled by the prog package.
This new design allows separating the support for -cpuprofile into a separate
subprogram, which is no longer included by the default entry point, making the
binary slightly smaller. A new entrypoint "withpprof" is created.
Also include the LSP subprogram in the nodaemon entry point.
Non-portable ones are moved into new packages pkg/sys/e{unix windows}. The "e"
prefix is needed to avoid conflict with packages under golang.org/x/sys/ and can
mean "extra".
- Rename the method from "Close" to "Dimiss" to avoid any conflict with the
standard interface{ Close() error }
- Remove the "accept" parameter from the Dismiss method and App.PopAddon - it is
false in most places, and the few places that pass accept=true has knowledge
of how to accept the state in the particular widget.
- edit:history:accept has been removed as a consequence - it is never
documented, and is not currently used by any Elvish code published on GitHub
(https://github.com/search?q=%22edit%3Ahistory%3Aaccept%22+extension%3Aelv&type=Code)
The dependency is injected via a field in shell.Program.
Also add an alternative entrypoint, cmd/nodaemon/elvish, which does not include
the daemon server or client.
A new type, tk.Bindings is defined for bindings. It is always called with the
widget currently handling the event, in addition to the event being handled.
* Move all widget types to a new pkg/cli/tk.
* Move Mode{Line Prompt} to a new pkg/cli/mode.
* Move all packages in pkg/cli/addons to pkg/cli/mode.
* Remove WriteListing.
* Remove StdTTY.
* Rename GetCodeBuffer to CodeBuffer.
Now that the module path is "src.elv.sh", doing a "go get" will install the
Elvish binary as "src.elv.sh"; this is not what we want, so move the main
package into a package called "elvish".
Also update "go get" and "go build" commands accordingly.
This simplifies the website toolchain to no longer depend on an external
repository, and allows developing the genblog command in lockstep with the needs
of the website.
The @cf documentation command currently only works correctly for the
builtin namespace. This augments the expansion of @cf arguments so
that an explicit namespace can be included. This makes it possible to
cross-reference between namespaces. For example, `@cf builtin:splits`
and `@cf str:split`.