修改警告

Signed-off-by: huruitao <huruitao@kaihong.com>
This commit is contained in:
huruitao 2024-07-16 17:11:13 +08:00
parent 6ae308cd2a
commit 81873fbd64
45 changed files with 113 additions and 96 deletions

8
FAQ.md
View File

@ -31,15 +31,15 @@
D:\napi_tool>cmd_gen-win.exe @ohos.power.d.ts pkg/prelude/bootstrap.js:1794 return wrapper.apply(this.exports, args); ^ TypeError: Cannot read property 'name' of undefined at GenerateAll (C:\snapshot\gen\generate.js) at Object.DoGenerate (C:\snapshot\gen\main.js) at Object.<anonymous> (C:\snapshot\gen\cmd_gen.js) at Module._compile (pkg/prelude/bootstrap.js:1794:22)  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)  at Module.load (internal/modules/cjs/loader.js:950:32)  at Function.Module._load (internal/modules/cjs/loader.js:790:12) at Function.runMain (pkg/prelude/bootstrap.js:1847:12)  at internal/main/run_main_module.js:17:47
问题定位在windows命令行中执行cmd_gen-win.exe的时候后面没有加d.ts文件所在的绝对路径导致d.ts文件没有找到。
问题定位在windows命令行中执行cmd_gen-win.exe的时候后面没有加d.ts文件所在的路径absolute path导致d.ts文件没有找到。
问题解决在执行cmd_gen-win.exe的时候后面要加.d.ts文件所在的绝对路径或者把d.ts文件放入到cmd_gen-win.exe所在的目录中。例如直接执行
问题解决在执行cmd_gen-win.exe的时候后面要加.d.ts文件所在的路径absolute path或者把d.ts文件放入到cmd_gen-win.exe所在的目录中。例如直接执行
cmd_gen-win.exe @ohos.power.d.ts
### 3.未安装系统依赖插件,运行测试用例失败
问题描述:次运行UT或ST用例失败。
问题描述:次运行UT或ST用例失败。
Error: Cannot find module '../../node_modules/typescript'
Require stack:
@ -52,7 +52,7 @@
at require (internal/modules/cjs/helpers.js:101:18)
at Object.<anonymous> (/home/harmony/hhhh/napi_generator_1/src/gen/tools/common.js:16:13)
问题定位:次运行测试用例,napi_generator目录下、napi_generator/src目录下依赖插件未全部安装。
问题定位:次运行测试用例,napi_generator目录下、napi_generator/src目录下依赖插件未全部安装。
问题解决napi_generator目录下、napi_generator/src目录下重新安装依赖即可直到napi_generator/src/package.json文件中包含以下所有插件

View File

@ -24,7 +24,7 @@
<tbody>
<tr id="row334175803317"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.2.3.1.1 "><p id="p382391145710"><a name="p382391145710"></a><a name="p382391145710"></a><ul>函数类型</ul></p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持使用createThreadSafeFuncXXX格式创建线程安全函数 [注1.第一个参数为线程安全函数名称; 2.最后一个参数为回调函数]</li></ul>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持使用createThreadSafeFuncXXX格式创建线程安全函数 [注1.首个参数为线程安全函数名称; 2.结尾一个参数为回调函数]</li></ul>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.3.1.3 ">
<ul id="ult940244418001">

View File

@ -9,11 +9,11 @@
[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/cli/cmake2gn/docs/usage/INSTRUCTION_ZH.md)
├── napi_generator # 工具集
│ ├── ... # 其文件
│ ├── ... # 其文件
│ ├── src
│ │ ├── ...
│ │ ├── cml
│ │ | ├── ... # 其工具
│ │ | ├── ... # 其工具
│ │ | ├── cmake2gn
│ │ | | ├── src
│ │ | | | ├── main.js # 工具源码入口

View File

@ -10,11 +10,11 @@
## 目录
├── napi_generator # 工具集
│ ├── ... # 其文件
│ ├── ... # 其文件
│ ├── src
│ │ ├── ...
│ │ ├── cml
│ │ | ├── ... # 其工具
│ │ | ├── ... # 其工具
│ │ | ├── dts2cpp
│ │ | | ├── src/gen # napi工具源码
│ │ | | | ├── analyze # 解析器
@ -100,7 +100,7 @@ public:
### 代码集成
为了实现工具生成的接口被其子系统或者应用调用需将生成的代码编译集成到OpenHarmony系统中编译生成动态库。
为了实现工具生成的接口被其子系统或者应用调用需将生成的代码编译集成到OpenHarmony系统中编译生成动态库。
把工具的生成代码集成到OpenHarmony的具体操作步骤可以左键单击以下链接了解

View File

@ -31,15 +31,15 @@
D:\napi_tool>cmd_gen-win.exe @ohos.power.d.ts pkg/prelude/bootstrap.js:1794 return wrapper.apply(this.exports, args); ^ TypeError: Cannot read property 'name' of undefined at GenerateAll (C:\snapshot\gen\generate.js) at Object.DoGenerate (C:\snapshot\gen\main.js) at Object.<anonymous> (C:\snapshot\gen\cmd_gen.js) at Module._compile (pkg/prelude/bootstrap.js:1794:22)  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)  at Module.load (internal/modules/cjs/loader.js:950:32)  at Function.Module._load (internal/modules/cjs/loader.js:790:12) at Function.runMain (pkg/prelude/bootstrap.js:1847:12)  at internal/main/run_main_module.js:17:47
问题定位在windows命令行中执行cmd_gen-win.exe的时候后面没有加d.ts文件所在的绝对路径导致d.ts文件没有找到。
问题定位在windows命令行中执行cmd_gen-win.exe的时候后面没有加d.ts文件所在的路径absolute path导致d.ts文件没有找到。
问题解决在执行cmd_gen-win.exe的时候后面要加.d.ts文件所在的绝对路径或者把d.ts文件放入到cmd_gen-win.exe所在的目录中。例如直接执行
问题解决在执行cmd_gen-win.exe的时候后面要加.d.ts文件所在的路径absolute path或者把d.ts文件放入到cmd_gen-win.exe所在的目录中。例如直接执行
cmd_gen-win.exe @ohos.power.d.ts
### 3.未安装系统依赖插件,运行测试用例失败
问题描述:次运行UT或ST用例失败。
问题描述:次运行UT或ST用例失败。
Error: Cannot find module '../../node_modules/typescript'
Require stack:
@ -52,7 +52,7 @@
at require (internal/modules/cjs/helpers.js:101:18)
at Object.<anonymous> (/home/harmony/hhhh/napi_generator_1/src/gen/tools/common.js:16:13)
问题定位:次运行测试用例,napi_generator目录下、napi_generator/src目录下依赖插件未全部安装。
问题定位:次运行测试用例,napi_generator目录下、napi_generator/src目录下依赖插件未全部安装。
问题解决napi_generator目录下、napi_generator/src目录下重新安装依赖即可直到napi_generator/src/package.json文件中包含以下所有插件

View File

@ -24,7 +24,7 @@
<tbody>
<tr id="row334175803317"><td class="cellrowborder" valign="top" width="18%" headers="mcps1.2.3.1.1 "><p id="p382391145710"><a name="p382391145710"></a><a name="p382391145710"></a><ul>函数类型</ul></p>
</td>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持使用createThreadSafeFuncXXX格式创建线程安全函数 [注1.第一个参数为线程安全函数名称; 2.最后一个参数为回调函数]</li></ul>
<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持使用createThreadSafeFuncXXX格式创建线程安全函数 [注1.首个参数为线程安全函数名称; 2.结尾一个参数为回调函数]</li></ul>
</td>
<td class="cellrowborder" valign="top" width="20%" headers="mcps1.2.3.1.3 ">
<ul id="ult940244418001">

View File

@ -339,7 +339,7 @@ bool funcTest(bool& v, std::string& out)
#### 添加功能模块
在产品配置中添加上述子系统的功能模块,编译到产品产出文件中,例如在源码/productdefine/common/products/rk3566.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块,编译到产品产出文件中,例如在源码/productdefine/common/products/rk3566.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
"napitest:napitest":{}
@ -642,7 +642,7 @@ bool funcTest(bool& v, std::string& out)
#### 添加功能模块
在产品配置中添加上述子系统的功能模块,编译到产品产出文件中,例如在源码/productdefine/common/products/rk3566.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块,编译到产品产出文件中,例如在源码/productdefine/common/products/rk3566.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
"napitest:napitest":{}

View File

@ -295,7 +295,7 @@ bool funcTest(bool& v, std::string& out)
### 添加功能模块
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
```
{

View File

@ -2,7 +2,7 @@
## 场景说明
为了实现工具生成的接口被其子系统或者应用调用需将生成的代码编译集成到OpenHarmony系统中使其生成动态库供OpenHarmony应用层调用。
为了实现工具生成的接口被其子系统或者应用调用需将生成的代码编译集成到OpenHarmony系统中使其生成动态库供OpenHarmony应用层调用。
本文介绍如何将工具生成的源码利用OpenHarmony编译系统生成动态库供应用层调用主要是有以下两种方式分别为增加ohos.build文件方式和增加bundle.json文件方式。
## 4.0 版本
@ -102,7 +102,7 @@
### 添加功能模块
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
```
{
@ -418,7 +418,7 @@ bool funcTest(bool& v, std::string& out)
### 添加功能模块
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
```
{

View File

@ -42,7 +42,7 @@ napi_generator的可执行程序方式和插件方式都具有预检查的功能
joey@joey-virtual-machine:~/code/napi_test$
@ohos.napitest.d.ts (33,49),其中括号中第一个参数含义为行号,第二个参数含义为列号。
@ohos.napitest.d.ts (33,49),其中括号中个参数含义为行号,第二个参数含义为列号。
预检查的触发方式与生成框架的入口一致,使用方法参见生成框架描述。

View File

@ -139,7 +139,7 @@ out = v1 + v2;
### 添加功能模块
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
```
{
@ -259,7 +259,7 @@ out = v1 + v2;
### 添加功能模块
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
```
{
@ -379,7 +379,7 @@ out = v1 + v2;
### 添加功能模块
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块编译到产品产出文件中例如在源码vendor/hihope/rk3568/config.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
```
{
@ -543,7 +543,7 @@ out = v1 + v2;
#### 添加功能模块
在产品配置中添加上述子系统的功能模块,编译到产品产出文件中,例如在源码/productdefine/common/products/rk3566.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块,编译到产品产出文件中,例如在源码/productdefine/common/products/rk3566.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
"napitest:napitest":{}
@ -656,7 +656,7 @@ out = v1 + v2;
#### 添加功能模块
在产品配置中添加上述子系统的功能模块,编译到产品产出文件中,例如在源码/productdefine/common/products/rk3566.json中增加part选项其中第一个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
在产品配置中添加上述子系统的功能模块,编译到产品产出文件中,例如在源码/productdefine/common/products/rk3566.json中增加part选项其中个napitest就是BUILD.gn文件中的subsystem_name第二个napitest就是BUILD.gn文件中的part_name。
"napitest:napitest":{}

View File

@ -286,7 +286,7 @@ function generateAll(structOfTs, destDir, moduleName, numberType, jsonCfg) {
let partName = moduleName.replace('.', '_');
generateGYP(destDir, ns0.name, license, bindingCpp); // 生成ubuntu下测试的编译脚本
generateGN(destDir, ns0.name, license, partName, buildCpp); // 生成BUILD.gn for ohos
generateBase(destDir, license) // tool_utility.h/cpp
generateBase(destDir, license); // tool_utility.h/cpp
genFileList.push('tool_utility.h');
genFileList.push('tool_utility.cpp');
formatCode(destDir);

View File

@ -165,9 +165,9 @@ function getAddOrRemoveReg(func, isAddReg) {
function replaceOptionalParamDestory(middleFunc, param) {
if (param.optionalParamDestory === '') {
middleFunc = replaceAll(middleFunc, '[optionalParamDestory]', param.optionalParamDestory) // 可选参数内存释放;
middleFunc = replaceAll(middleFunc, '[optionalParamDestory]', param.optionalParamDestory); // 可选参数内存释放
} else {
middleFunc = replaceAll(middleFunc, '[optionalParamDestory]', '\n ' + param.optionalParamDestory) // 可选参数内存释放;
middleFunc = replaceAll(middleFunc, '[optionalParamDestory]', '\n ' + param.optionalParamDestory); // 可选参数内存释放
}
return middleFunc;
}
@ -208,11 +208,11 @@ function generateFunctionDirect(func, data, className, implHVariable) {
middleH = replaceValueOut(middleH, param);
param.valueCheckout = removeEndlineEnter(param.valueCheckout);
middleFunc = replaceAll(middleFunc, '[valueCheckout]', param.valueCheckout) // # 输入参数解析;
middleFunc = replaceAll(middleFunc, '[valueCheckout]', param.valueCheckout); // # 输入参数解析
let callFunc = '%s%s(%s);'.format(className === null || className === undefined ? '' : 'pInstance->',
func.name, param.valueFill);
middleFunc = replaceAll(middleFunc, '[callFunc]', callFunc) // 执行;
middleFunc = replaceAll(middleFunc, '[valuePackage]', param.valuePackage) // 输出参数打包;
middleFunc = replaceAll(middleFunc, '[callFunc]', callFunc); // 执行
middleFunc = replaceAll(middleFunc, '[valuePackage]', param.valuePackage); // 输出参数打包
middleFunc = replaceOptionalParamDestory(middleFunc, param);
let prefixArr = getPrefix(data, func);
let implH = '';

View File

@ -256,8 +256,11 @@ function generateType(name, data, inNamespace, inNameSpaceEnum, nameSpaceName, t
let implCpp = resultConnect[2];
let middleInit = resultConnect[3];
let midInitEnumDefine = resultConnect[4];
let selfNs = '';
selfNs = getSelfNs(inNamespace);
let selfNs = getSelfNs(inNamespace);
generateTypeFunc(result, implH, implCpp, middleInit, midInitEnumDefine, name);
}
function generateTypeFunc(result, implH, implCpp, middleInit, midInitEnumDefine, name) {
if (implH.indexOf('typedef') > 0) {
result = {
implH: implH,

View File

@ -36,11 +36,13 @@ function print(...args) {
String.prototype.format = function (...args) {
var result = this;
let reg = new RegExp('%[sd]{1}')
let reg = new RegExp('%[sd]{1}');
for (let i = 0; i < args.length; i++) {
let p = result.search(reg)
if (p < 0) break;
result = result.substring(0, p) + args[i] + result.substring(p + 2, result.length)
let p = result.search(reg);
if (p < 0) {
break;
}
result = result.substring(0, p) + args[i] + result.substring(p + 2, result.length);
}
return result;
};
@ -162,7 +164,7 @@ function getLicense(data) {
if (licenseData.search('Copyright') !== -1) {
return licenseData;
} else {
return null;
return '';
}
}
}
@ -200,10 +202,12 @@ function replaceTab(data) {
}
function removeEmptyLine2(data) {
while (data.indexOf(' \n'));
while (data.indexOf(' \n')) {
data = data.replace(' \n', '\n');
while (data.indexOf('\n\n\n'));
}
while (data.indexOf('\n\n\n')) {
data = data.replace('\n\n\n', '\n\n');
}
return data;
}
@ -301,10 +305,10 @@ function getPrefix(data, funcInfo) {
let virtualStr = '';
let staticStr = isStatic ? 'static ' : '';
if (data.childList) {
tabStr = ' ' // 类中的方法增加一个缩进
virtualStr = (data.childList.length > 0 && !isStatic) ? 'virtual ' : '' //如果是基类中的非静态方法,定义为虚函数
tabStr = ' '; // 类中的方法增加一个缩进
virtualStr = (data.childList.length > 0 && !isStatic) ? 'virtual ' : ''; //如果是基类中的非静态方法,定义为虚函数
}
let overrideStr = funcInfo.isOverride ? ' override' : '' // 重写了父类方法需要加上override关键字否则触发c++门禁告警
let overrideStr = funcInfo.isOverride ? ' override' : ''; // 重写了父类方法需要加上override关键字否则触发c++门禁告警
return [tabStr, staticStr, virtualStr, overrideStr];
}

View File

@ -8,11 +8,11 @@
[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/cli/h2dts/docs/usage/INSTRUCTION_ZH.md)
├── napi_generator # 工具集
│ ├── ... # 其文件
│ ├── ... # 其文件
│ ├── src
│ │ ├── ...
│ │ ├── cml
│ │ | ├── ... # 其工具
│ │ | ├── ... # 其工具
│ │ | ├── h2dts/src # 工具源码
│ │ │ │ ├── tsGen # Ts框架工具源码
│ │ | │ │ ├── header_parser.py # 解析C++头文件并生成表示类的数据结构

View File

@ -8,7 +8,7 @@ h2dtscpp工具即NATIVE生成工具该工具由C++语法解释器和代码生
```
├── napi_generator # NAPI框架代码生成工具
│ ├── ... # 其文档
│ ├── ... # 其文档
│ ├── src
│ │ ├── ...
│ │ ├── cli # 命令行
@ -20,7 +20,7 @@ h2dtscpp工具即NATIVE生成工具该工具由C++语法解释器和代码生
│ │ | | | ├── tsGen # 解析.h文件并生成.d.ts声明文件
│ │ | | | ├── main.js # 主程序入口
│ │ | | ├── package.json # 打包配置文件
│ │ | ├── ... # 其工具
│ │ | ├── ... # 其工具
```
## 约束

View File

@ -231,7 +231,7 @@ function createParam(parseParamInfo) {
let param = {
'name': '',
'type': ''
}
};
param.name = parseParamInfo.name;
param.type = parseParamInfo.type;
return param;

View File

@ -9,7 +9,7 @@
[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/cli/h2sa/docs/usage/INSTRUCTION_ZH.md)
├── napi_generator # NAPI框架代码生成工具
│ ├── ... # 其文档
│ ├── ... # 其文档
│ ├── src
│ │ ├── ...
│ │ ├── cml # 脚手架源码
@ -18,7 +18,7 @@
│ │ | | | ├── tools # 公共模块代码,包括消息体校验、文件读写、正则表达式转换等
│ │ | | | ├── gen # 生成器
│ │ | | ├── package.json # 配置文件
│ │ | ├── ... # 其工具
│ │ | ├── ... # 其工具
## 约束
系统建议Ubuntu 20.04或者Windows 10

View File

@ -34,7 +34,7 @@ Ability Template选择Empty Ability,单击Next。
![](../figures/DevEco_step_firstNext.png)
填写Project name、Save location,其选项可不修改单击Finish,新的工程就创建好了。
填写Project name、Save location,其选项可不修改单击Finish,新的工程就创建好了。
![](../figures/DevEco_step_finish.png)

View File

@ -168,7 +168,7 @@ struct Index {
console.info("napiTestDemo ----funcTest returnVal = " + this.returnVal)
})
// 调用其模块的方法
// 调用其模块的方法
Button() {
Text('调用entry模块的方法')
.fontSize(20)

View File

@ -26,7 +26,7 @@ Ability Template选择Empty Ability,单击Next。
![](../figures/DevEco_step_firstNext.png)
填写Project name、Save location,其选项可不修改单击Finish,新的工程就创建好了。
填写Project name、Save location,其选项可不修改单击Finish,新的工程就创建好了。
![](../figures/DevEco_step_finish.png)
@ -44,7 +44,7 @@ Ability Template选择Empty Ability,单击Next。
![](../figures/DevEco_step_service.png)
5、工具打开 Generate Service Frame窗口.h文件选择框默认填写被操作的.h文件的绝对路径;输出路径选择框默认填写.h文件所在文件夹路径可修改为任意路径serviceID默认填写9000可修改为其id,然后点击ok。
5、工具打开 Generate Service Frame窗口.h文件选择框默认填写被操作的.h文件的路径absolute path;输出路径选择框默认填写.h文件所在文件夹路径可修改为任意路径serviceID默认填写9000可修改为其id,然后点击ok。
![](../figures/DevEco_step_service_ok.png)

View File

@ -9,7 +9,7 @@
[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/tool/api/docs/INSTRUCTION_ZH.md)
├── napi_generator
│ ├── ... # 其文档
│ ├── ... # 其文档
│ ├── src/tool
│ │ ├── api # api扫描工具
│ │ | ├── api_scan_vs_plugin # VS Code插件源码

View File

@ -7,7 +7,7 @@ API扫描工具它可以根据用户给定三方库项目扫描输出风险
## 目录
├── napi_generator/src/tool/api # API扫描工具
│ ├── ... # 其文件
│ ├── ... # 其文件
│ ├── api_scan_IntelliJ_plugin # IntelliJ插件代码
│ │ ├── docs # IntelliJ插件说明
│ │ ├── resources # IntelliJ插件说明

View File

@ -26,7 +26,7 @@ Ability Template选择Empty Ability,单击Next。
![](../../figures/DevEco_step_firstNext.png)
填写Project name、Save location,其选项可不修改单击Finish,新的工程就创建好了。
填写Project name、Save location,其选项可不修改单击Finish,新的工程就创建好了。
![](../../figures/DevEco_step_finish.png)
@ -40,7 +40,7 @@ Ability Template选择Empty Ability,单击Next。
![](../../figures/DevEco_step_apiscan.png)
4、工具打开API Scan窗口扫描项目路径框填写将要扫描项目的绝对路径结果输出路径框自动填写与扫描项目相同路径使用者可以根据实际情况修改结果输出路径然后点击ok。
4、工具打开API Scan窗口扫描项目路径框填写将要扫描项目的路径absolute path结果输出路径框自动填写与扫描项目相同路径使用者可以根据实际情况修改结果输出路径然后点击ok。
![](../../figures/DevEco_step_api_ok.png)

View File

@ -7,7 +7,7 @@ API扫描工具它可以根据用户给定三方库项目扫描输出风险
## 目录
├── napi_generator/src/tool/api # API扫描工具
│ ├── ... # 其文件
│ ├── ... # 其文件
│ ├── api_scan_vs_plugin # VS Code插件代码
│ │ ├── docs # VS Code插件说明
│ │ ├── src # VS Code插件源码

View File

@ -26,7 +26,7 @@
npx vsce package
每个选项都选择y然后回车最终会在当前目录下打包生成一个插件ApiScan-0.0.1.vsix。结果如下
每个选项都选择y然后回车结果会在当前目录下打包生成一个插件ApiScan-0.0.1.vsix。结果如下
kaihong1@ubuntu:~/napi_generator_gjj/hdc/api/api_scan_vs_plugin/src$ npx vsce package
WARNING A 'repository' field is missing from the 'package.json' manifest file.
@ -62,7 +62,7 @@
npx vsce package
每个选项都选择y然后回车最终会在当前目录下打包生成一个插件ApiScan-0.0.1.vsix。结果如下
每个选项都选择y然后回车结果会在当前目录下打包生成一个插件ApiScan-0.0.1.vsix。结果如下
C:\napi_generator_GJJ\hdc\api\api_scan_vs_plugin\src>npx vsce package
WARNING A 'repository' field is missing from the 'package.json' manifest file.

View File

@ -27,7 +27,7 @@ visual studio code 版本需1.62.0及以上。
![](../../figures/pic-plug-in-api-c++.png)
5、 工具打开API Scan窗口扫描项目路径框填写将要扫描项目的绝对路径结果输出路径框自动填写与扫描项目相同路径使用者可以根据实际情况修改结果输出路径然后点击ok。
5、 工具打开API Scan窗口扫描项目路径框填写将要扫描项目的路径absolute path结果输出路径框自动填写与扫描项目相同路径使用者可以根据实际情况修改结果输出路径然后点击ok。
![](../../figures/pic-api-frame.png)

View File

@ -49,7 +49,7 @@ visual studio code 版本需1.62.0及以上。
![](../figures/pic-plug-in-import-service.png)
进入 TS 工具填写相应参数后点击Next , 生成.d.ts文件并启动 NAPI 工具, NAPI工具是工具链中最后一个工具NAPI工具的输入参数可以是TS工具的输出填写完相应参数后点击 Ok, 生成napi框架代码。
进入 TS 工具填写相应参数后点击Next , 生成.d.ts文件并启动 NAPI 工具, NAPI工具是工具链中结尾一个工具NAPI工具的输入参数可以是TS工具的输出填写完相应参数后点击 Ok, 生成napi框架代码。
![](../figures/pic-plug-in-import-ts.png)

View File

@ -26,7 +26,7 @@
npx vsce package
每个选项都选择y然后回车最终会在当前目录下打包生成一个插件gn-0.0.1.vsix。结果如下
每个选项都选择y然后回车结果会在当前目录下打包生成一个插件gn-0.0.1.vsix。结果如下
kaihong1@ubuntu:~/napi_generator_gjj/src/vscode_plugin/cmake2gn/gn_vs_plugin/src$ npx vsce package
WARNING A 'repository' field is missing from the 'package.json' manifest file.
@ -61,7 +61,7 @@
npx vsce package
每个选项都选择y然后回车最终会在当前目录下打包生成一个插件gn-0.0.1.vsix。结果如下
每个选项都选择y然后回车结果会在当前目录下打包生成一个插件gn-0.0.1.vsix。结果如下
C:\napi_generator_GJJ\src\vscode_plugin\cmake2gn\gn_vs_plugin\src>npx vsce package
WARNING A 'repository' field is missing from the 'package.json' manifest file.

View File

@ -31,13 +31,15 @@ function replaceAll(s, sfrom, sto) {
}
function detectPlatform() {
let result = '';
if (os.type() === 'Windows_NT') {
return 'win';
result = 'win';
} else if (os.type() === 'Darwin') {
return 'mac';
result = 'mac';
} else if (os.type() === 'Linux') {
return 'Linux';
result = 'Linux';
}
return result;
}
function checkFileError(ifname) {

View File

@ -297,7 +297,9 @@
function selectBlur(inputObj) {
var t = inputObj;
setTimeout(() => {t.nextSibling.nextSibling.style.display = 'none';}, 150);
setTimeout(() => {
t.nextSibling.nextSibling.style.display = 'none';
}, 150);
}
function selectFocus(inputObj) {

View File

@ -66,7 +66,7 @@ bool func1(std::string& v1, std::string& out)
### 集成方法
为了实现工具生成的接口被其子系统或者应用调用需将生成的代码编译集成到OpenHarmony系统中编译生成动态库。
为了实现工具生成的接口被其子系统或者应用调用需将生成的代码编译集成到OpenHarmony系统中编译生成动态库。
把工具的生成代码集成到OpenHarmony的具体操作步骤可以左键单击以下链接了解

View File

@ -121,7 +121,7 @@ function register(context, command) {
let result = {
msg: 'selectInterPath',
path: tt ? uri.fsPath : ''
}
};
globalPanel.webview.postMessage(result);
}
});

View File

@ -31,13 +31,15 @@ function replaceAll(s, sfrom, sto) {
}
function detectPlatform() {
let result = '';
if (os.type() === 'Windows_NT') {
return 'win';
result = 'win';
} else if (os.type() === 'Darwin') {
return 'mac';
result = 'mac';
} else if (os.type() === 'Linux') {
return 'Linux';
result = 'Linux';
}
return result;
}
function checkFileError(ifname) {

View File

@ -31,13 +31,15 @@ function replaceAll(s, sfrom, sto) {
}
function detectPlatform() {
let result = '';
if (os.type() === 'Windows_NT') {
return 'win';
result = 'win';
} else if (os.type() === 'Darwin') {
return 'mac';
result = 'mac';
} else if (os.type() === 'Linux') {
return 'Linux';
result = 'Linux';
}
return result;
}
function checkFileError(ifname) {

View File

@ -26,7 +26,7 @@
npx vsce package
每个选项都选择y然后回车最终会在当前目录下打包生成一个插件service-gen-0.0.1.vsix。结果如下
每个选项都选择y然后回车结果会在当前目录下打包生成一个插件service-gen-0.0.1.vsix。结果如下
kaihong1@ubuntu:~/napi_generator_gjj/src/vscode_plugin/h2sa/service_vs_plugin/src$ npx vsce package
This extension consists of 3282 files, out of which 1547 are JavaScript files. For performance reasons, you should bundle your extension: https://aka.ms/vscode-bundle-extension . You should also exclude unnecessary files by adding them to your .vscodeignore: https://aka.ms/vscode-vscodeignore
@ -54,7 +54,7 @@
npx vsce package
每个选项都选择y然后回车最终会在当前目录下打包生成一个插件service-gen-0.0.1.vsix。结果如下
每个选项都选择y然后回车结果会在当前目录下打包生成一个插件service-gen-0.0.1.vsix。结果如下
C:\napi_generator_GJJ\src\vscode_plugin\h2sa\service_vs_plugin\src>npx vsce package
This extension consists of 3281 files, out of which 1547 are JavaScript files. For performance reasons, you should bundle your extension: https://aka.ms/vscode-bundle-extension . You should also exclude unnecessary files by adding them to your .vscodeignore: https://aka.ms/vscode-vscodeignore

View File

@ -31,7 +31,7 @@ visual studio code 版本需1.62.0及以上。
![](../figures/pic-plug-in-gen-c++.png)
6、 工具打开 Service Generate Frame窗口.h文件选择框默认填写被操作的.h文件的绝对路径;输出路径选择框默认填写.h文件所在文件夹路径可修改为任意路径serviceID范围是1-16777215之间的整数超出范围会提示错误填入正确的serviceID然后点击ok。
6、 工具打开 Service Generate Frame窗口.h文件选择框默认填写被操作的.h文件的路径absolute path;输出路径选择框默认填写.h文件所在文件夹路径可修改为任意路径serviceID范围是1-16777215之间的整数超出范围会提示错误填入正确的serviceID然后点击ok。
![](../figures/pic-service-frame.png)

View File

@ -37,7 +37,7 @@ function search(ss, data) {
function match(ss, data) {
let tt = search(ss, data);
if (tt !== null && tt.regs[0][0] == 0) {
if (tt !== null && tt.regs[0][0] === 0) {
return tt;
}
return null;

View File

@ -31,13 +31,15 @@ function replaceAll(s, sfrom, sto) {
}
function detectPlatform() {
let result = '';
if (os.type() === 'Windows_NT') {
return 'win';
result = 'win';
} else if (os.type() === 'Darwin') {
return 'mac';
result = 'mac';
} else if (os.type() === 'Linux') {
return 'Linux';
result = 'Linux';
}
return result;
}
function checkFileError(ifname) {

View File

@ -6,7 +6,7 @@ NAPI工具的测试主要分为功能测试、单元测试两种其目的是
## 目录
├── napi_generator # NAPI框架代码生成工具
│ ├── ... # 其文件夹
│ ├── ... # 其文件夹
│ ├── test # 测试用例
│ | ├── unittest # UT测试用例
│ | ├── storytest # ST测试用例

View File

@ -7,9 +7,9 @@
## 目录
├── napi_generator # NAPI框架代码生成工具
│ ├── ... # 其文件夹
│ ├── ... # 其文件夹
│ ├── test # 测试用例
│ | ├── ... # 其文件夹
│ | ├── ... # 其文件夹
│ | ├── storytest # story测试代码
│ | | ├── test_$ # ts文件输入以$开头的函数测试用例
│ | | ├── test_[] # ts文件输入[]格式数组测试用例

View File

@ -8,9 +8,9 @@
├── napi_generator # NAPI框架代码生成工具
│ ├── src # 工具源码
│ ├── ... # 其文件夹
│ ├── ... # 其文件夹
│ ├── test # 测试用例
│ | ├── ... # 其文件夹
│ | ├── ... # 其文件夹
│ | ├── unittest # 单元测试代码
│ | | ├── analyze.test.js #执行gen/analyze目录下函数测试用例
│ | | ├── basic.d.ts* #基础函数模板