Runestone
π Performant plain text editor for iOS with syntax highlighting, line numbers, invisible characters and much more.
File Explorer
Download Latest Version (.zip)- bug_report.yml
- documentation-request.yml
- feature_request.yml
- build_and_test.yml
- build_documentation.yml
- build_example_project.yml
- codeql.yml
- deploy_documentation.yml
- swiftlint.yml
- ui_tests.yml
- dependabot.yml
- FUNDING.yml
- runestone-editor-app-icon.png
- Documentation.sketch
- Tutorials.sketch
- AppDelegate.swift
- SceneDelegate.swift
- Contents.json
- AppIcon-1024.png
- AppIcon-120.png
- AppIcon-152.png
- AppIcon-167.png
- AppIcon-180.png
- AppIcon-20.png
- AppIcon-29.png
- AppIcon-40.png
- AppIcon-58.png
- AppIcon-60.png
- AppIcon-76.png
- AppIcon-80.png
- AppIcon-87.png
- Contents.json
- Contents.json
- BasicCharacterPair.swift
- CodeSample.swift
- ProcessInfo+Helpers.swift
- TextView+Helpers.swift
- ThemeSetting.swift
- UserDefaults+Helpers.swift
- MenuButton.swift
- MenuItem.swift
- MenuSelectionHandler.swift
- SwiftUIMenuButton.swift
- KeyboardToolsView.swift
- MainView.swift
- MainViewController.swift
- ThemePickerPreviewCell.swift
- ThemePickerViewController.swift
- Example.entitlements
- Info.plist
- Package.resolved
- IDEWorkspaceChecks.plist
- contents.xcworkspacedata
- Example.xcscheme
- project.pbxproj
- highlights.scm
- IndentationScopes.swift
- injections.scm
- TreeSitterLanguage.swift
- public.h
- parser.h
- parser.c
- scanner.c
- .gitignore
- Package.swift
- README.md
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- OneDarkTheme.swift
- PlainTextTheme.swift
- EditorTheme.swift
- HighlightName.swift
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- TomorrowNightTheme.swift
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- TomorrowTheme.swift
- .gitignore
- Package.swift
- README.md
- run-ui-test-chinese.sh
- run-ui-test-korean.sh
- StringSyntaxHighlighter.md
- TextView.md
- 01-adding-a-theme-01.png
- 01-adding-a-theme-01~dark.png
- 01-adding-a-theme-02.png
- 01-adding-a-theme-02~dark.png
- 01-runestone-essentials.png
- 01-runestone-essentials@2x.png
- 01-setting-up-a-textview-01-01.png
- 01-setting-up-a-textview-01-01~dark.png
- 01-setting-up-a-textview-01-02.png
- 01-setting-up-a-textview-01-02~dark.png
- 01-setting-up-a-textview-01-03.png
- 01-setting-up-a-textview-01-03~dark.png
- 01-setting-up-a-textview-01-04.png
- 01-setting-up-a-textview-01-04~dark.png
- 01-setting-up-a-textview-01-05.png
- 01-setting-up-a-textview-01-05~dark.png
- 01-setting-up-a-textview-01-06.png
- 01-setting-up-a-textview-01-06~dark.png
- 01-setting-up-a-textview-01-07.png
- 01-setting-up-a-textview-01-07~dark.png
- 01-setting-up-a-textview-01-08.png
- 01-setting-up-a-textview-01-08~dark.png
- 01-setting-up-a-textview-01.png
- 01-setting-up-a-textview-01~dark.png
- 01-setting-up-a-textview-02.png
- 01-setting-up-a-textview-02~dark.png
- 01-setting-up-a-textview-03.png
- 01-setting-up-a-textview-03~dark.png
- 01-syntax-highlighting-the-text-01-01.png
- 01-syntax-highlighting-the-text-01-01~dark.png
- 01-syntax-highlighting-the-text-01-02.png
- 01-syntax-highlighting-the-text-01-02~dark.png
- 01-syntax-highlighting-the-text-01-03.png
- 01-syntax-highlighting-the-text-01-03~dark.png
- 01-syntax-highlighting-the-text-01.png
- 01-syntax-highlighting-the-text-01~dark.png
- 01-syntax-highlighting-the-text-02.png
- 01-syntax-highlighting-the-text-02~dark.png
- app-store-download.png
- app-store-download@2x.png
- app-store-download~dark.png
- app-store-download~dark@2x.png
- hero.png
- preview-01-adding-a-theme-01-01.png
- preview-01-adding-a-theme-02-01.png
- preview-01-adding-a-theme-02-02.png
- preview-01-setting-up-a-textview-01-01.png
- preview-01-setting-up-a-textview-01-01.png~dark.png
- preview-01-setting-up-a-textview-01-02.png
- preview-01-setting-up-a-textview-01-02~dark.png
- preview-01-setting-up-a-textview-01-03.png
- preview-01-setting-up-a-textview-01-03~dark.png
- preview-01-setting-up-a-textview-02-01.png
- preview-01-setting-up-a-textview-02-01~dark.png
- preview-01-setting-up-a-textview-02-02.png
- preview-01-setting-up-a-textview-02-02~dark.png
- preview-01-setting-up-a-textview-02-03.png
- preview-01-setting-up-a-textview-02-03~dark.png
- preview-01-setting-up-a-textview-02-04.png
- preview-01-setting-up-a-textview-02-04~dark.png
- preview-01-setting-up-a-textview-02-05.png
- preview-01-setting-up-a-textview-02-05~dark.png
- preview-01-setting-up-a-textview-02-06.png
- preview-01-setting-up-a-textview-02-06~dark.png
- preview-01-setting-up-a-textview-02-07.png
- preview-01-setting-up-a-textview-02-07~dark.png
- preview-01-setting-up-a-textview-02-08.png
- preview-01-setting-up-a-textview-02-08~dark.png
- preview-01-setting-up-a-textview-02-09.png
- preview-01-setting-up-a-textview-02-09~dark.png
- preview-01-setting-up-a-textview-02-10.png
- preview-01-setting-up-a-textview-02-10~dark.png
- preview-01-syntax-highlighting-the-text-01-01.png
- preview-01-syntax-highlighting-the-text-01-01~dark.png
- tutorials-header.png
- 01-adding-a-theme-01-01.swift
- 01-adding-a-theme-01-02.swift
- 01-adding-a-theme-01-03.swift
- 01-adding-a-theme-01-04.swift
- 01-adding-a-theme-01-05.swift
- 01-adding-a-theme-01-06.swift
- 01-adding-a-theme-01-07.swift
- 01-adding-a-theme-01-08.swift
- 01-adding-a-theme-01-09.swift
- 01-adding-a-theme-01-10.swift
- 01-adding-a-theme-01-11.swift
- 01-adding-a-theme-02-01.swift
- 01-adding-a-theme-02-02.swift
- 01-adding-a-theme-02-03.swift
- 01-adding-a-theme-02-04.swift
- 01-adding-a-theme-02-05.swift
- 01-adding-a-theme-02-06.swift
- 01-adding-a-theme-02-07.swift
- 01-setting-up-a-textview-01-01.swift
- 01-setting-up-a-textview-01-02.swift
- 01-setting-up-a-textview-01-03.swift
- 01-setting-up-a-textview-01-04.swift
- 01-setting-up-a-textview-02-01.swift
- 01-setting-up-a-textview-02-02.swift
- 01-setting-up-a-textview-02-03.swift
- 01-setting-up-a-textview-02-04.swift
- 01-setting-up-a-textview-02-05.swift
- 01-setting-up-a-textview-02-06.swift
- 01-setting-up-a-textview-02-07.swift
- 01-setting-up-a-textview-02-08.swift
- 01-setting-up-a-textview-02-09.swift
- 01-setting-up-a-textview-02-10.swift
- 01-setting-up-a-textview-02-11.swift
- 01-setting-up-a-textview-02-12.swift
- 01-setting-up-a-textview-03-01.swift
- 01-setting-up-a-textview-03-02.swift
- 01-setting-up-a-textview-03-03.swift
- 01-setting-up-a-textview-03-04.swift
- 01-setting-up-a-textview-03-05.swift
- 01-setting-up-a-textview-03-06.swift
- 01-setting-up-a-textview-03-07.swift
- 01-setting-up-a-textview-03-08.swift
- 01-syntax-highlighting-the-text-01-01.swift
- 01-syntax-highlighting-the-text-01-02.swift
- 01-syntax-highlighting-the-text-01-03.swift
- 01-syntax-highlighting-the-text-02-01.swift
- 01-syntax-highlighting-the-text-02-02.swift
- 01-syntax-highlighting-the-text-02-03.swift
- 01-syntax-highlighting-the-text-02-04.swift
- 01-syntax-highlighting-the-text-02-05.swift
- 01-syntax-highlighting-the-text-02-06.swift
- 01-syntax-highlighting-the-text-02-07.swift
- Adding a Theme.tutorial
- Meet Runestone.tutorial
- Setting up a TextView.tutorial
- Syntax Highlighting the Text.tutorial
- AddingATreeSitterLanguage.md
- CreatingATheme.md
- Documentation.md
- GettingStarted.md
- Info.plist
- SyntaxHighlightingAString.md
- ByteCount.swift
- ByteRange.swift
- Caret.swift
- CharacterSet+Helpers.swift
- DefaultStringAttributes.swift
- HairlineLength.swift
- KeyboardObserver.swift
- L10n.swift
- LineEndingDetector.swift
- NSAttributedString+Helpers.swift
- NSRange+Helpers.swift
- NSString+Helpers.swift
- QuickTapGestureRecognizer.swift
- String+Helpers.swift
- Symbol.swift
- TabWidthMeasurer.swift
- TextChange.swift
- TextEditHelper.swift
- TreeSitterTextPoint+Helpers.swift
- UIFont+Helpers.swift
- UIScrollView+Helpers.swift
- UITextInput+Helpers.swift
- UITextSelectionDisplayInteraction+Helpers.swift
- ViewReuseQueue.swift
- DocumentLineChildrenUpdater.swift
- DocumentLineNodeData.swift
- LineChangeSet.swift
- LineManager.swift
- LinePosition.swift
- NewLineFinder.swift
- ClosedRangeValueDescriptor.swift
- RedBlackTree.swift
- RedBlackTreeChildrenUpdater.swift
- RedBlackTreeIterator.swift
- RedBlackTreeNode.swift
- RedBlackTreeNodeColor.swift
- RedBlackTreeNodePosition.swift
- RedBlackTreeSearchMatch.swift
- RedBlackTreeSearchQuery.swift
- Localizable.strings
- Localizable.strings
- Localizable.strings
- Localizable.strings
- Localizable.strings
- Localizable.strings
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- Contents.json
- DefaultTheme.swift
- FontTraits.swift
- HighlightName.swift
- LineBreakMode.swift
- LineSelectionDisplayType.swift
- Theme.swift
- CharacterPair.swift
- CharacterPairTrailingComponentDeletionMode.swift
- ContentSizeService.swift
- EditMenuController.swift
- FloatingCaretView.swift
- IndexedPosition.swift
- IndexedRange.swift
- LayoutManager.swift
- LineEnding.swift
- LineFragmentView.swift
- LineMovementController.swift
- MoveLinesService.swift
- StringView.swift
- TextInputStringTokenizer.swift
- TextInputView.swift
- TextView.swift
- TextViewDelegate.swift
- TextViewState.swift
- TimedUndoManager.swift
- GutterBackgroundView.swift
- GutterWidthService.swift
- LineNumberView.swift
- HighlightedRange.swift
- HighlightedRangeFragment.swift
- HighlightedRangeLoopingMode.swift
- HighlightNavigationController.swift
- HighlightService.swift
- DetectedIndentStrategy.swift
- IndentController.swift
- IndentLevelMeasurer.swift
- IndentStrategy.swift
- InvisibleCharacterConfiguration.swift
- CharacterLineBreakSuggester.swift
- LineBreakSuggester.swift
- WordWrappingLineBreakSuggester.swift
- LineController.swift
- LineControllerFactory.swift
- LineControllerStorage.swift
- LineFragment.swift
- LineFragmentCharacterLocationQuery.swift
- LineFragmentController.swift
- LineFragmentFrameQuery.swift
- LineFragmentNode.swift
- LineFragmentRenderer.swift
- LineFragmentSelectionRect.swift
- LineSyntaxHighlighter.swift
- LineTypesetter.swift
- GoToLineSelection.swift
- TextLocation.swift
- PageGuideController.swift
- PageGuideView.swift
- BatchReplaceSet.swift
- ParsedReplacementString.swift
- ReplacementStringParser.swift
- SearchController.swift
- SearchQuery.swift
- SearchReplaceResult.swift
- SearchResult.swift
- StringModifier.swift
- TextPreview.swift
- UITextSearchingHelper.swift
- PlainTextInternalLanguageMode.swift
- PlainTextSyntaxHighlighter.swift
- TreeSitterIndentController.swift
- TreeSitterIndentStrategyDetector.swift
- TreeSitterInjectedLanguage.swift
- TreeSitterInjectedLanguageMapper.swift
- TreeSitterInternalLanguage.swift
- TreeSitterInternalLanguageMode.swift
- TreeSitterLanguageLayer.swift
- TreeSitterLanguageLayerStore.swift
- TreeSitterSyntaxHighlighter.swift
- TreeSitterSyntaxHighlightToken.swift
- TreeSitterTextPredicatesEvaluator.swift
- InternalLanguageMode.swift
- InternalLanguageModeFactory.swift
- PlainTextLanguageMode.swift
- TreeSitterIndentationScopes.swift
- TreeSitterLanguage.swift
- TreeSitterLanguageMode.swift
- TreeSitterLanguageProvider.swift
- LanguageMode.swift
- SyntaxNode.swift
- CaretRectService.swift
- SelectionRectService.swift
- TextSelectionRect.swift
- TreeSitterCapture.swift
- TreeSitterInputEdit.swift
- TreeSitterNode.swift
- TreeSitterParser.swift
- TreeSitterPredicate.swift
- TreeSitterPredicateMapper.swift
- TreeSitterQuery.swift
- TreeSitterQueryCursor.swift
- TreeSitterQueryMatch.swift
- TreeSitterTextInput.swift
- TreeSitterTextPoint.swift
- TreeSitterTextPredicate.swift
- TreeSitterTextRange.swift
- TreeSitterTree.swift
- PrivacyInfo.xcprivacy
- StringSyntaxHighlighter.swift
- parser.c
- scanner.cc
- tag.h
- html.h
- javascript.h
- json.h
- parser.h
- python.h
- yaml.h
- parser.c
- scanner.c
- parser.c
- parser.c
- scanner.cc
- parser.c
- scanner.cc
- LanguageModeFactory.swift
- HTMLIndentationTests.swift
- JavaScriptIndentationTests.swift
- JSONIndentationTests.swift
- PythonIndentationTests.swift
- MockTreeSitterParserDelegate.swift
- ByteRangeTests.swift
- IndentLevelMeasurerTests.swift
- LineEndingDetectorTests.swift
- LineManagerTests.swift
- NSRangeTests.swift
- NSStringHelpersTests.swift
- ParsedReplacementStringTests.swift
- ReplacementStringParserTests.swift
- SearchQueryTests.swift
- StringHelpersTest.swift
- StringModifierTests.swift
- StringViewTests.swift
- TextInputStringTokenizerTests.swift
- TreeSitterParserTests.swift
- XCTestManifests.swift
- Contents.json
- AppIcon-1024.png
- AppIcon-120.png
- AppIcon-152.png
- AppIcon-167.png
- AppIcon-180.png
- AppIcon-20.png
- AppIcon-29.png
- AppIcon-40.png
- AppIcon-58.png
- AppIcon-60.png
- AppIcon-76.png
- AppIcon-80.png
- AppIcon-87.png
- Contents.json
- Contents.json
- LaunchScreen.storyboard
- AppDelegate.swift
- BasicCharacterPair.swift
- MainView.swift
- MainViewController.swift
- ProcessInfo+Helpers.swift
- SceneDelegate.swift
- Host.entitlements
- Host.xctestplan
- Info.plist
- ChineseInputTests.swift
- KoreanInputTests.swift
- XCUIApplication+Helpers.swift
- highlights-jsx.scm
- highlights-params.scm
- highlights.scm
- injections.scm
- locals.scm
- tags.scm
- IndentationScopes.swift
- TreeSitterLanguage.swift
- public.h
- parser.h
- parser.c
- scanner.c
- .gitignore
- Package.swift
- README.md
- IDEWorkspaceChecks.plist
- contents.xcworkspacedata
- Host.xcscheme
- project.pbxproj
- .gitattributes
- .gitignore
- .gitmodules
- .spi.yml
- .swiftlint.yml
- CODEOWNERS
- LICENSE
- Package.resolved
- Package.swift
- README.md
- swiftgen.yml
// repository documentation
Was this content helpful?
(0 ratings)
