This subject could be reformulate too like this :
Indeed wihtout doing nothing, some stuffs work but few horribles red tildes appears First of all, i used the VMS-IDE function : Download system headers.How to deal better with VSCode IntelliSense and Code navigation with our old code (~14 000 files : C/C++, Decforms, CDD, ...) from VMS. And with the feeling of being on VMS, because at the very end we build on VMS and not on Windows.
For our code, this 3 librairies were needed : CXXL$ANSI_DEF, DECC$RTLDEF and SYS$STARLET_C
Remarks :
- VMS-IDE bug v1.2.6(?) : It doesn't work if you have more than 1 folder un the outdir parameter
- VMS-IDE enhancement (?) : For the Iast 2, I have to rename the extracted headers with .h. For example with an integrated Powershell terminal :
Code: Select all
$ Dir | Rename-Item -NewName {$_.BaseName.ToLower() + ".h"}
- VMS-IDE enhancement (?) : Few system headers were not in a librairie, we have to dowload them manually
Code: Select all
{
"configurations": [
{
"name": "VMS",
"intelliSenseMode": "gcc-x64",
"cStandard": "c99",
"cppStandard": "c++98",
"includePath": [
"${workspaceFolder}/**"
],
"forcedInclude": [
"${workspaceFolder}/src/server/cmnt/cell_type.hxx",
"${workspaceFolder}/src/server/cmnt/cmn_type.hxx",
"${workspaceFolder}/src/server/cmnt/jbus_type.hxx",
"${workspaceFolder}/src/server/cmnt/psfv_type.hxx",
"${workspaceFolder}/src/server/cmnt/scat_type.hxx"
],
"defines": [
"__G_FLOAT=1",
"__DECC=1",
"vms=1",
"__USE_STD_IOSTREAM=1",
"VMS=1",
"__32BITS=1",
"__PRAGMA_ENVIRONMENT=1",
"__ia64__=1",
"__CRTL_VER=80400000",
"__vms_version=\"V8.4 \"",
"CC$gfloat=1 __X_FLOAT=1",
"vms_version=\"V8.4 \"",
"__DATE__=\"Oct 15 2019\"",
"__STDC_VERSION__=199901L",
"__DECC_MODE_RELAXED=1",
"__DECC_VER=70390018",
"__VMS=1",
"DEBUG=1",
"VMS_VERSION=\"V8.4 \"",
"__IEEE_FLOAT=0",
"__VMS_VERSION=\"V8.4 \"",
"__TIME__=\"16:50:23\"",
"__ia64=1",
"__VMS_VER=80400022",
"__BIASED_FLT_ROUNDS=2",
"__INITIAL_POINTER_SIZE=0",
"__STDC__=2",
"__LANGUAGE_C__=1",
"__vms=1",
"__D_FLOAT=0",
"_RWSTD_USE_CONFIG",
"__int64=long long"
]
}
],
"version": 4
}
- intelliSenseMode : so as i didn't yet found a stuff like ~ cc-i64 mode, i gave a try to gcc
- forcedInclude : few files in which we've extacted our CDD definitions, because #pragma dictionnary is of course not handled by IntelliSense
- defines :
- Copied from the end of a .lis file (cc/lis ...)
- The last 2 were found thru an empirical way ...
- for example with the variant_... keywords (C VMS, no standard)
- And doubtless other stuffs i did not see yet
Thanks