Merged
Conversation
added 6 commits
March 18, 2022 17:36
xinix909
pushed a commit
to xinix909/CodeTransfer
that referenced
this pull request
Sep 7, 2024
### Description Implements bracket/pair highlighting as described in CodeEditApp#67. Adds a few functions to `STTextViewController`: - `highlightSelectionPairs()` - Highlights selection pairs from the current selection. This is called whenever the selection is updated and handles determining whether or not the selection highlight should be applied. It makes use of `findClosingPair(_ close: String, _ open: String, from: Int, limit: Int, reverse: Bool) -> Int?` to determine the indices of the opening and closing pairs. - `highlightRange(_ range: NSTextRange, scrollToRange: Bool = false)` - Applies a highlight to the given range, determined by the `bracketPairHighlight` property. Also handles removing animated layers if needed (as in the case of the `flash` highlight type). There are two highlight types: - Flash: Flashes a yellow rectangle below the given range with an animation. The highlight disappears after 0.75s. This is modeled closely to the Xcode version. - Bordered: Adds a border around both the opening and closing bracket pair. These borders only disappear when the selection changes. - Underline: Adds an underline to both the opening and closing bracket pair. These borders only disappear when the selection changes. All highlight types are documented in the `BracketPairHighlight` enum. Highlighted pairs are the same set of pairs used for the pair autocomplete filter: - `{` `}` - `[` `]` - `<` `>` - `(` `)` This feature can also be disabled by setting the `bracketPairHighlight` property on `CodeEditTextView` to `nil`. ### Related Issues * closes CodeEditApp#67 ### Checklist <!--- Add things that are not yet implemented above --> - [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 Box highlight: <img width="210" alt="Screenshot 2023-05-07 at 8 07 11 PM" src="https://user-images.githubusercontent.com/35942988/236713451-d74edbbe-b41c-45c4-98e2-bfcef9e84fd6.png"> Flash highlight: https://user-images.githubusercontent.com/35942988/236056573-ce5f8e61-5ed5-4799-a054-0591cfc7653b.mov Underline highlight with red color: <img width="250" alt="Screenshot 2023-05-08 at 2 15 27 PM" src="https://user-images.githubusercontent.com/35942988/236912499-68665a38-34d2-44fd-b62d-c7ef2f130c7e.png">
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
All Strings in Settings panel are now fetched from
Localizable.strings