Skip to content

📝 Performant plain text editor for iOS with syntax highlighting, line numbers, invisible characters and much more.

License

Notifications You must be signed in to change notification settings

maparoni/Runestone

Repository files navigation

Welcome to Runestone - a code editor for iOS with focus on performance

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.

Features

  • Syntax highlighting using Tree-sitter's captures.
  • Line numbers.
  • 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 using the Theme protocol.
  • Toggle line wrapping on and off.
  • Adjust line heights.
  • Add a page guide.
  • 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.

Acknowledgments

About

📝 Performant plain text editor for iOS with syntax highlighting, line numbers, invisible characters and much more.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 99.4%
  • Shell 0.6%