yusufozgul / Runestone

πŸ“ Performant plain text editor for iOS with syntax highlighting, line numbers, invisible characters and much more.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ‘‹ Welcome to Runestone - a performant plain text editor for iOS with code editing features

Runestone uses GitHub's Tree-sitter to parse code to a syntax tree which is used for features that require an understanding of the code in the editor, for example syntax highlighting.

❀️ Sponsors Only (Until May 5th)

This repository is currently only available to people who are sponsoring my work on GitHub. The repository will be made available to everyone on May 5th.

I've decided to give people sponsoring me a sneak peek of Runestone, since I know there are a few people amongst my sponsors who have been patiently awaiting Runestone for the past few months, and it's time that you get a chance to check it out. Please don't share the contents of this repository with anyone else for the time being.

I'm also hoping that you'll give me some early feedback on the project, so I can smooth out any issues. Please don't hesitate to to create issues if you stumble upon any bugs or shortcomings 😊

✨ Features

  • Syntax highlighting.
  • Line numbers.
  • Highlight the selected line.
  • Show invisible characters (tabs, spaces and line breaks).
  • Insertion of character pairs, e.g. inserting the trailing quotation mark when inserting the leading.
  • Customization of colors and fonts.
  • Toggle line wrapping on and off.
  • Adjust height of lines.
  • Add a page guide.
  • Add vertical and horizontal overscroll.
  • Highlight ranges in the text view.
  • Search the text using regular expressions.
  • Automatically detects if a file is using spaces or tabs for indentation.

πŸš€ Getting Started

Please refer to the Getting Started article in the documentation.

πŸ“– Documentation

The documentation os all public types is available at docs.runestone.app. The documentation is generated from the Swift code using Apple's DocC documentation compiler.

🏎 Performance

Runestone was built to be fast. It's good performance is by far mostly thanks to Tree-sitter's incremental parsing and AvalonEdit's approach for managing lines in a document.

When judging the performance of Runestone, it is key to build your app in the release configuration. The optimizations applied by the compiler when using the release configuration becomes very apparent when opening large documents.

πŸ“± Projects

The Runestone framework is used by an app of the same name. Runestone (the app) is a plain text editor for iPhone and iPad that uses all the features of this framework.

Runestone app icon

Download on the App Store

❀️ Acknowledgments

About

πŸ“ Performant plain text editor for iOS with syntax highlighting, line numbers, invisible characters and much more.

License:MIT License


Languages

Language:C 72.1%Language:Rust 16.8%Language:Swift 7.7%Language:JavaScript 1.8%Language:C++ 1.1%Language:Shell 0.3%Language:HTML 0.2%Language:SCSS 0.0%Language:Makefile 0.0%Language:Batchfile 0.0%Language:Python 0.0%Language:Ruby 0.0%