CodeEditApp / CodeEditApp/CodeEditSourceEditor

✨ Select Next/Previous Occurrence

未关闭
#300 0 条评论 0 个 reaction 已指派 1 人 已被 @austincondiff 认领 在 GitHub 查看
enhancement
主要语言
Swift
星标
719
派生
160
PR 合并指标
30 天内没有已合并 PR

描述

### 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

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。