mirror of
https://github.com/BigMarc/grammargem.git
synced 2026-10-13 17:01:55 +02:00
Replace the NSSpellChecker + regex-stub engine with harper-core 2.5.0: real subject-verb agreement, verb forms, punctuation, repetition and spelling. New harper-ffi crate (staticlib) exposes harper_check over a C ABI; the CHarper module bridges it to Swift; HarperEngine maps Harper's char spans onto UTF-16 ranges and de-dups overlapping lints. NSSpellChecker stays only as a case-preserving spelling supplement, which fixes the problemm->Problem mis-casing. Bulk apply now skips no-op suggestions. build.sh / scripts/build.sh build the universal static lib; target/ and lib/ are gitignored (regenerate via harper-ffi/build.sh). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
32 lines
1.1 KiB
Bash
Executable File
32 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build a runnable, UNIVERSAL (Apple Silicon + Intel) GrammaGem.app bundle.
|
|
# Usage: ./scripts/build.sh (run from the mac/ directory)
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
CONFIG="release"
|
|
APP="GrammaGem.app"
|
|
DIST="dist"
|
|
|
|
echo "==> Building Harper static lib (universal)"
|
|
chmod +x harper-ffi/build.sh
|
|
./harper-ffi/build.sh
|
|
|
|
echo "==> Compiling universal (arm64 + x86_64, ${CONFIG})"
|
|
swift build -c "${CONFIG}" --arch arm64 --arch x86_64
|
|
BIN="$(swift build -c "${CONFIG}" --arch arm64 --arch x86_64 --show-bin-path)"
|
|
|
|
echo "==> Assembling ${APP}"
|
|
rm -rf "${DIST}/${APP}"
|
|
mkdir -p "${DIST}/${APP}/Contents/MacOS" "${DIST}/${APP}/Contents/Resources"
|
|
|
|
cp "${BIN}/GrammaGem" "${DIST}/${APP}/Contents/MacOS/GrammaGem"
|
|
cp "AppSupport/Info.plist" "${DIST}/${APP}/Contents/Info.plist"
|
|
cp "AppSupport/AppIcon.icns" "${DIST}/${APP}/Contents/Resources/AppIcon.icns"
|
|
|
|
echo "==> Built ${DIST}/${APP}"
|
|
lipo -info "${DIST}/${APP}/Contents/MacOS/GrammaGem"
|
|
echo " Run with: open \"${DIST}/${APP}\" (grant Accessibility on first launch)"
|