Skip to content

Improve GridForge spreadsheet editing#1

Open
linuxfold wants to merge 1 commit into
Worth-Doing:mainfrom
linuxfold:main
Open

Improve GridForge spreadsheet editing#1
linuxfold wants to merge 1 commit into
Worth-Doing:mainfrom
linuxfold:main

Conversation

@linuxfold

@linuxfold linuxfold commented Apr 27, 2026

Copy link
Copy Markdown

Summary

This PR turns GridForge into a much more functional spreadsheet app by improving the grid renderer, formula editing workflow, workbook mutation model, XLSX preservation, launch behavior, and packaging flow.

Major changes

  • Reworked the grid renderer around separate body/header/corner views to reduce scroll-copy artifacts and visual tearing.
  • Added a richer formula reference model with CellReference and range-aware formula parsing/evaluation support.
  • Added Excel-like formula entry behavior:
    • type =, click cells to insert references
    • drag ranges such as B7:B12
    • color-code formula references and referenced ranges
    • edit formulas directly in the formula bar
    • auto-close a single missing parenthesis when it makes the formula valid
  • Improved keyboard behavior:
    • grid gets focus on startup
    • arrow keys work after edits
    • arrow keys commit inline cell edits and move selection
    • removed body-cell hover tint that caused stale gray artifacts
  • Moved visible workbook mutations toward command-based operations for cleaner undo/redo and dirty tracking.
  • Expanded command support for edits, formatting, sheet operations, row/column operations, paste, and resize workflows.
  • Added XLSX package preservation scaffolding so unsupported workbook content can be retained more safely.
  • Improved app/document scaffolding with GridForgeDocument.
  • Improved build packaging:
    • ad-hoc signing fallback when Developer ID signing is unavailable
    • DMG generation still succeeds for local testing
    • .xlsx UTI declarations
    • safer notarization password handling
  • Added/updated model coverage for the new workbook/reference behavior.

Validation

  • swift build passes
  • ./build.sh build passes
  • ./build.sh dmg passes
    Note: swift test could not run in this local environment because the toolchain cannot load XCTest (no such module 'XCTest').

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant