microsoft / microsoft/terminal

Epic: Search v2

Open
#3,920 2 comments 43 reactions 0 assignees View on GitHub

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.
  • 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.