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>
27 lines
879 B
Bash
Executable File
27 lines
879 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build the UNIVERSAL (Apple Silicon + Intel) Harper static library that the
|
|
# Swift app links against: harper-ffi/lib/libharper_ffi.a
|
|
#
|
|
# Requires the Rust toolchain (rustup) with both macOS targets:
|
|
# rustup target add aarch64-apple-darwin x86_64-apple-darwin
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$ROOT"
|
|
|
|
# Make cargo available even in non-login shells.
|
|
[ -f "$HOME/.cargo/env" ] && source "$HOME/.cargo/env"
|
|
|
|
echo "==> cargo build --release (aarch64 + x86_64)"
|
|
cargo build --release --target aarch64-apple-darwin
|
|
cargo build --release --target x86_64-apple-darwin
|
|
|
|
echo "==> lipo -> lib/libharper_ffi.a (universal)"
|
|
mkdir -p lib
|
|
lipo -create -output lib/libharper_ffi.a \
|
|
target/aarch64-apple-darwin/release/libharper_ffi.a \
|
|
target/x86_64-apple-darwin/release/libharper_ffi.a
|
|
|
|
lipo -info lib/libharper_ffi.a
|
|
echo "==> done"
|