Use case-insensitive substring tag matching for todo and note filters#793
Merged
multiplex55 merged 1 commit intomasterfrom Feb 2, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
#rsmatchesrs3) and make matching case-insensitive.@as an alternative prefix to#intodo edittag filters so users can query consistently with other commands.Description
src/plugins/todo.rsto accept@as well as#in thetodo edittag branch and to use case-insensitive substring matching when filtering tags in both thetodo editandtodo listinclude/exclude tag branches by usingto_lowercase().contains(...)comparisons.src/plugins/note.rsnote listbranch to replace strict equality checks with case-insensitive substring checks for both include and exclude tag filters while keepingparse_query_filtersinvoked with&["@", "#", "tag:"]prefixes.tests/todo_plugin.rs::list_filters_by_tagto covertodo list #rs,todo list @wor, and a negated partial filtertodo list !#ui; addedsrc/plugins/note.rs::note_list_supports_partial_tag_filtersto covernote list #test,note list @ui, and a negated partial tag case.Testing
cargo test list_filters_by_tag; the build started but failed during the build of a dependency (alsa-sys) due to a missing system library (alsa) /pkg-configconfiguration, so the tests did not run to completion.cargo test list_filters_by_tag note_list_supports_partial_tag_filterswhich was an invalid cargo invocation and produced an argument error before rerunning the tests correctly.list_filters_by_tagandnote_list_supports_partial_tag_filtersand should pass in an environment with the required system libraries (or with the dependency disabled).Codex Task