├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2023, Matt Massicotte 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | 2. Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | 3. Neither the name of the copyright holder nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TextEditingReference 2 | A non-curated collection of tools for working with text on Apple platforms 3 | 4 | This exists to try to encourage collaboration, reduce redundant work, and generally help those working with text make better stuff. It is a list of libraries, packages, and tools geared towards people working with text on Apple platforms. Inclusion is **strictly** non-curated. I will not apply any filters to the listings here. But, just to be extra-clear is a list of **infrastructure**, not apps. 5 | 6 | ## Views 7 | 8 | - [CodeEditorView](https://github.com/mchakravarty/CodeEditorView) (iOS/macOS/visionOS, SPM) 9 | - [CodeEditTextView](https://github.com/CodeEditApp/CodeEditTextView) (macOS, SPM) 10 | - [Lexical](https://github.com/facebook/lexical-ios) (iOS, SPM) 11 | - [MarkupEditor](https://github.com/stevengharris/MarkupEditor) (iOS/macCatalyst, SPM) 12 | - [MetaTextKit](https://github.com/TwidereProject/MetaTextKit) (iOS, SPM) 13 | - [RichTextKit](https://github.com/danielsaidi/RichTextKit) (iOS/macOS/tvOS/watchOS/visionOS, SPM) 14 | - [Runestone](https://github.com/simonbs/Runestone) (iOS/visionOS, SPM) 15 | - [SourceView](https://github.com/ChimeHQ/SourceView) (macOS, SPM) 16 | - [STTextView](https://github.com/krzyzanowskim/STTextView) (macOS/iOS, SPM) 17 | 18 | ### Last Update > 6 Months 19 | 20 | - [AztecEditor](https://github.com/wordpress-mobile/AztecEditor-iOS) (iOS, CocoaPods) 21 | - [CodeEditor](https://github.com/ZeeZide/CodeEditor) (iOS/macOS/visionOS, SPM/CocoaPods) 22 | - [CYRTextView](https://github.com/illyabusigin/CYRTextView) (iOS, CocoaPods) 23 | - [Editor](https://github.com/mmackh/Editor) (macOS/iOS) 24 | - [Firefly](https://github.com/ActuallyTaylor/Firefly) (iOS, SPM) 25 | - [NLTextView](https://github.com/srijs/NLTextView) (macOS) 26 | - [NTYSmartTextView](https://github.com/naoty/NTYSmartTextView) (macOS) 27 | - [Proton](https://github.com/rajdeep/proton) (iOS/visionOS, SPM) 28 | - [RichEditorSwiftUI](https://github.com/canopas/rich-editor-swiftui) (macOSiOS/macOS/tvOS/watchOS/visionOS, SPM/CocoaPods) 29 | - [Sourceful](https://github.com/twostraws/Sourceful) (iOS/macOS, SPM/CocoaPods) 30 | - [TextKit_LineNumbers](https://github.com/alldritt/TextKit_LineNumbers) (iOS) 31 | - [TwitterTextEditor](https://github.com/twitter/TwitterTextEditor) (iOS, SPM) 32 | - [YYText](https://github.com/ibireme/YYText) (iOS, CocoaPods) 33 | - [ZSSRichTextEditor](https://github.com/nnhubbard/ZSSRichTextEditor) (iOS, CocoaPods) 34 | 35 | ### Archived 36 | 37 | - [RichTextView](https://github.com/tophat/RichTextView) (iOS, SPM/Carthage/CocoaPods) 38 | - [SavannaKit](https://github.com/louisdh/savannakit) (iOS/macOS, Carthage/CocoaPods) 39 | - [SourceEditor](https://github.com/louisdh/source-editor) (iOS/macOS, CocoaPods) 40 | - [SyntaxKit](https://github.com/palle-k/SyntaxKit) (iOS) 41 | 42 | ## TextKit Utilities 43 | 44 | - [Glyph](https://github.com/ChimeHQ/Glyph): Abstractions for working with TextKit 1 and 2 45 | - [Ligature](https://github.com/ChimeHQ/Ligature): Text selection, grouping, and manipulation in Swift 46 | - [Rearrange](https://github.com/ChimeHQ/Rearrange): Swift library for working with ranges types: NSRange, IndexSet, and String.Index 47 | - [STTextKitPlus](https://github.com/krzyzanowskim/STTextKitPlus): Collection of useful TextKit 2 helpers 48 | - [TextViewBenchmark](https://github.com/ChimeHQ/TextViewBenchmark): A suite of performance tests for macOS text views 49 | - [TextViewPlus](https://github.com/ChimeHQ/TextViewPlus): Make life better with NSTextView+TextKit 1/2 50 | 51 | ## Editing UI 52 | 53 | ## Editing Behavior 54 | 55 | - [EditorConfig](https://github.com/ChimeHQ/EditorConfig): A Swift library for working with .editorconfig files 56 | - [IBeam](https://github.com/ChimeHQ/IBeam): A Swift library for multi-cursor support 57 | - [Borderline](https://github.com/chimeHQ/Borderline): Text line metrics and visualization 58 | 59 | ## Parsing 60 | 61 | - [Citron](https://github.com/roop/citron): An LALR Parser Generator for Swift 62 | - [Flexer](https://github.com/ChimeHQ/Flexer): Lexing library for Swift 63 | - [Gramophone](https://github.com/ChimeHQ/Gramophone): Swift library for working with Extended Backus–Naur Form (EBNF) notation and grammars 64 | - [ParseKit](https://github.com/itod/parsekit): Objective-C Tokenizer and Parser Generator. Supports Grammars. 65 | - [PEGKit](https://github.com/itod/pegkit): 'Parsing Expression Grammar' toolkit for Cocoa/Objective-C 66 | - tree-sitter/[SwiftTreeSitter](https://github.com/tree-sitter/swift-tree-sitter): Swift API for the tree-sitter incremental parsing system 67 | - viktorstrate/[SwiftTreeSitter](https://github.com/viktorstrate/swift-tree-sitter): Swift bindings for the tree-sitter parsing library 68 | - [TextMarkupKit](https://github.com/bdewey/TextMarkupKit): Pure-Swift tools for understanding and editing text files with simple markup 69 | - [tree-sitter](https://github.com/tree-sitter/tree-sitter): An incremental parsing system for programming tools 70 | 71 | ## Text Manipulation 72 | 73 | - [TextFormation](https://github.com/ChimeHQ/TextFormation): Rules system for live typing completions 74 | 75 | ## Storage 76 | 77 | - [RelativeCollections](https://github.com/ChimeHQ/RelativeCollections): Swift collection types that support efficient storage of order-relative values 78 | - [TextStory](https://github.com/ChimeHQ/TextStory): Happier, more flexible NSTextStorage 79 | 80 | ## Syntax Highlighting 81 | 82 | - [Highlightr](https://github.com/raspu/Highlightr): iOS & OSX Syntax Highlighter. 83 | - [HighlightSwift](https://github.com/appstefan/HighlightSwift): Code syntax highlighting in Swift and SwiftUI 84 | - [Neon](https://github.com/ChimeHQ/Neon): A Swift library for efficient, flexible content-based text styling 85 | - [Splash](https://github.com/JohnSundell/Splash): A fast, lightweight and flexible Swift syntax highlighter for blogs, tools and fun! 86 | - [ThemePark](https://github.com/ChimeHQ/ThemePark): A Swift library for working with syntax highlighting/IDE themes 87 | 88 | ## Search 89 | 90 | - [FindFaster](https://github.com/Finnvoor/FindFaster) 91 | 92 | ## LSP/LSIF/DAP 93 | 94 | - [DebugAdapterProtocol](https://github.com/ChimeHQ/DebugAdapterProtocol) 95 | - [langserver-swift](https://github.com/RLovelett/langserver-swift) 96 | - [LanguageClient](https://github.com/ChimeHQ/LanguageClient) 97 | - [LanguageServerProtocol](https://github.com/ChimeHQ/LanguageServerProtocol) 98 | - [SwiftDAP](https://github.com/noellee/SwiftDAP) 99 | - [SwiftLSP](https://github.com/codeface-io/SwiftLSP) 100 | --------------------------------------------------------------------------------