Releases: felipepessoto/FujiyNotepad
Release list
FujiyNotepad v4.11.0
FujiyNotepad v4.11.0
A fast, read-only viewer for very large text and log files on Windows. Self-contained Native AOT build — no install, no .NET runtime required. Download the zip for your architecture below, unzip, and run FujiyNotepad.WinUI.exe.
Highlights
-
Much faster Filter on big logs. Filtering a huge file down to the lines matching a plain (non-regex) term now uses the same vectorized engine that Find uses, instead of decoding every line. On the engine benchmark a rare-literal filter went from ~213 ms to ~6 ms (~33x faster) and from ~196 MB to under 1 KB allocated — so narrowing a multi-million-line log to a handful of lines is near-instant. Regex filters are unchanged.
-
Selection highlighting now works during a search. Selecting a word while the Find bar is open now also highlights that word's other occurrences, alongside the search matches (previously the selection highlight switched off whenever Find was active).
-
Scrollbar stays usable with many matches. Find-match and bookmark ticks are now drawn in a slim overview strip on the inner edge of the scrollbar instead of across the whole track, so they no longer cover the scrollbar thumb when a search matches thousands of lines.
-
New Spark / YARN highlight preset. The Highlight Rules dialog's Insert preset menu has a preset tuned for Apache Spark driver/executor logs: it emphasises scheduler and lifecycle events and failures while dimming the repetitive token/SAS boilerplate.
Under the hood
- Less memory churn and GC pressure across the hot paths: the ~1 MiB search buffer is pooled, on-screen line layout takes an allocation-free fast path for plain lines, full-file Filter/export no longer evicts the viewport's cached lines, and random navigation allocates roughly half as much per checkpoint block.
- Internal cleanup: the Find/Filter option toggles share one style, and the file open/close paths share their reset helpers.
A behaviour note on the faster Filter: like Find, it has no per-line 64 KB cap, so a plain-term filter can now match a term that occurs beyond a very long line's first 64 KB (the old per-line filter could miss it) — making Filter and Find consistent.
See CHANGELOG.md for the full list.
FujiyNotepad v4.10.0
FujiyNotepad is a fast, read-only viewer for very large text and log files on Windows (WinUI 3, Native AOT). This release focuses on reading comfort, resuming your work, and accessibility.
Highlights
Read and scan more comfortably
- Highlight occurrences of the selected text — select a word (or any single-line run of text) and every other occurrence in view lights up, so you can see where a token recurs without starting a search. It's a subtle, length-bounded reading aid that steps aside while Find is active, and you can turn it off any time with View ▸ Highlight Selection Occurrences.
- Word wrap — View ▸ Word Wrap wraps long lines to the window width instead of scrolling sideways (the horizontal scrollbar hides while it's on). It keeps the constant-memory model, so even multi-gigabyte files wrap instantly, and the setting persists across sessions.
Pick up where you left off
- Reopen last file on startup — launching with no file reopens the file you had open, scrolled back to the same line and caret, so resuming a big log is instant. Toggle it from File ▸ Reopen Last File on Startup; closing a file with File ▸ Close (Ctrl+W) forgets it.
Accessibility
- Screen reader support for file content — the text surface now exposes the caret line's text to Narrator and other assistive tech through UI Automation, reading each line aloud as you arrow through the file and announcing the line/column on focus.
Faster
- Faster open for very large files — the exact character count is no longer computed with a full-file decode every time you open a multi-gigabyte file. Above ~256 MB the status bar shows the file size with a Count characters action you can click when you actually want the exact total. Single-byte encodings (Windows-1252) still show the count instantly, since it equals the byte count.
Fixes
- Text stays rock-steady on caret blink — the caret is now drawn as a separate composition overlay above the text, so a blink toggles only the caret and never repaints the text. This makes the long-standing "text shifts up or down by a pixel as the caret blinks" problem structurally impossible, at any display scale.
Under the hood
- Localization — user-facing strings now resolve from resource tables (
Strings/<lang>/Resources.resw) instead of being hardcoded, and a Brazilian Portuguese (pt-BR) translation ships as a worked example (setFUJIY_LANG=pt-BRto preview a language without changing Windows). English remains the default and fallback — no visible change for English users.
Install
Download the zip for your architecture below, extract it, and run FujiyNotepad.exe. The build is self-contained — no .NET install required.
FujiyNotepad v4.9.0
FujiyNotepad is a fast, read-only viewer for very large text and log files on Windows (WinUI 3, Native AOT). This release focuses on log-watching, faster searching, and command-line integration.
Highlights
Follow a growing log live
- Follow Tail (View ▸ Follow Tail) live-tails a growing file: appended lines are pulled in automatically and the view sticks to the end while you're at the bottom — scroll up to read history without being yanked back. The status bar shows Following.
Use it from the command line
- Open at a line —
FujiyNotepad app.log --line 1234 --column 7(or a trailingapp.log:1234:7) opens the file and jumps straight to that location, so build output, grep results, and stack traces can link right in. A Windows drive colon (C:\) is never mistaken for a line separator. - Read piped input —
some-tool | FujiyNotepad -views another command's output directly, streaming in as it's produced (with Follow Tail on). No need to redirect to a file first.
Search, faster and smarter
- Incremental find — the Find bar highlights matches and shows the match count as you type (debounced), honouring the match-case / whole-word / regex toggles. Enter and F3 still jump between matches.
- Search history — the Find and Filter boxes remember recently used terms; press Up / Down to recall them. History persists across sessions and can be cleared from Edit ▸ Clear Search History.
- Go To Percentage — Edit ▸ Go To Percentage… jumps to a byte position by percentage (e.g. 50%), alongside Go To Line and Go To Offset. Works on huge files even before indexing finishes.
- Highlight presets — the Highlight Rules dialog has an Insert preset menu with ready-made rule sets (Log levels, Web access log, JSON, Timestamps & IDs) you can drop in and tweak.
Fixes
- No more text jitter — the text no longer shifts up and down by a pixel as the caret blinks; line height is snapped to a whole device pixel so every line lands on the physical pixel grid.
- Timestamp delta now recognizes the
yyyy-MM-dd HH:mm:ss,SSSformat (a comma before the milliseconds, as emitted by log4j and Pythonlogging) and keeps sub-second precision, so two events within the same second no longer report a0delta.
Under the hood
- A BenchmarkDotNet harness over the engine's hot paths plus a large-file integration test, guarding large-file performance and memory behaviour.
TimestampParser's fixed patterns now use the source-generated[GeneratedRegex]engine (the Native-AOT-recommended path); behaviour unchanged, size impact negligible.
Install
Download the zip for your architecture below, extract it, and run FujiyNotepad.exe. The build is self-contained — no .NET install required.
FujiyNotepad v4.8.0
FujiyNotepad is a fast viewer for very large text and log files. v4.8.0 is a big feature release: bookmarks, theming (including High Contrast), log-triage tools, and quality-of-life actions.
New features
- Bookmarks - mark lines (Ctrl+F2) and jump between them (F2 / Shift+F2); marks also appear as ticks in the new scrollbar margin, alongside find-match positions.
- Themes - pick System, Light, or Dark for the whole app and the text surface. The text now also follows Windows High Contrast mode for accessibility.
- Show Whitespace - reveal spaces, tabs, trailing-space runs, and control characters as markers; the status bar shows the file's line-ending style (LF / CRLF / Mixed).
- Filter / grep export - copy or save just the lines matching the current filter.
- Timestamp delta - select two timestamped log lines and the status bar shows the elapsed time between them (e.g. "delta = 2m 30s") - quick triage of how long something took.
- Quick actions - Copy File Path, Reveal in Explorer, and Copy with Line Numbers.
- Crash diagnostics - if the app ever closes unexpectedly, the exception is written to %LOCALAPPDATA%\FujiyNotepad\crash.log to make bug reports easier.
- A revamped Open Sample (File > Open Sample) that walks you through all of the above.
Improvements and quality
- Accessibility, async, and theming best-practices pass across the WinUI app, plus a subtle visual refresh of the find / filter / status surfaces.
- New app-layer UI tests drive the published app through UI Automation in CI; engine and logic test coverage is now shown in the CI summary and gated at 85%.
- Internal refactors for testability (device-free presentation layer, deduplicated test helpers, extracted status/parse helpers).
Install
Download the zip for your architecture (win-x64, win-arm64, or win-x86), unzip, and run FujiyNotepad.WinUI.exe. The build is self-contained - nothing else to install.
What's Changed
- Add bookmarks (toggle and jump between marked lines) (#50) by @felipepessoto in #60
- Scrollbar marker margin: bookmark + find-match ticks (#61) by @felipepessoto in #68
- Show whitespace, control characters, and CR/LF line endings (#66) by @felipepessoto in #69
- Add theme override (System / Light / Dark) (#64) by @felipepessoto in #70
- Quick clipboard / file actions (#65) by @felipepessoto in #71
- Export / copy the filtered (matching) lines (#62) by @felipepessoto in #72
- WinUI best-practices pass: accessibility, async, theming by @felipepessoto in #73
- Add FilteredLineSource tests + collect coverage in CI by @felipepessoto in #79
- Add app-layer UI smoke tests to CI (winapp ui automation) (#80) by @felipepessoto in #83
- Rename FujiyNotepad.WinUI.Logic to FujiyNotepad.Presentation (#82) by @felipepessoto in #84
- Deduplicate test helpers into FujiyNotepad.TestSupport (#81) by @felipepessoto in #85
- Rename solution to FujiyNotepad.slnx + exclude TestSupport from coverage by @felipepessoto in #86
- Make coverage visible in the CI summary + gate at 85% line by @felipepessoto in #87
- Modernize legacy SystemControl* brushes (#74) by @felipepessoto in #88
- Log unhandled exceptions to crash.log (#77) by @felipepessoto in #89
- Adopt the Windows High Contrast palette on the text canvas (#76) by @felipepessoto in #90
- Show timestamp delta between selected lines in the status bar (#67) by @felipepessoto in #91
- Extract pure status/parse logic out of MainWindow into Presentation by @felipepessoto in #92
- Showcase more features in the Open Sample header by @felipepessoto in #93
- Broaden the app-layer UI test and rename it from 'smoke' to 'UI tests' by @felipepessoto in #94
Full Changelog: v4.7.0...v4.8.0
FujiyNotepad v4.7.0
Highlights
Filter / grep view (Ctrl+Shift+F) - collapse a huge file down to just the lines that match a term or regular expression, the way grep does for a log, with match case and regex options. Clear the filter to return to the full file.
Persistent highlight rules (View > Highlight Rules...) - colour matching text by pattern across the whole file, e.g. ERROR in red and WARN in amber, so problems jump out as you scroll. Rules can be literal or regex, each with its own colour (a name or hex), plus an optional case-sensitive flag. They are edited as simple text, persist across sessions, and also colour the filter view. Separate from Find, which only highlights the current search term.
Line-ending indicator - the status bar now shows the file's newline convention (LF, CRLF, or Mixed) next to the encoding, so you can tell Unix vs Windows line endings at a glance.
Download
Self-contained Native AOT builds - unzip and run FujiyNotepad.WinUI.exe, nothing to install:
| Your PC | Download | Size |
|---|---|---|
| Most desktops & laptops (Intel/AMD, 64-bit) | FujiyNotepad-4.7.0-win-x64.zip |
23.10 MB |
| Windows on Arm (Snapdragon, Surface Pro X) | FujiyNotepad-4.7.0-win-arm64.zip |
21.55 MB |
| 32-bit Windows | FujiyNotepad-4.7.0-win-x86.zip |
20.73 MB |
The builds are unsigned, so SmartScreen may warn on first run (More info -> Run anyway).
What's Changed
- Show line-ending type (LF/CRLF/Mixed) in the status bar by @felipepessoto in #54
- Add filter / grep view (show only matching lines) (#48) by @felipepessoto in #58
- Add persistent highlight rules (colour by pattern) (#49) by @felipepessoto in #59
Full Changelog: v4.6.0...v4.7.0
FujiyNotepad v4.6.0
Highlights
Reload — re-open the current file with F5 (or File ▸ Reload) to pick up on-disk changes, keeping your scroll position. When a file changes underneath you, a non-blocking "file changed on disk" hint appears in the status bar so you can reload on demand — handy for growing logs.
Whole-word Find is now correct in UTF-16 / UTF-32 — the whole-word option previously inspected a single neighbouring byte, which mis-detected word boundaries in multi-byte encodings (e.g. matching cat inside bobcat). It now inspects the full neighbouring character. UTF-8 / ANSI behaviour is unchanged.
Go To Offset (Ctrl+Shift+G) — jump to a byte offset in decimal or 0x hex, alongside the existing Go To Line. Useful for logs, crash dumps, and tools that report byte positions.
Open shortcut — File ▸ Open now has the standard Ctrl+O accelerator (and Exit shows Alt+F4).
Much smaller index for huge files — the line index is now sub-linear in line count: it uses sparse checkpoints instead of one offset per line, so the index stays around 1 MB even at 100M lines (previously ~1 GB), keeping memory near-constant for the most extreme files. Viewport scrolling is unaffected.
Download
Self-contained Native AOT builds — unzip and run FujiyNotepad.WinUI.exe, nothing to install:
| Your PC | Download | Size |
|---|---|---|
| Most desktops & laptops (Intel/AMD, 64-bit) | FujiyNotepad-4.6.0-win-x64.zip |
23.07 MB |
| Windows on Arm (Snapdragon, Surface Pro X) | FujiyNotepad-4.6.0-win-arm64.zip |
21.53 MB |
| 32-bit Windows | FujiyNotepad-4.6.0-win-x86.zip |
20.70 MB |
The builds are unsigned, so SmartScreen may warn on first run (More info → Run anyway).
What's Changed
- Whole-word find in UTF-16/32 (#38) + Go To Offset (#36) by @felipepessoto in #44
- Add missing Open keyboard shortcut (Ctrl+O) by @felipepessoto in #45
- Reload current file (F5) + file-changed hint (#34) by @felipepessoto in #46
- Sparse line index: ~1024x less index memory for huge files (#29) by @felipepessoto in #47
Full Changelog: v4.5.0...v4.6.0
FujiyNotepad v4.5.0
Highlights
Line numbers — View ▸ Line Numbers toggles a line-number gutter down the left edge. It's off by default, and your choice is remembered between sessions.
Selection length — when you select text, the status bar now shows how much is selected, next to Ln, Col:
- A single line or a moderate selection shows the character count — e.g.
Ln 9, Col 1 (1,234 selected, 5 lines). - A very large selection (over 5,000 lines) shows just the line count, so selecting in huge files stays instant.
Opening files that are still being written — the viewer now opens files that another process is actively writing (for example a log file mid-write) instead of refusing them, and shows a clear message when a file genuinely can't be opened.
Download
Self-contained Native AOT builds — unzip and run FujiyNotepad.WinUI.exe, nothing to install:
| Your PC | Download | Size |
|---|---|---|
| Most desktops & laptops (Intel/AMD, 64-bit) | FujiyNotepad-4.5.0-win-x64.zip |
23.04 MB |
| Windows on Arm (Snapdragon, Surface Pro X) | FujiyNotepad-4.5.0-win-arm64.zip |
21.50 MB |
| 32-bit Windows | FujiyNotepad-4.5.0-win-x86.zip |
20.68 MB |
The builds are unsigned, so SmartScreen may warn on first run (More info → Run anyway).
What's Changed
- Open files being written by another process, and fail gracefully by @felipepessoto in #33
- Line-number gutter (View > Line Numbers) by @felipepessoto in #42
- Show selection length in the status bar by @felipepessoto in #43
Full Changelog: v4.4.0...v4.5.0
FujiyNotepad v4.4.0
Highlights
Character encoding — the viewer now auto-detects UTF-8, UTF-16 (LE/BE) and UTF-32 (LE/BE) from the byte-order mark or a heuristic, with Windows-1252 (ANSI) as a fallback, so Windows logs and exports no longer render as mojibake. The new Encoding menu shows the detection and lets you override it.
View options
- Zoom with
Ctrl++/Ctrl+-/Ctrl+0(orCtrl+mouse-wheel); the current percentage shows in the status bar. - Choose a monospace font from View ▸ Font (Consolas, Cascadia Mono/Code, Courier New, Lucida Console).
- The file''s total character count is shown in the status bar (next to the line count, encoding, and
Ln, Col).
Help ▸ About — a new About dialog with the version, a short description, the repo link, and the license.
Download
Self-contained Native AOT builds — unzip and run FujiyNotepad.WinUI.exe, nothing to install:
| Your PC | Download | Size |
|---|---|---|
| Most desktops & laptops (Intel/AMD, 64-bit) | FujiyNotepad-4.4.0-win-x64.zip |
23.04 MB |
| Windows on Arm (Snapdragon, Surface Pro X) | FujiyNotepad-4.4.0-win-arm64.zip |
21.49 MB |
| 32-bit Windows | FujiyNotepad-4.4.0-win-x86.zip |
20.67 MB |
The builds are unsigned, so SmartScreen may warn on first run (More info → Run anyway).
What''s Changed
- Character encoding support (UTF-16 / UTF-32 / ANSI) with auto-detection by @felipepessoto in #27
- Add a Help > About dialog by @felipepessoto in #30
- View options: monospace font, zoom, and a status-bar character count by @felipepessoto in #32
Full Changelog: v4.3.0...v4.4.0
FujiyNotepad v4.3.0
Highlights
Find improvements
- Find Previous — search backward with
Shift+F3(orShift+Enterin the find box), the counterpart ofF3. - All matches highlighted in the viewport (gold), so you see every occurrence at a glance; the current match stays the selection colour.
- The text selection stays blue even when the canvas isn''t focused (e.g. after clicking the menu) instead of fading to a hard-to-see gray.
Open files faster
- Drag and drop a text file onto the window to open it (alongside File ▸ Open, the command line, and Open Recent).
Under the hood
- The find wrap/caret/resume logic was extracted into a headless-testable
FindCoordinator, and the two project READMEs were consolidated into one.
Download
Self-contained Native AOT builds — unzip and run FujiyNotepad.WinUI.exe, nothing to install:
| Your PC | Download | Size |
|---|---|---|
| Most desktops & laptops (Intel/AMD, 64-bit) | FujiyNotepad-4.3.0-win-x64.zip |
22.97 MB |
| Windows on Arm (Snapdragon, Surface Pro X) | FujiyNotepad-4.3.0-win-arm64.zip |
21.43 MB |
| 32-bit Windows | FujiyNotepad-4.3.0-win-x86.zip |
20.60 MB |
The builds are unsigned, so SmartScreen may warn on first run (More info → Run anyway).
What''s Changed
- Find Previous (Shift+F3) + drag-and-drop open + README refresh by @felipepessoto in #24
- Extract Find orchestration into a headless-testable FindCoordinator by @felipepessoto in #25
- Highlight all Find matches in the viewport by @felipepessoto in #26
Full Changelog: v4.2.0...v4.3.0
FujiyNotepad v4.2.0
Highlights
Find options. The Find bar (Ctrl+F / F3) gains a row of toggles and a live match count:
- Match case (
Aa) — exact-case search (case-insensitive by default). - Whole word (
[ab]) — match whole words only. - Regular expression (
.*) — .NET regex, matched per line. - Match count — the file-wide number of matches, counted in the background.
Find next also behaves the way you'd expect now: it wraps around at the end of the document, resumes from the caret when you click elsewhere, advances non-overlapping matches, and only scrolls when the match is off-screen. Your option choices are remembered across sessions.
Under the hood this release also ships CI/release pipeline speedups (NuGet caching, parallel build/test, and relying on the runner's preinstalled .NET 10 SDK).
Download
Self-contained Native AOT — no prerequisites, just unzip and run FujiyNotepad.WinUI.exe (~23 MB):
| Your PC | Download |
|---|---|
| Most desktops & laptops (Intel/AMD, 64-bit) | FujiyNotepad-4.2.0-win-x64.zip |
| Windows on Arm (e.g. Snapdragon, Surface Pro X) | FujiyNotepad-4.2.0-win-arm64.zip |
| 32-bit Windows | FujiyNotepad-4.2.0-win-x86.zip |
What's Changed
- Speed up CI and release pipelines (NuGet cache + parallel release builds) by @felipepessoto in #21
- Find options: match case, whole word, regex, and live match count by @felipepessoto in #22
- Drop setup-dotnet; use the runner's preinstalled .NET 10 SDK by @felipepessoto in #23
Full Changelog: v4.1.1...v4.2.0