microsoft / microsoft/terminal
Epic: Search v2
Open
Nobody has claimed this yet.
Area-TerminalControl
Area-UserInterface
Issue-Scenario
Product-Terminal
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
Description of the new feature/enhancement
[Original Issue: #605] [Original Spec: #3299] [Initial PR: #3590]
Terminal text search has already realizes single tab case sensitive/insensitive forward/backward search. In phase 2, we are considering these new features:
- Add "Find" button in dropdown menu to trigger search. Now the search dialog is launched by key bindings, we may need to consider binding the dialog to a button in dropdown menu for mouse only operations.
- sorta in #13055. Close enough.
- High-light while you type. Emphasizing all the matches in the buffer with an outline or selection with another color. This provides a clearer view of the searched text.
- #7561 Feature Request: Highlight all finding
- #6319 No results notification (or reveal number of results)
- in #14045
- #7695 next/previous search key bindings
- #8307 Selected text should populate search box
- #8274 Add capability to insert matched hit
- #1527 Display "find" matches in the scrollbar, #8631
- in #14045
- Pressing next/previous match keybindings should move to the next needle, even if the dialog is closed. (Maybe it should auto display the dialog)
- Mentioned in #8522 and #8588
- It'd be cool if there was a shadow underneath the search dialog, like there is for the command palette.
- Mentioned in https://github.com/microsoft/terminal/pull/11105#issuecomment-911929402
- Fixed in #12913
- Regular expression (regex) match. This is a useful search pattern and is implemented in some editors.
- first proto in #9228
- Will be effortless after #15858 merges
- merged in #17316, in 1.22
- Add size handle. Some text editors let the user resize the search box, and there is a size handle on the left side of the search box. This helps user when they search for long text.
- #5314 Fuzzy Search
- Go look at #16586
- #4407
- Search from all tabs. In phase one search are limited within one Terminal window. However, the community also requests search from all tabs. This may require a big change to the search algorithm.
- Depends on #997 by all accounts
- Search history. Sometimes users would do the same search for several times, thus, storing the search history is useful.
Also related, from #5001:
- Add a setting to configure the regex used to detect patterns
- Allow "hyperlink" matching for arbitrary patterns and adding custom handlers #8849
- Theoretically, this could supersede #7562
- Should be self-consistent with #8294
- Control the styling of hyperlinks - attributes used for autodetected hyperlinks, and then different attributes for hovered ones #8294
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the unchecked search enhancements and their referenced issues, especially #5314/#16586 for fuzzy search and #997 for searching across tabs. The epic is complete when the selected search feature has a defined implementation scope and its corresponding behavior is implemented and verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100