Git Product home page Git Product logo

wi's Introduction

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.

GoDoc Build Status Coverage Status

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.

wi's People

Contributors

maruel avatar wickedchicken avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.