Files
roagest/docs/flux-editare-vfp-text.md
Marius Mutu 9f8dd67051 Docs: flux nou de editare VFP pe text (txt2vcx.ps1) + cale cache corectata
CLAUDE.md: calea cache-ului text e D:\ROA\_vfp_textcache\roagest (nu
_textcache_roagest); editarile de cod .vcx/.scx se fac acum direct pe
.vc2/.sc2 + write-back cu txt2vcx.ps1 (.mnx/.frx raman read-only, COMUN
doar cu -AllowComun). Nota noua docs/flux-editare-vfp-text.md cu fluxul,
comenzile si limitele. todo.txt: 2 itemi pending (faza 2 mnx/frx,
text-as-source-of-truth in git).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 18:30:39 +03:00

2.4 KiB

Flux editare directă pe text pentru .vcx/.scx

Pe lângă căutare (vcx2txt.ps1), cache-ul text din D:\ROA\_vfp_textcache\roagest\ poate fi acum și sursă de editare pentru .vcx/.scx, scriind înapoi în binar cu txt2vcx.ps1 — fără trecere prin VFP IDE. Detalii complete (guard-uri, ordinea pașilor, teste) în D:\ROA\UTIL\foxbin2prg\CLAUDE.md; aici doar partea relevantă pentru ROAGEST.

Pașii

  1. Refresh cache (obligatoriu dacă a rulat vreo sesiune de IDE de la ultimul refresh — altfel verificarea de staleness din txt2vcx.ps1 refuză scrierea):

    & 'D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1' -Project 'D:\ROA\ROAGEST\roagest.pjx' -ProjectRoot 'D:\ROA\ROAGEST' -CacheRoot 'D:\ROA\_vfp_textcache\roagest' -Types vcx,scx,frx,mnx
    
  2. Editează .vc2/.sc2 direct în D:\ROA\_vfp_textcache\roagest\. Formatul e position-sensitive (nu reformata/reflow liniile) și proprietățile sunt alfabetizate (o proprietate nouă se inserează la locul ei alfabetic, nu la sfârșit).

  3. Revizuiește diff-ul pe fișierul text ca pe orice altă modificare de cod.

  4. Scrie înapoi în proiect:

    & 'D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1' -TextFile 'D:\ROA\_vfp_textcache\roagest\Clase\oavize.vc2' -ProjectRoot 'D:\ROA\ROAGEST' -CacheRoot 'D:\ROA\_vfp_textcache\roagest'
    

    Regenerează și compilează binarul într-un folder de staging, verifică fidelitatea (roundtrip text→bin→text byte-identic) și abia apoi copiază .vct+.vcx (sau .sct+.scx) peste binarele din proiect. Dacă orice pas eșuează, proiectul și cache-ul rămân neatinse.

Limite

  • .mnx/.frx rămân doar pentru citire — meniurile tot au nevoie de GENMENU în IDE ca să regenereze .mpr, iar formatul .frx e prea fragil pentru round-trip. Editează-le în VFP IDE ca până acum.
  • Ținte sub COMUN\ necesită -AllowComun și aprobare explicită — o modificare acolo afectează toate aplicațiile ROA, nu doar ROAGEST.
  • După orice sesiune de IDE rulează vcx2txt.ps1 înainte de a edita text — staleness-ul se verifică pe baza mtime, iar o sesiune de IDE (chiar și una care doar a deschis o clasă) poate lăsa cache-ul în urmă față de binar.
  • Fără backup-uri .bak lângă binarele din proiect — git e mecanismul de restore; scriptul ține o copie de siguranță doar în folderul temp al rulării.