mattcasters opened a new pull request, #7757: URL: https://github.com/apache/hop/pull/7757
## Summary Fixes [#7756](https://github.com/apache/hop/issues/7756): Hop Gui Search Everywhere could hang or OOM when a project contained large CSV/JSON (or other text) files full of common terms (e.g. typing `address`). Live search built unbounded line-level hits on the UI thread after short prefixes. This change hardens GUI search and makes the limits configurable in the GUI. ### Behavior - **Min query length for content** (default 3): names still match for shorter queries; text-file/field content waits until the query is long enough so short keystrokes do not flood results. - **Skip oversized text files** (default 1 MB): large data files are not loaded for GUI content search. Use dedicated tools or `hop-search` for million-row CSV/JSON. - **Hard caps**: max total results (default 500) and max matches per text file (default 20), applied during analysis—not only when painting the tree. - **Background search + cancel**: analysis runs off the UI thread; stale generations are discarded so typing stays responsive. - **Optional exclude of project text files** while keeping open text files searchable. - **Search as you type** toggle + configurable debounce; Enter always searches immediately. ### Configuration (GUI) All options are available from: 1. The **gear** on Search Everywhere / search results panel → Search settings dialog 2. **Configuration** perspective → Plugin options → **Search** Stored under the `search` key in `hop-config.json`. ### Docs User manual Search page rewritten for Search Everywhere (no longer described as a left-toolbar perspective), settings table + screenshot, and cross-links from perspectives / Hop Gui index / Configuration. CLI `hop search` is unchanged. ## Test plan - [ ] Open Search Everywhere (`CTRL-F`) in a project with large CSV/JSON containing a common word (e.g. `address`). - [ ] Type the full word character by character; UI stays responsive; short prefixes only hit names (default min length 3). - [ ] Confirm large files are skipped (max text file size MB setting) and results are capped; footer/status mentions capped / min-length when relevant. - [ ] Gear → change limits / turn off search-as-you-type / exclude project text files; OK persists and next search reflects settings. - [ ] Configuration perspective → Search shows the same options and saves. - [ ] *Show all results* uses the same limits and does not OOM. - [ ] Unit tests: `SearchLimitsTest`, `TextFileContentSearchableAnalyserTest`, `HopGuiSearchHelperTest`. - [ ] Spotless / compile clean for `ui` module. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
