sync SVN r17956
This commit is contained in:
47
CLAUDE.md
47
CLAUDE.md
@@ -23,7 +23,11 @@ user-facing strings, comments, and changelog entries.
|
|||||||
`.scx/.sct` (forms), `.vcx/.vct` (class libraries), `.frx/.frt` (reports), and `.mnx/.mpr`
|
`.scx/.sct` (forms), `.vcx/.vct` (class libraries), `.frx/.frt` (reports), and `.mnx/.mpr`
|
||||||
(menus) are VFP binary/generated artifacts — **edit them in the VFP IDE, not by hand.** `.mpr`
|
(menus) are VFP binary/generated artifacts — **edit them in the VFP IDE, not by hand.** `.mpr`
|
||||||
is GENMENU-generated from `.mnx`; never hand-edit `.mpr`.
|
is GENMENU-generated from `.mnx`; never hand-edit `.mpr`.
|
||||||
- **Version control is Subversion** (`.svn/`), not git. `COMUN/` is its own SVN working copy.
|
- **Version control: git runs in parallel with the legacy SVN.** SVN (`.svn/`) stays the source
|
||||||
|
of truth for the VFP binaries; git tracks their FoxBin2Prg text versions in-tree (see the
|
||||||
|
search section below). Remote: `git@gitea.romfast.ro:romfast/roaacnpro.git`. `COMUN/` is
|
||||||
|
git-ignored here and has its own repo, `git@gitea.romfast.ro:romfast/comun.git`, shared by
|
||||||
|
every ROA app.
|
||||||
- **`config.fpw`** sets the runtime environment (CODEPAGE 1252, `EXCLUSIVE=OFF`, `SAFETY=OFF`,
|
- **`config.fpw`** sets the runtime environment (CODEPAGE 1252, `EXCLUSIVE=OFF`, `SAFETY=OFF`,
|
||||||
`MULTILOCKS=ON`). Don't enable SAFETY — the code relies on silent overwrite.
|
`MULTILOCKS=ON`). Don't enable SAFETY — the code relies on silent overwrite.
|
||||||
- The compiler error log is `roaacnpro.ERR`; the runtime log is `log.txt`. Many entries in
|
- The compiler error log is `roaacnpro.ERR`; the runtime log is `log.txt`. Many entries in
|
||||||
@@ -32,31 +36,40 @@ user-facing strings, comments, and changelog entries.
|
|||||||
## Searching code inside `.vcx`/`.scx` (binary) libraries
|
## Searching code inside `.vcx`/`.scx` (binary) libraries
|
||||||
|
|
||||||
Most class/form code lives **inside binaries** (`.vcx`+`.vct`, `.scx`+`.sct`, …), not in `.prg`,
|
Most class/form code lives **inside binaries** (`.vcx`+`.vct`, `.scx`+`.sct`, …), not in `.prg`,
|
||||||
so plain grep can't read it cleanly. To search method/procedure bodies, convert the binaries to
|
so plain grep can't read it cleanly. Git tracks the **FoxBin2Prg text versions** of these binaries
|
||||||
their TEXT form first and grep the text. **At the start of a session (when work may touch
|
(`.vc2/.sc2/.fr2/.mn2`, …), generated in-tree next to each binary — not the binaries themselves.
|
||||||
classes/forms), refresh the text cache** by running the helper, then search in the cache:
|
Refresh them with `git_sync.ps1` at the start of every session and before any `git commit`:
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
powershell -ExecutionPolicy Bypass -File D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1 # incremental
|
powershell -ExecutionPolicy Bypass -File D:\ROA\UTIL\foxbin2prg\git_sync.ps1 -ProjectRoot D:\ROA\ROAACNPRO
|
||||||
```
|
```
|
||||||
|
|
||||||
By default it is **project-driven**: it reads `roaacnpro.PJX` and converts only the `.vcx`/`.scx`
|
Then search the `.??2` files in-tree with Grep, citing `file:line`. For `.vcx`/`.scx`, real code
|
||||||
the project actually uses (~78 files), **not** all of `COMUN\` (most of which is unused). It writes
|
changes can now be made directly on the text and written back with
|
||||||
a mirrored text tree to `D:\ROA\_vfp_textcache\roacnpro\`
|
`D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1 -TextFile <file.vc2> -ProjectRoot 'D:\ROA\ROAACNPRO'`
|
||||||
(e.g. `roacnpro\Clase\oacnpro.vc2`, `roacnpro\comun\clase\_frm_base.vc2`); then `Grep` there.
|
(regenerates + recompiles in staging, fidelity-checks, then copies into the project) instead of
|
||||||
Useful flags: `-Types vcx,scx,frx,mnx` (also reports/menus), `-Source <file|folder>` (one-off,
|
the VFP IDE — `.mnx`/`.frx` remain IDE-only. See `D:\ROA\UTIL\foxbin2prg\CLAUDE.md` for the full
|
||||||
even outside the project), `-Force`, `-Clean`. For `.vcx`/`.scx`, real code changes can now be made
|
write-back flow.
|
||||||
directly on the text and written back with `D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1` (regenerates +
|
|
||||||
recompiles in staging, fidelity-checks, then copies into the project) instead of the VFP IDE —
|
|
||||||
`.mnx`/`.frx` remain IDE-only. See `D:\ROA\UTIL\foxbin2prg\CLAUDE.md` for the full write-back flow.
|
|
||||||
|
|
||||||
Grep can't tell **which class/method** a hit inside a `.vc2` belongs to (the class header may be
|
Grep can't tell **which class/method** a hit inside a `.vc2` belongs to (the class header may be
|
||||||
thousands of lines above it, and ~2/3 of the file is properties/metadata). `vfp_symbols.ps1`
|
thousands of lines above it, and ~2/3 of the file is properties/metadata). `vfp_symbols.ps1`
|
||||||
indexes the line range of every class/method/procedure and labels hits with their owner — use it
|
indexes the line range of every class/method/procedure and labels hits with their owner — use it
|
||||||
before any `txt2vcx.ps1` edit to get the exact line range of the method you are changing
|
before any `txt2vcx.ps1` edit to get the exact line range of the method you are changing. Its
|
||||||
(`-Grep`/`-Where`/`-Find`/`-Class`; its defaults already target this project).
|
built-in defaults already point at this project's in-tree text, so bare invocations work here; the
|
||||||
|
explicit form is:
|
||||||
|
|
||||||
Full search guide: **`COMUN\docs\cautare_vcx_vct.md`**.
|
```powershell
|
||||||
|
$s = 'D:\ROA\UTIL\foxbin2prg\vfp_symbols.ps1'
|
||||||
|
$c = @('-CacheRoot', 'D:\ROA\ROAACNPRO', '-ProjectRoot', 'D:\ROA\ROAACNPRO', '-IndexFile', 'D:\ROA\_vfp_textcache\roaacnpro\_symbols.tsv')
|
||||||
|
|
||||||
|
powershell -ExecutionPolicy Bypass -File $s @c -Grep '<expression>' -CodeOnly # hits labeled class.method, code only
|
||||||
|
powershell -ExecutionPolicy Bypass -File $s @c -Where '<file>.vc2:<line>' # who owns this line
|
||||||
|
powershell -ExecutionPolicy Bypass -File $s @c -Find '<name>' # where it is DEFINED
|
||||||
|
powershell -ExecutionPolicy Bypass -File $s @c -Class '<class name>' # inheritance chain + methods
|
||||||
|
```
|
||||||
|
|
||||||
|
The index (`_symbols.tsv`) rebuilds itself when the text is newer, so refresh the text first — it
|
||||||
|
can't see IDE edits that were never converted. Full search guide: **`COMUN\docs\cautare_vcx_vct.md`**.
|
||||||
|
|
||||||
## The COMUN shared framework
|
## The COMUN shared framework
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ _LegalTrademark = ""
|
|||||||
_ProductName = " "
|
_ProductName = " "
|
||||||
_MajorVer = "2"
|
_MajorVer = "2"
|
||||||
_MinorVer = "0"
|
_MinorVer = "0"
|
||||||
_Revision = "6"
|
_Revision = "7"
|
||||||
_LanguageID = ""
|
_LanguageID = ""
|
||||||
_AutoIncrement = "0"
|
_AutoIncrement = "0"
|
||||||
*</DevInfo>
|
*</DevInfo>
|
||||||
|
|||||||
Reference in New Issue
Block a user