Coder Social home page Coder Social logo

xi-mac's Introduction

(pronounced "Zigh")

A modern editor with a backend written in Rust.

Note: This project is still in an early state. Prebuilt binaries will be made available once we start creating versioned releases.

The xi-editor project is an attempt to build a high quality text editor, using modern software engineering techniques. This reference frontend is built for macOS, using Cocoa for the user interface, but there are work in progress frontends for other platforms as well. Consult the list in the xi-editor core README for details.

Goals include:

  • Incredibly high performance. All editing operations should commit and paint in under 16ms. The editor should never make you wait for anything.

  • Beauty. The editor should fit well on a modern desktop, and not look like a throwback from the ’80s or ’90s. Text drawing should be done with the best technology available (Core Text on Mac, DirectWrite on Windows, etc.), and support Unicode fully.

  • Reliability. Crashing, hanging, or losing work should never happen.

  • Developer friendliness. It should be easy to customize xi editor, whether by adding plug-ins or hacking on the core.

Screenshot (will need to be updated as syntax coloring and UI polish is added):

xi screenshot

Getting started

Requirements

  • Xcode 9.x
  • Rust. We test against the latest stable version, and recommend installing through rustup.

Note: the front-end and back-end are split into two separate repositories. This is the front-end, and the back-end (or core) is now in xi-editor. Make sure to have that checked out as a subdirectory.

> git clone https://github.com/xi-editor/xi-mac
> cd xi-mac
> git clone https://github.com/xi-editor/xi-editor
> xcodebuild
> open build/Release/XiEditor.app

Or open XiEditor.xcodeproj and hit the Run button.

Troubleshooting

The most common cause of a failed build is an outdated version of rustc. If you've installed with rustup, make sure Rust is up to date by running rustup update stable.

Configuration

User settings are currently stored in files; the general preferences are located at ~/Library/Application Support/XiEditor/preferences.xiconfig. This file can be opened from File > Preferences (⌘ + ,).

The default font for XiEditor is Inconsolata, which is bundled with the app.

Theme

A few theme files are bundled with the application. A theme can be selected from the Debug > Theme menu. There is not yet a mechanism for including custom themes.

Authors

The xi-editor project was started by Raph Levien but has since received contributions from a number of other people. See the AUTHORS file for details.

License

This project is licensed under the Apache 2 license. The bundled fonts are under a different license, the Open Font License. See the fonts directory for the fonts and associated license.

Contributions

We gladly accept contributions via GitHub pull requests. Please see CONTRIBUTING.md for more details.

If you are interested in contributing but not sure where to start, there is an active IRC channel at #xi on irc.mozilla.org. There is also a subreddit at /r/xi_editor.

xi-mac's People

Contributors

raphlinus avatar cmyr avatar scholtzan avatar nangtrongvuon avatar rkusa avatar ryanbloom avatar akxcv avatar lukakerr avatar terhechte avatar aquageek avatar jansol avatar pocket7878 avatar cbrewster avatar divinedominion avatar modelorganism avatar rtsuk avatar paulsmith avatar tsekityam avatar adamnemecek avatar gbear605 avatar z11h avatar vlovich avatar zachdaniel avatar kud1ing avatar chancywu avatar yansal avatar ss18 avatar kmikael avatar mbstavola avatar manuel-rhdt avatar

Watchers

James Cloos avatar Selvam Sankaran 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.