diff --git a/src/vscode_plugin/src/gen/gencpp.ts b/src/vscode_plugin/src/gen/gencpp.ts index f923b2ced9b3c06d84cfedbde8fce1b8a59aad2e..1572f7390d83af0289ace89696fc7cc843d65523 100644 --- a/src/vscode_plugin/src/gen/gencpp.ts +++ b/src/vscode_plugin/src/gen/gencpp.ts @@ -60,7 +60,7 @@ export function generateDirectFunction(funcInfo: FuncInfo, rawFileName: string, return bodyReplace; } -function getReplaceInfo(funcInfo: FuncInfo, hFileName: string) { +export function getReplaceInfo(funcInfo: FuncInfo, hFileName: string) { let funcInfoParams = genFuncInfoParams(funcInfo); let bodyReplace = replaceAll(napiFuncCppTemplate, '[func_name_replace]', funcInfo.genName); bodyReplace = replaceAll(bodyReplace, '[get_error_msg_tag]', funcInfo.genName); @@ -71,7 +71,7 @@ function getReplaceInfo(funcInfo: FuncInfo, hFileName: string) { return bodyReplace; } -function getBodyReplace2(funcInfo: FuncInfo, bodyReplace: string, genParamReplace: string) { +export function getBodyReplace2(funcInfo: FuncInfo, bodyReplace: string, genParamReplace: string) { if (funcInfo.params.length !== 0) { bodyReplace = replaceAll(bodyReplace, '[func_getParam_replace]', genParamReplace); } else { @@ -80,14 +80,14 @@ function getBodyReplace2(funcInfo: FuncInfo, bodyReplace: string, genParamReplac return bodyReplace; } -function getGenParamReplace(funcInfo: FuncInfo, paramGenResult: string) { +export function getGenParamReplace(funcInfo: FuncInfo, paramGenResult: string) { let genParamReplace = replaceAll(funcGetParamTemplate, '[param_length]', 'PARAMS' + funcInfo.params.length); genParamReplace = replaceAll(genParamReplace, '[func_name_replace]', funcInfo.genName); genParamReplace = replaceAll(genParamReplace, '[getAllParam_replace]', paramGenResult); return genParamReplace; } -function genFuncInfoParams(funcInfo: FuncInfo) { +export function genFuncInfoParams(funcInfo: FuncInfo) { let funcInfoParams = ''; let funcInfoParamTemp = '[paramName]: [paramType]; '; for (let i = 0; i < funcInfo.params.length; i++) { @@ -99,7 +99,7 @@ function genFuncInfoParams(funcInfo: FuncInfo) { } -function genParamInfo(funcInfo: FuncInfo, typeList: TypeList[]) { +export function genParamInfo(funcInfo: FuncInfo, typeList: TypeList[]) { let paramGenResult = ''; // napi 获取参数 for (let i = 0; i < funcInfo.params.length; i++) { @@ -109,7 +109,7 @@ function genParamInfo(funcInfo: FuncInfo, typeList: TypeList[]) { } -function getParamJs2C(funcInfo: FuncInfo, i: number, paramGenResult: string, typeList: TypeList[]) { +export function getParamJs2C(funcInfo: FuncInfo, i: number, paramGenResult: string, typeList: TypeList[]) { let paramType = funcInfo.params[i].type === 'size_t' ? 'int64_t' : funcInfo.params[i].type; // 去除const 和 * paramType = paramType.replace('const', '').replace('*', '').trim(); @@ -143,14 +143,14 @@ function getParamJs2C(funcInfo: FuncInfo, i: number, paramGenResult: string, typ return paramGenResult; } -function getParamGenCon(getParamContent: string, i: number, paramName: string, paramGen: string) { +export function getParamGenCon(getParamContent: string, i: number, paramName: string, paramGen: string) { let getParam = replaceAll(getParamContent, '[param_index_replace]', 'PARAMS' + i); getParam = replaceAll(getParam, '[param_name_replace]', paramName); paramGen = replaceAll(paramGen, '[getParam_replace]', getParam); return paramGen; } -function returnTypeC2Js(returnName: string, retType: string, retGenResult: string, retObjInfo: RetObjInfo, typeList: TypeList[], interfaceList: InterfaceList[]) { +export function returnTypeC2Js(returnName: string, retType: string, retGenResult: string, retObjInfo: RetObjInfo, typeList: TypeList[], interfaceList: InterfaceList[]) { if (!retObjInfo.flag) { retObjInfo.objName = returnName; } @@ -191,7 +191,7 @@ function returnTypeC2Js(returnName: string, retType: string, retGenResult: strin return retGenResult; } -function getObjRetGenResult(retObjInfo: RetObjInfo, retGenResult: string, returnName: string) { +export function getObjRetGenResult(retObjInfo: RetObjInfo, retGenResult: string, returnName: string) { if (retObjInfo.objName !== '') { retGenResult += replaceAll(objectRet, '[return_name_replace]', returnName); let setRetPropertyObj = replaceAll(objectTosetRet, '[set_objname_replace]', retObjInfo.objName); @@ -202,7 +202,7 @@ function getObjRetGenResult(retObjInfo: RetObjInfo, retGenResult: string, return return retGenResult; } -function getRetTypeContent(retTypeTemplate: string, returnName: string, retGenResult: string, +export function getRetTypeContent(retTypeTemplate: string, returnName: string, retGenResult: string, retObjInfo: RetObjInfo, setRetProperty: string) { let funcReturnType = replaceAll(retTypeTemplate, '[return_name_replace]', returnName); retGenResult += funcReturnType; diff --git a/src/vscode_plugin/src/gen/gendts.ts b/src/vscode_plugin/src/gen/gendts.ts index 4c8893becae1db4087edc5db1f9c7d598a5fd3ca..cb27d9d5ee371b97e7de1e96c41a50b7407620b0 100644 --- a/src/vscode_plugin/src/gen/gendts.ts +++ b/src/vscode_plugin/src/gen/gendts.ts @@ -86,7 +86,7 @@ export function isNumberType(cType: string) { } } -function basicC2js(cType: string) { +export function basicC2js(cType: string) { let jsType = ''; if (isStringType(cType)) { jsType = 'string'; @@ -100,13 +100,13 @@ function basicC2js(cType: string) { return jsType; } -function getInterFuncRetType(str: string) { +export function getInterFuncRetType(str: string) { let strArr = str.split(' '); // let retType = getJsTypeFromC(replaceAll(strArr[0], '*', '')); return replaceAll(strArr[0], '*', ''); } -function getInterFuncName(str: string) { +export function getInterFuncName(str: string) { let strArr = str.split(' '); return replaceAll(strArr[1], '*', ''); } @@ -148,7 +148,7 @@ export function getJsTypeFromC(cType: string) { return jsType; } -function getInterFuncParams(str: string, paramObj: ParamObj[]) { +export function getInterFuncParams(str: string, paramObj: ParamObj[]) { let paramsStr = ''; let paramObject: ParamObj = { name: '', @@ -172,7 +172,7 @@ function getInterFuncParams(str: string, paramObj: ParamObj[]) { return paramsStr; } -function isJsBasicType(type: string) { +export function isJsBasicType(type: string) { if (type === 'number' || type === 'string' || type === 'boolean') { return true; } else { @@ -180,7 +180,7 @@ function isJsBasicType(type: string) { } } -function removeMarco(type: string) { +export function removeMarco(type: string) { // 去掉宏定义 if (type) { let leftCraftIndex = type.indexOf('('); @@ -193,7 +193,7 @@ function removeMarco(type: string) { return type; } -function createParam(parseParamInfo: ParamObj) { +export function createParam(parseParamInfo: ParamObj) { let tsParam: ParamObj = { name: '', type: '', @@ -213,7 +213,7 @@ function createParam(parseParamInfo: ParamObj) { return [tsParam, cppParam]; } -function createFuncInfo(parseFuncInfo: FuncObj) { +export function createFuncInfo(parseFuncInfo: FuncObj) { let funcInfo: FuncInfo = { name: '', params: [], @@ -406,7 +406,7 @@ export function getInterfaceBody(testType: string, interfaceList: InterfaceList[ } //---------------------------- -function transTskey2Ckey(key: string) { +export function transTskey2Ckey(key: string) { for(const keyItem of dts2cpp_key) { for(const str of keyItem.keys) { if (key.includes(str)) { @@ -421,7 +421,7 @@ function transTskey2Ckey(key: string) { return key; } -function getDtsEnum(rootInfo: GenInfo) { +export function getDtsEnum(rootInfo: GenInfo) { let enumList = rootInfo.parseObj.enums; let out = ''; for(const enumItem of enumList) { @@ -438,7 +438,7 @@ function getDtsEnum(rootInfo: GenInfo) { return out; } -function getDtsFunction(rootInfo: GenInfo) { +export function getDtsFunction(rootInfo: GenInfo) { let funcList = rootInfo.parseObj.funcs; let out = ''; for(const funcItem of funcList) { @@ -470,7 +470,7 @@ function getDtsFunction(rootInfo: GenInfo) { return out; } -function getDtsClasses(rootInfo: GenInfo) { +export function getDtsClasses(rootInfo: GenInfo) { let classList = rootInfo.parseObj.classes; let out = ''; for(const classItem of classList) { @@ -494,7 +494,7 @@ function getDtsClasses(rootInfo: GenInfo) { return out; } -function getDtsStructs(rootInfo: GenInfo) { +export function getDtsStructs(rootInfo: GenInfo) { let structList = rootInfo.parseObj.structs; let out = ''; for(const structItem of structList) { @@ -520,7 +520,7 @@ function getDtsStructs(rootInfo: GenInfo) { return out; } -function getDtsUnions(rootInfo: GenInfo) { +export function getDtsUnions(rootInfo: GenInfo) { let unionList = rootInfo.parseObj.unions; let out = ''; for(const unionItem of unionList) { diff --git a/src/vscode_plugin/src/gen/gendtscpp.ts b/src/vscode_plugin/src/gen/gendtscpp.ts index 49926b9551e52db0c1269c4fcc319032e76d64bb..69ab93e468fc35b065ed105628b95def96e7ce53 100644 --- a/src/vscode_plugin/src/gen/gendtscpp.ts +++ b/src/vscode_plugin/src/gen/gendtscpp.ts @@ -36,7 +36,7 @@ interface GenResult { napiCppContent: string } -function genHFunction(func: FuncInfo, rawFileName: string) { +export function genHFunction(func: FuncInfo, rawFileName: string) { let funcParams = ''; for (let i = 0; i < func.params.length; ++i) { funcParams += i > 0 ? ', ' : ''; @@ -52,7 +52,7 @@ function genHFunction(func: FuncInfo, rawFileName: string) { return hContent; } -function replaceContent(fileContent: string, funcContent: GenResult, rootInfo: DtscppRootInfo) { +export function replaceContent(fileContent: string, funcContent: GenResult, rootInfo: DtscppRootInfo) { let upperFileName = rootInfo.fileName.toLocaleUpperCase(); fileContent = replaceAll(fileContent, '[fileName]', rootInfo.fileName); @@ -66,7 +66,7 @@ function replaceContent(fileContent: string, funcContent: GenResult, rootInfo: D return fileContent; } -function genDir(dirItem: DirTemp, funcContent: GenResult, rootInfo: DtscppRootInfo, out: string) +export function genDir(dirItem: DirTemp, funcContent: GenResult, rootInfo: DtscppRootInfo, out: string) { let dirPath = path.join(out, dirItem.name); let lowerFileName = rootInfo.fileName.toLocaleLowerCase(); @@ -95,7 +95,7 @@ function genDir(dirItem: DirTemp, funcContent: GenResult, rootInfo: DtscppRootIn }) } -function generateFuncCode(rootInfo: DtscppRootInfo) { +export function generateFuncCode(rootInfo: DtscppRootInfo) { let genResult: GenResult = { dtsContent: '', testContet: '', @@ -152,7 +152,7 @@ export function genCppFile(parseObj: ParseObj, tsFilePath: string, out: string) console.info('generate success!') } -function generateFunctions(parseObj: ParseObj, tsFilePath: string) { +export function generateFunctions(parseObj: ParseObj, tsFilePath: string) { let cppfunctions: FuncInfo[] = getFunctions(parseObj); let typeList: TypeList[] = getTypes(parseObj); let interfaceList: InterfaceList[] = getInterfaces(parseObj); @@ -180,7 +180,7 @@ function generateFunctions(parseObj: ParseObj, tsFilePath: string) { } // 将interface列表中的js type全部转换为c type -function getInterfaces(parseObj: ParseObj) { +export function getInterfaces(parseObj: ParseObj) { return parseObj.classes.map(cls => { const getParams = (variables: ParamObj[]) => variables.map(variable => ({ @@ -207,7 +207,7 @@ function getInterfaces(parseObj: ParseObj) { }); } -function getTypes(parseObj: ParseObj) { +export function getTypes(parseObj: ParseObj) { let typeList: TypeList[] = []; for (let i = 0; i < parseObj.types!.length; i++) { let typeObj: TypeList = { @@ -219,7 +219,7 @@ function getTypes(parseObj: ParseObj) { return typeList; } -function getFunctions(parseObj: ParseObj) { +export function getFunctions(parseObj: ParseObj) { let cppfunctions: FuncInfo[] = []; for (let i = 0; i < parseObj.funcs.length; i++) { let cppFuncInfo: FuncInfo = { @@ -241,7 +241,7 @@ function getFunctions(parseObj: ParseObj) { return cppfunctions; } -function getCTypeFromJS(type: string) { +export function getCTypeFromJS(type: string) { let cType = type; for (let index = 0; index < tsTransferType.length; index++) { if (type === tsTransferType[index].fromType) { @@ -251,7 +251,7 @@ function getCTypeFromJS(type: string) { return cType; } -function createFuncParam(params: ParamObj) { +export function createFuncParam(params: ParamObj) { let cppParam: ParamObj = { name: '', type: '', diff --git a/src/vscode_plugin/src/gen/genhdf.ts b/src/vscode_plugin/src/gen/genhdf.ts index 84f69bf5c0f72fbb94549fd9ad754726ee4cbec1..9799ab5d3c742cdf8dd698ee1c1199d96b8e04b8 100644 --- a/src/vscode_plugin/src/gen/genhdf.ts +++ b/src/vscode_plugin/src/gen/genhdf.ts @@ -36,7 +36,7 @@ const fileHandlers: { [key: string]: Function } = { }; // 循环写入文件, 并将funcContent的内容写入模板 -function genDir(dirItem: DirTemp, rootInfo: HdfRootInfo, out: string) { +export function genDir(dirItem: DirTemp, rootInfo: HdfRootInfo, out: string) { let dirPath = path.join(out, dirItem.name.replace('[driverName]', rootInfo.driverName)); // 创建目录 if (!fs.existsSync(dirPath)) { diff --git a/src/vscode_plugin/src/gen/gensa.ts b/src/vscode_plugin/src/gen/gensa.ts index ba2a5e098511bfe45441a2dd24e0ffe36c61abba..cd011fdda6a8594559668bab1b53e1b49b4b420e 100644 --- a/src/vscode_plugin/src/gen/gensa.ts +++ b/src/vscode_plugin/src/gen/gensa.ts @@ -46,7 +46,7 @@ const fileHandlers: { [key: string]: Function } = { }; // 遍历数据结构,拿到模板内容,并生成文件内容 -function genDir(dirItem: DirTemp, rootInfo: ServiceRootInfo, out: string) { +export function genDir(dirItem: DirTemp, rootInfo: ServiceRootInfo, out: string) { let dirPath = path.join(out, dirItem.name.replace('[serviceName]', rootInfo.serviceName)); // 创建目录 if (!fs.existsSync(dirPath)) { diff --git a/src/vscode_plugin/src/gen/gentest.ts b/src/vscode_plugin/src/gen/gentest.ts index 03dcebe789b0e044289909af27037e7d77bf4ce2..fdcffb7878b99c78e91982042ffed24f1ab08443 100644 --- a/src/vscode_plugin/src/gen/gentest.ts +++ b/src/vscode_plugin/src/gen/gentest.ts @@ -50,7 +50,7 @@ export function generateFuncTestCase(funcInfo: FuncInfo, rawFileName: string, t return funcTestContent; } -function genInitTestfunc(funcInfo: FuncInfo, typeList: TypeList[], interfaceList: InterfaceList[]) { +export function genInitTestfunc(funcInfo: FuncInfo, typeList: TypeList[], interfaceList: InterfaceList[]) { let funcParamDefine = ''; let funcParamUse = ''; let funcInfoParams = ''; @@ -86,7 +86,7 @@ function genInitTestfunc(funcInfo: FuncInfo, typeList: TypeList[], interfaceList return { funcParamUse, funcParamDefine, funcInfoParams }; } -function getTypeDefine(testType: string, funcParamDefine: string, funcInfo: FuncInfo, i: number, funcParamUse: string, typeList: TypeList[]) { +export function getTypeDefine(testType: string, funcParamDefine: string, funcInfo: FuncInfo, i: number, funcParamUse: string, typeList: TypeList[]) { let cTypeDefine = getTypeBody(testType, typeList); let typeDefType = getJsTypeFromC(cTypeDefine as string); // genType @@ -103,7 +103,7 @@ function getTypeDefine(testType: string, funcParamDefine: string, funcInfo: Func return [funcParamDefine, funcParamUse]; } -function genInterFuncParamStr(param: ParamObj[]) { +export function genInterFuncParamStr(param: ParamObj[]) { let paramsStr = ''; for(let i = 0; i < param.length; i++) { let rawType = getJsTypeFromC(param[i].type); @@ -115,7 +115,7 @@ function genInterFuncParamStr(param: ParamObj[]) { return paramsStr; } -function getInterfaceDefine(testType: string, funcParamDefine: string, funcInfo: FuncInfo, i: number, funcParamUse: string, interfaceList: InterfaceList[]) { +export function getInterfaceDefine(testType: string, funcParamDefine: string, funcInfo: FuncInfo, i: number, funcParamUse: string, interfaceList: InterfaceList[]) { let objValue = getInterfaceBody(testType, interfaceList); let objTestData = 'let %s:testNapi.%s = { '; let interParams = objValue!.params; @@ -166,7 +166,7 @@ function getInterfaceDefine(testType: string, funcParamDefine: string, funcInfo: return [funcParamDefine, funcParamUse]; } -function getTestType(type: string) { +export function getTestType(type: string) { // 去掉const 和 * type = replaceAll(type,'const', ''); type = replaceAll(type, '*', '').trim(); @@ -183,7 +183,7 @@ function getTestType(type: string) { return type; } -function getJsType(type: string) { +export function getJsType(type: string) { type = replaceAll(type,'const', ''); type = replaceAll(type, '*', '').trim(); if (isNumberType(type) || isStringType(type) || isBoolType(type) || type === 'void') {