forked from crosspoint-reader/crosspoint-reader
-
Notifications
You must be signed in to change notification settings - Fork 0
feat: in-book search for epubs #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
91 commits
Select commit
Hold shift + click to select a range
6c04851
feat: add in-book search for epubs
chongfun 2d8854e
feat: highlight search matches
chongfun 7f0b17a
fix: resolve typos in Polish and Ukrainian translations
chongfun 5396fc2
fix: enforce Section cache bounds, handle error cleanups, and extend …
chongfun 749219f
fix: pass isChapterBoundary flag during pageContainsText scanning
chongfun 59f9ccb
fix: align search viewport, footnote preview, highlights, and pace ti…
chongfun 0834ceb
fix: display toast instead of popup for search messages
chongfun d0181f6
fix: undo isChapterBoundary change
chongfun 22bc9e2
refactor: extract KMP matching logic into SearchMatcher
chongfun 7ec9a2c
refactor: optimize search architecture with batched reads and unified…
chongfun f341da9
perf: optimize search highlight KMP priming
chongfun c601156
feat: add diacritic-insensitive search matching
chongfun 0f07f7a
fix(ui): enforce full screen refresh on search completion
chongfun 8377314
fix(epub): skip unsupported codepoints and accumulate separator bytes…
chongfun 3c720bf
fix(search): validate query length in EpubReaderSearchActivity to pre…
chongfun 357ef17
fix(search): save and restore full SearchMatcher state on cache-repai…
chongfun 8886231
fix: reset pending separators on KMP match restart
chongfun fd159d7
fix: use bounded strnlen for search query validation
chongfun c5b2141
feat(search): support multi-character diacritic folding
chongfun cd7c4f9
docs(search): update architecture doc for Unicode and folding support
chongfun 97f6171
refactor: encapsulate SearchMatcher state and optimize compile()
chongfun 078c2b8
refactor: extract SearchHighlighter and consolidate utilities
chongfun 320fdd0
docs: update search architecture to include SearchHighlighter
chongfun 15cbfa0
fix: conditionally highlight search results only on matching page
chongfun 3bee5bb
fix: sum unique source-codepoint widths for search highlighting
chongfun f1158e4
fix: safely multiplex Section file handle to prevent search crash
chongfun 2068d77
docs: correct search scan loop to 50-page chunk cadence
chongfun 840aa02
fix: widen search match-width accounting to avoid uint8_t overflow
chongfun f5ca125
perf: reuse scanForward page-LUT buffer to avoid per-chunk heap churn
chongfun 77f71e2
refactor: unify search query limit on SearchMatcher::MAX_QUERY_BYTES
chongfun 9656a6c
fix: never return a colliding /Read destination path
chongfun a8831b9
refactor: remove dead getTextFromSectionFile()
chongfun 7d9717c
fix: guard empty /Read destination path before rename()
chongfun 373ef9d
refactor: drop duplicate calculateReaderViewport helper
chongfun 965f332
refactor: share isSearchSeparator via AsciiCase.h
chongfun eb625aa
fix: distinguish corrupt-cache from transient I/O in search scan
chongfun 2776dee
perf: reuse a member for the per-chunk matcher snapshot
chongfun 59bc377
refactor: share word-highlight geometry between search and clippings
chongfun 5bf715e
fix: handle the highlighter's cross-page priming scan failure
chongfun 4536047
perf: allocate search highlight buffers lazily and release them
chongfun 645976a
perf: memoize search highlight ranges per page+query
chongfun f51f609
refactor: merge reader toasts into one shared slot
chongfun 046af12
refactor: name section-header trailer offsets
chongfun f5d97d0
docs: update stale pageContainsText references to scanForward
chongfun 087c8d5
fix: don't carry separator width into a restarted search match
chongfun 6d510d0
refactor: split search scan/serialize into their own translation units
chongfun 62d38d3
refactor: bundle Section search-scan state into one struct
chongfun 9db6f8a
refactor: extract search route planning into SearchRoute::plan
chongfun 39c7455
fix: include spine in search highlight cache key
chongfun d1795c0
fix: derive search highlight colors from reader theme
chongfun 7d85ffb
fix: widen paragraph/li LUT bounds checks to 64-bit
chongfun e4fed12
docs: correct scanForward contract and document codepoint dropping
chongfun aa4fbc5
fix: don't treat footnote preview as the real loaded section in search
chongfun d6516fe
docs: fix relative library/source links in search-architecture
chongfun 6c88dbc
docs: add blank lines around CHANGELOG Unreleased headings
chongfun f97d107
fix: guard lastSearchQuery copy against oversized query
chongfun 04a89b4
fix: classify search header failures as IoError vs CorruptCache
chongfun cd1d45e
fix: bound search text records against the page LUT offset
chongfun 21deac3
fix: clear footnote preview when jumping to a search match
chongfun b7a02de
fix: harden search text-record offset bounds and LUT read error class
chongfun caf8335
fix: reserve search highlight buffers despite std::string SSO capacity
chongfun b0a7a73
fix: release section cache file and reset matcher after search-highli…
chongfun ae96862
refactor: dedup search/reader helpers and drop dead code
chongfun 1b5feec
refactor: highlight search matches from the scan's reported byte span
chongfun 7c6e6e2
fix: respect spaces in book search while keeping hyphenation fuzzy
chongfun 87955fc
docs: correct search-architecture figures
chongfun 984f8c5
fix: carry dropped non-Latin codepoint width into search match span
chongfun 15c10c0
fix: invalidate cached search highlight span on section re-layout
chongfun 2f5f09b
fix: treat case-only query differences as the same book search
chongfun 90399c1
docs: collapse unreleased search changelog into one feature entry
chongfun 97bea7d
fix: gate repeat search on full query normalization, not ASCII case
chongfun 7a375e8
fix: enforce whole-word boundaries in book search matcher
chongfun 81bf88c
test: add whole-word search matcher regression suite
chongfun 43566bd
test: link EpdFontFamily into DifferentialRoundingTest cmake target
chongfun e7556e3
chore: build and run gtest unit suite in CI
chongfun 42a8101
revert: drop unrelated /Read destination-collision refinement
chongfun f89f543
ci: harden checkout action for unit tests
chongfun 9df71a3
test: add regression test for NFC/NFD equivalence in search queries
chongfun b73f90c
fix: return IoError for unexpected short reads in text payload
chongfun bb3ab95
docs: update search architecture numbers
chongfun d273cb8
perf: batch text reads during search to reduce SPI overhead
chongfun 9f0307a
docs: fix stale buffer[j] comments after textBuf rename
chongfun 340ccc9
ci: harden checkout action across all jobs
chongfun e0f73fd
perf: add opt-in SEARCH_PROFILE instrumentation for scan I/O vs CPU
chongfun 324be54
perf: throttle search progress repaints by wall-clock to cut refresh …
chongfun afa1777
perf: log firstOfSection in SEARCH_PROFILE to separate cold-file from…
chongfun 9a01fcf
fix: avoid full-screen flash on no-results search
chongfun ef1f89d
feat: show indexing popup during cold-cache search builds
chongfun 6b54ca6
docs: note cold-search indexing popup and add text-only index future …
chongfun d9cb73c
chore: remove SEARCH_PROFILE instrumentation now that search latency …
chongfun 7398885
fix: seed search progress throttle from initial paint to avoid an ext…
chongfun File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.