Skip to content

(Deprecated) 0.1b HexMac

Choose a tag to compare

@tunerok tunerok released this 19 Jun 22:01
· 29 commits to main since this release

HexMac 0.1b

Beta release focused on large-file performance, a reworked hex grid, and a much faster binary comparison workflow.

Highlights

  • New byte-array engine — B+ tree with file-backed slices; large files stay on disk while edits live in memory. In-place save without temporary files; Save As streams through a bounded buffer.
  • Virtual scrolling — viewport-based hex grid with row cache, overscan, background prefetch, and a dedicated vertical scrollbar.
  • Faster file comparison — incremental diff mapping, per-row caching, and clearer diff highlighting via HexDiffSpan.
  • Keyboard selection — move the caret and selection with arrow keys; the viewport scrolls automatically to keep the active byte visible.

Hex editor

  • Reworked HexGridView / HexRowView layout with offset column, viewport scroll view, and refined header.
  • Configurable bytes per row (8 / 16 / 24 / 32) and text encodings in the status bar.
  • Color highlights with navigation in the Inspector panel.
  • Improved histogram and hash tools for file and selection scopes.

Binary comparison

  • CompareRowCache and DocumentRowCache for smoother scrolling through large diffs.
  • HexDiffSpan model for accurate, mergeable diff highlights.
  • Clamped range handling for unequal file sizes.
  • Refactored compare grid layout with linked minimap scrolling.

Built-in terminal

  • goto end — jump to the last byte of the document.
  • Updated range and offset parsing for large files.

Other

  • README updated with feature list, keyboard shortcuts, project structure, and screenshots.
  • Minimum macOS version raised to 15.6.
  • Expanded test coverage: byte-array I/O, scroll window, row loader, compare cache, diff spans, histogram builder, pattern search, terminal parser.

Requirements

  • macOS 15.6 or later

Full changelog (0.1a → 0.1b)

  • Refactor hex editor architecture with B+ tree byte array and file slices
  • Add virtual viewport scrolling, row cache, and prefetch
  • Enhance binary comparison with caching and incremental diff mapping
  • Add keyboard selection movement and auto-scroll to selection
  • Introduce HexDiffSpan diff highlighting
  • Update README, screenshots, and status bar UI
  • Add unit tests for new services and scroll behavior