Skip to content

Add a Help menu that goes somewhere #7

Description

@eliseorobles

Context

ScanDeck registers no .help command group. ScanDeckCommands.body registers only .newItem, a Batch menu, a Card menu and .sidebar.

So macOS supplies the stock "ScanDeck Help" item — and Resources/ScanDeck-Info.plist has no CFBundleHelpBookFolder or CFBundleHelpBookName key, so choosing it opens Help Viewer onto "Help isn't available for ScanDeck."

That is the first menu a confused operator opens, and it is currently a dead end on a project whose CONTRIBUTING.md is explicitly trying to be an on-ramp.

What to change

Add CommandGroup(replacing: .help) alongside the existing groups in Sources/ScanDeckApp/ScanDeckApp.swift, with items opening:

  • the README on GitHub
  • SPEC.md — the contract, and the thing CONTRIBUTING asks people to poke holes in
  • the issue tracker

Use NSWorkspace.shared.open(_:). Do not add a help book — that is a much larger commitment and the plist keys are deliberately absent.

While you are there: Settings already assembles a support report (DiagnosticsReport), and a "Copy Diagnostics Report" item in Help is the natural place to expose it. If you add it, route to the existing assembly — do not build a second one. DiagnosticsReport.Input has no field a path, file name or batch name could go in, and SettingsTests asserts none of them reach the text. That property is by construction and must stay that way.

How to verify

swift build
bash Scripts/bundle-app.sh --run     # or --synthetic with no scanner
lsappinfo list | grep -A4 ScanDeck   # expect type="Foreground"
swift test -c release

Open the Help menu; every item should go somewhere real.

See CONTRIBUTING.md. No scanner needed.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    good first issueGood for newcomersno-hardware-neededCan be done with just a Mac. No scanner required.uiSwiftUI shell, menus, keyboard.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions