wi - right after vi
Experimental, do not look into.
Experimental, do not look into.
Experimental, do not look into.
Bringing text based editor technology past 1200 bauds.
Features
- Editor for the 19.2kbps connected world.
- Out of process plugins for today's 2Mb RAM systems.
- Go for both program and macros.
- Fully asynchronous processing. No hang due to I/O ever.
- Extremely extensible. Everything can be overriden.
- i18n ready.
- Auto-generated help.
go get
(Go's native distribution mechanism) for both the editor and plugins.- Integrated debugging and good test coverage.
Setup
Prerequisites
Installation or updating
go get -u github.com/wi-ed/wi
Installing or updating a plugin
Plugins are standalone executables or source files that are loaded by wi
. wi
discovers plugins on startup by looking for wi-plugin-*
/ wi-plugin-*.exe
and wi-plugin-*.go
in the same directory ($GOPATH/bin
) as the wi
executable.
go get -u github.com/someone/wi-plugin-awesome
*.go
files are sent to go run
for on-the-fly compilation at
the cost of slower startup time so there's no native updating support.
Vision
- No I/O done in the UI thread. UI must always be responsive even on a I/O saturated system.
- Very extensible editor with sane default settings.
- Historical reasons are not good reasons.
- Out of process plugins. If a web browser can render web pages out of process, an editor can do the same.
- Plugins written in the same language as the editor itself. No need to learn
yet another language (vimscript? lisp? python? javascript?).
- The only text editor with statically compiled macros!
- Use instrinsic Go distribution mechanism to distribute plugins. Stable
release is
go1
branch. - Broad OS support, including seamless Windows support.
- Unicode used internally.
Contributing
First make sure test-only dependencies are installed with the flag -t
then
fetch and install pre-commit-go
:
cd github.com/<you>/wi
go get -t ./...
go get github.com/maruel/pre-commit-go
pre-commit-go
Once done, you can send pull requests.
A CLA (form to be determined) may eventually be required for contribution.