Giter Club home page Giter Club logo

swiboe's Introduction

Swiboe • Build Status Join the chat at https://gitter.im/swiboe/swiboe

Swiboe logo

This is the groundwork the ideal text editor. So far it is a design and performance study and an outline of the implementation. It will gradually merge into a real editor.

My initial thoughts on text editors and my design ideas for this one are on my blog. The idea is to establish an RFC process for changes rather quickly though.

The Swiboe community meets on weekdays at 8am CEST in my twitch channel. I stream live commentary of me coding on Swiboe.

Philosophy

Everything in Swiboe is a plugin. The core component of Swiboe, the server, has no concept of what a text editor should do. All it knows about is a protocol that implements a layered RPC system. All functionality in Swiboe is implemented through this.

So far outlines of the buffer plugin, file completion plugin and several GUI plugins have been implemented. They are all shells without much functionality and the driving idea right now is to verify, test and iterate on the design before committing.

Getting started

Swiboe only runs on Mac OS X and Linux right now. This is due to it's dependency mio not working on Windows and a lack of contributors for Windows. Mio is working on windows support, once they have it, we will push for Windows too.

You will need a nightly rust to build the current code. I suggest using rustup to handle different versions.

After cloning, try building the server and run the tests.

$ cargo build --release && cargo test

You might want to run the benchmarks too:

$ ulimit -n 10000  # Probably only needed on Mac OS X
$ cargo bench

Now bring up the server:

$ cargo run --bin server --release -- -s /tmp/swiboe.socket

Next, in another terminal, try building the terminal GUI and running it:

$ cd term_gui
$ cargo build --release
$ cargo run --release -- -s /tmp/swiboe.socket

This drops you in an empty terminal window - welcome to swiboe. Try CTRL + t to fuzzy search through all the files in the current directory and to open one.

Contributing

If you are unsure where to start either reach out to me or grep for NOCOM in the source base - there are many NOCOM (which stand for do-not-commit) while the project is in outline mode. If you pick one of the NOCOMs you will flesh out the details of stuff that I have only outlined so far.

If you prefer to work on something bigger picture, you will need to provide some design proposals first (it would be best to open an issue for discussion).

swiboe's People

Contributors

sirver avatar cwahbong avatar homu avatar dpc avatar mmatyas avatar severen avatar bmcorser avatar mneumann avatar gitter-badger avatar

Watchers

 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.