Skip to content

Tags: luah5/CodeEditTextView

Tags

1.0

Toggle 1.0's commit message

Partially verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
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>