├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .spi.yml ├── LICENSE ├── Package.swift ├── README.md ├── Sources └── DeclarativeTextKit │ ├── Documentation.docc │ ├── Documentation.md │ └── Runtime.md │ ├── Expression │ ├── Debug.swift │ ├── Expression.swift │ ├── If.swift │ ├── IfLet.swift │ ├── Modification │ │ ├── ChangeInLength+Consume.swift │ │ ├── ChangeInLength.swift │ │ ├── Delete │ │ │ ├── Delete+Modification.swift │ │ │ └── Delete.swift │ │ ├── Identity.swift │ │ ├── Insert │ │ │ ├── Insert+Modification.swift │ │ │ ├── Insert.swift │ │ │ ├── Insertable.swift │ │ │ ├── Line.swift │ │ │ ├── String+Insertable.swift │ │ │ └── Word.swift │ │ ├── Modification.swift │ │ ├── ModificationBuilder.swift │ │ ├── ModificationSequence.swift │ │ ├── Modifying.swift │ │ └── ScopedBufferSlice.swift │ └── Select │ │ ├── AffectedRange.swift │ │ ├── Buffer+SelectRangeExpression.swift │ │ ├── BufferRangeExpression.swift │ │ ├── LineRange.swift │ │ ├── NSRange+BufferRangeExpression.swift │ │ ├── Select.swift │ │ ├── SelectedRange+BufferRangeExpression.swift │ │ └── WordRange.swift │ ├── ModifiableBuffer │ ├── Buffer+ModifiableBuffer.swift │ ├── ModifiableBuffer+evaluate.swift │ ├── ModifiableBuffer.swift │ └── Undoable+ModifiableBuffer.swift │ └── SortedArray.swift └── Tests └── DeclarativeTextKitTests ├── AffectedRangeTests.swift ├── AssertModification.swift ├── ConditionalTests.swift ├── DeleteTests.swift ├── Helpers.swift ├── InsertTests.swift ├── LoggingUndoManager.swift ├── ModifyingTests.swift ├── ScopedBufferSliceTests.swift ├── SelectTests.swift ├── UndoableBufferTests.swift └── UseCaseTests.swift /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/.gitignore -------------------------------------------------------------------------------- /.spi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/.spi.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Package.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/README.md -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Documentation.docc/Documentation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Documentation.docc/Documentation.md -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Documentation.docc/Runtime.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Documentation.docc/Runtime.md -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Debug.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Debug.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Expression.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Expression.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/If.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/If.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/IfLet.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/IfLet.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/ChangeInLength+Consume.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/ChangeInLength+Consume.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/ChangeInLength.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/ChangeInLength.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Delete/Delete+Modification.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Delete/Delete+Modification.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Delete/Delete.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Delete/Delete.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Identity.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Identity.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Insert/Insert+Modification.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Insert/Insert+Modification.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Insert/Insert.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Insert/Insert.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Insert/Insertable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Insert/Insertable.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Insert/Line.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Insert/Line.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Insert/String+Insertable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Insert/String+Insertable.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Insert/Word.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Insert/Word.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Modification.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Modification.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/ModificationBuilder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/ModificationBuilder.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/ModificationSequence.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/ModificationSequence.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/Modifying.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/Modifying.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Modification/ScopedBufferSlice.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Modification/ScopedBufferSlice.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Select/AffectedRange.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Select/AffectedRange.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Select/Buffer+SelectRangeExpression.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Select/Buffer+SelectRangeExpression.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Select/BufferRangeExpression.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Select/BufferRangeExpression.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Select/LineRange.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Select/LineRange.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Select/NSRange+BufferRangeExpression.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Select/NSRange+BufferRangeExpression.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Select/Select.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Select/Select.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Select/SelectedRange+BufferRangeExpression.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Select/SelectedRange+BufferRangeExpression.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/Expression/Select/WordRange.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/Expression/Select/WordRange.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/ModifiableBuffer/Buffer+ModifiableBuffer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/ModifiableBuffer/Buffer+ModifiableBuffer.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/ModifiableBuffer/ModifiableBuffer+evaluate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/ModifiableBuffer/ModifiableBuffer+evaluate.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/ModifiableBuffer/ModifiableBuffer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/ModifiableBuffer/ModifiableBuffer.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/ModifiableBuffer/Undoable+ModifiableBuffer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/ModifiableBuffer/Undoable+ModifiableBuffer.swift -------------------------------------------------------------------------------- /Sources/DeclarativeTextKit/SortedArray.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Sources/DeclarativeTextKit/SortedArray.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/AffectedRangeTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/AffectedRangeTests.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/AssertModification.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/AssertModification.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/ConditionalTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/ConditionalTests.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/DeleteTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/DeleteTests.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/Helpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/Helpers.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/InsertTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/InsertTests.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/LoggingUndoManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/LoggingUndoManager.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/ModifyingTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/ModifyingTests.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/ScopedBufferSliceTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/ScopedBufferSliceTests.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/SelectTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/SelectTests.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/UndoableBufferTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/UndoableBufferTests.swift -------------------------------------------------------------------------------- /Tests/DeclarativeTextKitTests/UseCaseTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CleanCocoa/DeclarativeTextKit/HEAD/Tests/DeclarativeTextKitTests/UseCaseTests.swift --------------------------------------------------------------------------------