-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨ Matching Tag/Bracket Highlighting #67
Labels
enhancement
New feature or request
Comments
austincondiff
changed the title
Matching Tag/Bracket Highlighting
✨ Matching Tag/Bracket Highlighting
Oct 1, 2022
Edit: Misunderstood the title, this would be awesome! Assuming something like the curse brackets in this screenshot. |
Description updated. |
6 tasks
thecoolwinter
added a commit
that referenced
this issue
May 8, 2023
### Description Implements bracket/pair highlighting as described in #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 #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">
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When the cursor moves to a bracket, the matching bracket temporarily highlights to show the user the opposite bracket.
Screen.Recording.2022-10-03.at.2.34.17.AM.mov
The text was updated successfully, but these errors were encountered: