Adauga write-back text->binar VFP: txt2vcx.ps1 + vfp_filemap.ps1 + test_roundtrip.ps1
Fluxul complet bin->text->edit->bin pentru .vcx/.scx (faza 1; .mnx/.frx raman read-only): regenerare+compilare in staging unic per rulare, guard-uri (COMUN cu -AllowComun, staleness, binar lipsa, folder foxbin2prg), fidelity check pe octeti inainte de orice copiere, copiere .vct->.vcx cu restaurare la esec partial, refresh cache. Harta de extensii extrasa in vfp_filemap.ps1, dot-sourced si de vcx2txt.ps1 (comportament identic). Invoke-FoxBin2PrgSafe: wrapper cu timeout+taskkill pentru toate invocarile exe-ului - la text stricat Prg2Bin intoarce ErrorLevel 0 dar binarul corupt poate ridica MessageBox modal VFP nesuprimabil la reconversie. test_roundtrip.ps1: faze fidelitate/editare/smoke siblings/negativ+guard-uri, 41 PASS pe ROAGEST + smoke ROAIMOB/ROAACNPRO. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -69,6 +69,31 @@ fișier:linie din cache, dar reține: editarea efectivă se face în IDE-ul VFP
|
||||
|
||||
---
|
||||
|
||||
## Write-back: editare directă pe text (`.vcx`/`.scx`)
|
||||
|
||||
Pe lângă căutare, cache-ul text poate fi acum și **sursă de editare** pentru `.vcx`/`.scx` (nu și
|
||||
pentru `.mnx`/`.frx`, vezi mai jos), folosind scriptul frate `txt2vcx.ps1`:
|
||||
|
||||
```
|
||||
& 'D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1' -TextFile 'D:\ROA\_vfp_textcache\<<NUME_PROIECT>>\Clase\lib.vc2' -ProjectRoot '<<RADACINA_PROIECT>>' -CacheRoot 'D:\ROA\_vfp_textcache\<<NUME_PROIECT>>'
|
||||
```
|
||||
|
||||
Fluxul complet: (1) refresh cache cu `vcx2txt.ps1` (obligatoriu după orice sesiune de IDE, altfel
|
||||
verificarea de staleness refuză scrierea); (2) editează `.vc2`/`.sc2` direct — formatul e
|
||||
**position-sensitive** (nu reformata/reflow) și proprietățile sunt **alfabetizate** (o proprietate
|
||||
nouă se inserează la locul ei alfabetic); (3) revizuiește diff-ul pe text ca pe orice altă
|
||||
modificare de cod; (4) rulează `txt2vcx.ps1` — regenerează și compilează binarul într-un folder de
|
||||
staging, verifică fidelitatea față de textul editat, și abia apoi copiază binarul în proiect (dacă
|
||||
verificarea eșuează, proiectul rămâne neatins).
|
||||
|
||||
Limite: `.mnx`/`.frx` rămân **doar pentru citire** (meniurile tot au nevoie de GENMENU în IDE;
|
||||
formatul de raport e prea fragil pentru round-trip). Ținte sub `COMUN\` necesită flag-ul
|
||||
`-AllowComun` **și** aprobare explicită — o modificare acolo afectează toate aplicațiile ROA.
|
||||
Fără backup-uri `.bak` lângă binarele din proiect — git e mecanismul de restore. Detalii complete
|
||||
(guard-uri, ordinea pașilor, teste): `D:\ROA\UTIL\foxbin2prg\CLAUDE.md`.
|
||||
|
||||
---
|
||||
|
||||
## Note pentru adaptare
|
||||
|
||||
- `<<NUME_PROIECT>>` îl poți pune orice etichetă scurtă (ex. `roagest`), doar ca numele
|
||||
|
||||
Reference in New Issue
Block a user