Tags: luah5/CodeEditTextView
Tags
Custom Text View (CodeEditApp#211) <!--- IMPORTANT: If this PR addresses multiple unrelated issues, it will be closed until separated. --> ### Description Replaces `STTextView` with a custom TextView implementation. Creates a new `TextView` and `TextViewController` classes that manage rendering text, handling text input, and keybinds. `TextViewController` replaces the `STTextViewController` class, connecting existing TextFormation classes, syntax highlighting, and other existing text view extensions. ### Related Issues * closes CodeEditApp#208 * closes CodeEditApp#195 * closes CodeEditApp#184 * closes CodeEditApp#57 ### Checklist TextView TODOs: - [X] load text - [X] render text - [X] scroll - [X] wrap text - [X] resize - [x] syntax highlighting - [x] cursor - [x] edit text - [x] isEditable - [x] Insert - [x] Delete - [x] Delete line - [x] Delete word - [x] Delete character - [x] Delete across lines - [x] Paste - [x] [Marked Text](https://developer.apple.com/library/archive/documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextEditing/TextEditing.html#//apple_ref/doc/uid/TP40009459-CH3-SW26) - [x] Line Numbers - [x] Select text - [x] Copy - [x] Multiple cursors - [x] Keyboard navigation - [x] Arrow keys - [x] Command & control arrow keys - [ ] Page up and down - [x] Tab widths & indents - [x] Live parameter updating - [x] Undo/redo - [x] Sync system appearance - [x] Highlight brackets - [x] TextFormation integration - [ ] ~MacOS Sonoma cursor~ Leaving for future PR. Will require rework of cursor view system. - [x] Update text from SwiftUI Binding (two-way binding) - [x] Accessibility - [x] Drag and Drop (bad, will need a rework but okay for now) -- - [x] I read and understood the [contributing guide](https://github.com/CodeEditApp/CodeEdit/blob/main/CONTRIBUTING.md) as well as the [code of conduct](https://github.com/CodeEditApp/CodeEdit/blob/main/CODE_OF_CONDUCT.md) - [x] The issues this PR addresses are related to each other - [x] My changes generate no new warnings - [x] My code builds and runs on my machine - [x] My changes are all related to the related issue above - [x] I documented my code ### Screenshots `// TODO` --------- Co-authored-by: Austin Condiff <austin.condiff@gmail.com> Co-authored-by: Wesley de Groot <email@wesleydegroot.nl>