Skip to content

Highlight arbitrary matches #808

Open
@qfel

Description

@qfel

I'm looking into adding fuzzy history search in nushell, and one thing that it really needs is the ability to highlight the matched part of each item.

Columnar menu already supports something a bit familiar - highlighting the matched prefix via selected_match_style. But for fuzzy matching, we need to be able to highlight arbitrary parts of an item, eg.

query: oa
match: foobar

So I think this would need a new field in the Suggestion struct, describing which characters are matched.

The most straightforward/natural way for one could be:

/// An increasing list of char (not byte!) indices describing which characters from the `value` field are considered matched.
matches: Option<Vec<usize>>

Any thoughts on that? I imagine the "increasing" part can be questionable, API-wise, though makes the implementation simpler and in practice the user is likely to have it already sorted.

I'm happy to send s PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions