CodeEditApp / CodeEditApp/CodeEditSourceEditor

✨ Select Next/Previous Occurrence

Open
#300 0 comments 0 reactions 1 assignee Claimed by @austincondiff View on GitHub
enhancement
Dominant language
Swift
Stars
719
Forks
160
PR merge metrics
No merged PRs in 30d

Description

### Description

We should allow users to navigate between occurrences of the selected text within the currently open document using the keyboard shortcuts:
- **Select Next Occurrence**: E
- **Select Previous Occurrence**: E

This feature will leverage the existing Find in Document mechanism and displays a loop / end of document HUD when navigating between matches (see #1 for details).

### Additional Context

- When navigating through occurrences, all matches should be highlighted, with the currently selected match prominently highlighted.
- If "Wrap Around" is enabled, the loop HUD should be displayed upon reaching the end or beginning of the document, providing a visual cue that no more matches are available in that direction.
- This feature should align with the existing Find functionality.

> [!NOTE]
> We may want to leverage the functionality introduced with in-editor find and replace, and the `EmphasisManager`.

### Requirements

1. **Keyboard Shortcuts**:
- E to select the next occurrence.
- E to select the previous occurrence.

2. **Loop HUD**:
- If "Wrap Around" is enabled, display a HUD notification when the end or beginning of the document is reached, indicating no further matches are available, otherwise display a end of file HUD.

3. **Highlighting**:
- Ensure all occurrences of the selected text are highlighted.
- The currently selected occurrence should be temporarily highlighted to guide user focus using the EmphasisManager.

4. **Find in Document Mechanism Integration**:
- The implementation should utilize the existing Find in Document mechanism to maintain consistency across the app's search and navigation features.

### Related Issues

- #1

### Screenshots

https://github.com/user-attachments/assets/3810a585-0a6d-4636-acb9-fd330dd9ae26

image

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.