Search messages in a room, both local and remote
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Overall search interface
It's likely best to display the TextInput box for search terms at the top of whichever view the search results will be shown in. That is, if the search results will be shown in a separate pane on the right side of the room's timeline view, then the search box should be at the top of that pane on the right. But if the search results will be shown in the same view as the room's timeline, then the search box should be at the top of that main room timeline view.
My personal opinion is that we should adopt the first design of having both the search input box and the search results in a separate pane on the right side of the room timeline. This allows the user to view the room timeline content while perusing the search results separately, which is sometimes necessary in order to have the context of both current messages and search results visible simultaneously.
Element shows the search box in a pane on the right, but confusingly it violates the guideline mentioned above by showing the search results in the same window as the existing room timeline, which hides the room timeline while the results are being shown. There's nothing technically wrong with this, but I feel it makes things harder to use.
Displaying search results
Element also shows the results in chronological order, with older messages towards the top and more recent messages at the bottom. I find this confusing, and in Robrix we should show the results in reverse chronological order, in which the most recent messages matching the search terms are displayed towards the top.
Each search result should be shown as a snippet of the message containing the matching terms, with the matching term(s) highlighted or otherwise identified in a clear manner. The snippet shouldn't be more than a few lines long, e.g., 3-4 lines at the most.
Clicking on the message should jump the room's timeline view with that message focused in the middle of the timeline viewport, and highlighted with a distinct background color. The highlight should be shown for either a fixed time duration (e.g., 10 seconds), or for as long as the message remains on the screen, but not permanently.
Activating the search interface
There should be a search/find icon at the top of the Room Screen (in the header), ideally using the typical magnifying glass 🔎 as the icon.
Search should be activated by clicking this icon button, which will display the search pane and place captured focus on the search TextInput box such that the user can begin typing the search terms with ease.
In addition, search should be activated when the room screen view "has focus" (has captured keyboard focus) or by pressing the keyboard shortcut Ctrl+F on Windows/Linux and Cmd+F (⌘+F) on macOS.
Note that if the main Rooms List screen is shown, pressing Ctrl+F should not display the room message search pane. Instead, it should shift focus to the room search
TextInputbox at the top of the Rooms List to allow the user to being typing room name search terms.
Implementation
There isn't yet high-level SDK support for searching messages, as far as I can tell (but perhaps I've just overlooked it).
However, the ruma crate re-exported by matrix_sdk does offer the search_events::v3 module for performing a general text search.
One should be able to create a new search_events::v3::Request using the search terms to populate the Categories and Criteria structs' fields, and then fire off that request using the Client::send() function.
- Lingua principale
- Rust
- Stelle
- 501
- Fork
- 71
- Merge medio
- 1h 37m
- PR unite (30g)
- 74
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di project-robius/robrix
-
enhancement help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
project-robius/robrix#1206 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
project-robius/robrix#1177 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement help wanted
Difficoltà 3/5 1-2 giorni Idoneità per principianti 49/100
project-robius/robrix#1207 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
(UI improvement) Add half-moon button in login screen to switch between dark and light themesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 52/100
project-robius/robrix#1205 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
project-robius/robrix#1204 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di project-robius/robrix
Issue simili
-
rivetkit 3.0: HTTP 400 overloaded on node pool upsert is treated as fatal and exits the processAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rivet-dev/rivet#5933 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Add a `--skip-readme` option to `gleam new`Forse già presa @mine-tech-oficial l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
gleam-lang/gleam#6458 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
CyberTimon/RapidRAW#2049 ·
I maintainer di solito rispondono entro 1 giorno
-
build.yml: macOS arm64 DMG fails, cargo missing on the macos-26 runner imageForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
getopenscreen/openscreen#1423 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue python
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno