modify md file

Signed-off-by: zhaoxudong <zhaoxudong@kaihongdigi.com>
This commit is contained in:
zhaoxudong 2022-03-09 15:11:09 +08:00
parent f68add860a
commit f9638008fa
10 changed files with 71 additions and 3487 deletions

View File

@ -31,9 +31,9 @@
依赖版本vscode 1.62.0
## 使用方法
工具支持三种入口分别是可执行文件、VS插件、IntelliJ插件。使用方法如下:
工具支持三种入口分别是可执行文件、VS插件、IntelliJ插件。
https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/INSTRUCTION_ZH.md
[使用方法](https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/INSTRUCTION_ZH.md)
@ -77,22 +77,20 @@
### 工具开发说明
若当前工具功能不满足开发者需求,开发者需增强工具能力,则可基于已有源码进行工具二次开发,编译打包生成自定义的可执行文件和插件。工具开发说明如下:
若当前工具功能不满足开发者需求,开发者需增强工具能力,则可基于已有源码进行工具二次开发,编译打包生成自定义的可执行文件和插件。
https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/DEVELOP_ZH.md
[工具开发说明](https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/DEVELOP_ZH.md)
## 版本说明
当前版本特性:
https://gitee.com/openharmony-sig/napi_generator/blob/master/release-notes/napi_generator-1.0.md
[当前版本特性](https://gitee.com/openharmony-sig/napi_generator/blob/master/release-notes/napi_generator-1.0.md)
后续版本特性:
https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/ROADMAP_ZH.md
[后续版本特性](https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/ROADMAP_ZH.md)
## FAQ
对于常见问题解决方法指导如下:
https://gitee.com/openharmony-sig/napi_generator/blob/master/FAQ.md
[FAQ](https://gitee.com/openharmony-sig/napi_generator/blob/master/FAQ.md)
## 参与贡献

View File

@ -1,4 +1,5 @@
# 工具开发说明
# NAPI框架生成工具开发说明
若当前工具功能不满足开发者需求,开发者需增强工具能力,则可基于已有源码进行工具二次开发,编译打包生成自定义的可执行文件和插件。
## 工具开发
### 可执行文件开发说明
@ -142,10 +143,6 @@
## 工具测试
进行工具二次开发后,本地可进行单元测试、特性测试确保工具的可用性。
单元测试方法如下:
[单元测试方法](https://gitee.com/openharmony-sig/napi_generator/blob/master/test/unittest/README_ZH.md)
https://gitee.com/openharmony-sig/napi_generator/blob/master/test/unittest/README_ZH.md
特性测试方法如下:
https://gitee.com/openharmony-sig/napi_generator/blob/master/test/storytest/README_ZH.md
[特性测试方法](https://gitee.com/openharmony-sig/napi_generator/blob/master/test/storytest/README_ZH.md)

View File

@ -187,9 +187,13 @@ File->New->Project。
![](../figures/IntelliJ_step_generateSuccess.png)
### 注意
对于ts文件中的number类型默认转为C++ uint32_t类型修改框架生成目录中的napitest.h类型赋值可实现number类型到C++指定数据类型的转换。
![](../figures/instruction_number_type.png)
## 集成测试
NAPI框架代码生成后系统框架开发者进行二次开发后即可集成到OpenHarmony编译系统生成对应的库文件供应用开发者调用接口。指导如下
NAPI框架代码生成后系统框架开发者进行二次开发后即可集成到OpenHarmony编译系统生成对应的库文件供应用开发者调用接口。
https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/Integration_Testing.md
[集成测试指导](https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/Integration_Testing.md)

View File

@ -7,9 +7,9 @@
1.硬件rk3566开发套件
2.系统镜像:镜像生成方式见:
2.系统镜像:
https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/集成方法.md
[镜像生成方式](https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/集成方法.md)
3.应用hap包hap包及源码路径如下napi_generator/examples/app

View File

@ -1,71 +0,0 @@
# IntelliJ插件源码
## 概述
本文主要介绍IntelliJ插件源码。
## 目录
```
├── napi_generator # NAPI框架代码生成工具
│ ├── ... # 其他文件夹
│ ├── src
| | ├── gen # 工具源码
| | └── generator # IntelliJ插件源码
```
### generator目录源码介绍
此目录为IntelliJ插件代码生成工具对应的源码开发者可基于此代码进行二次开发。
## 软件环境准备
系统:不限
开发工具IntelliJ IDEA
## 使用说明
IntelliJ插件我们提供了Jar包在项目的prebuilt目录下generator.jar开发者只需要下载这个jar包按照下述步骤安装使用即可。
1.新建或打开项目工程,以下以新建项目工程为例。
File->New->Project
![](../figures/IntelliJ_step_newFile.png)
左侧栏选择Java右侧默认选择单击Next。
![](../figures/IntelliJ_step_firstNext.png)
单击Next。
![](../figures/IntelliJ_step_secondNext.png)
单击Finish。
![](../figures/IntelliJ_step_finish.png)
2.复制本地napi_generator/test/unittest/basic.d.ts文件进入IntelliJ新建项目中选中src粘贴将basic.d.ts文件放入src目录。
![](../figures/IntelliJ_step_upload.png)
3.把需要转换的.d.ts文件放到项目中。
![](../figures/IntelliJ_step_project.png)
4.安装插件File->Settings->Plugins->Installed->Install Plugin from Disk...,
选择从项目prebuilt目录下generator.jar,安装成功之后重启IDE。
![](../figures/IntelliJ_step_pluginsOk.png)
![](../figures/IntelliJ_step_applyPlugins.png)
5.选择.d.ts文件,右键选择generate.d.ts选项生成文件。
![](../figures/IntelliJ_step_generate.png)
6.执行结束后会在目录下生成对应的文件。
![](../figures/IntelliJ_step_generateSuccess.png)
## 相关仓
暂无

View File

@ -1,37 +1,71 @@
# NAPI框架代码生成工具
## 版本规划
- **2022.6.30**
提供1.1版本 丰富工具支持的能力包括支持枚举、map等数据类型的转换2022.6.30号前完成迭代并提交代码。
2022.6.30提供1.1版本 丰富工具支持的能力包括支持枚举、map等数据类型的转换具体特性见表1。
- **2022.12.30**
2022.9.30提供1.2版本 基本完善工具C++支持能力2022.9.30前完成迭代并提交代码具体特性见表2。
提供1.2版本 基本完善工具C++支持能力2022.12.30前完成迭代并提交代码。
## 版本特性<a name="section249611124917"></a>
**表 1** 待开发特性
**表 1** 2022.6.30待支持特性
<a name="table143385853320"></a>
<table><thead align="left"><tr id="row53375863312"><th class="cellrowborder" valign="top" width="25.77%" id="mcps1.2.3.1.1"><p id="p20331858193317"><a name="p20331858193317"></a><a name="p20331858193317"></a>类别</p>
<table><thead align="left"><tr id="row53375863312"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.3.1.1"><p id="p20331858193317"><a name="p20331858193317"></a><a name="p20331858193317"></a>类别</p>
</th>
<th class="cellrowborder" valign="top" width="74.22999999999999%" id="mcps1.2.3.1.2"><p id="p1133115820331"><a name="p1133115820331"></a><a name="p1133115820331"></a>待开发特性</p>
<th class="cellrowborder" valign="top" width="45%" id="mcps1.2.3.1.2"><p id="p1133115820331"><a name="p1133115820331"></a><a name="p1133115820331"></a>待开发特性</p>
</th>
<th class="cellrowborder" valign="top" width="30%" id="mcps1.2.3.1.2"><p id="p1133115820331"><a name="p1133115820331"></a><a name="p1133115820331"></a>时间</p>
</th>
</tr>
</thead>
<tbody><tr id="row333115812331"><td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.2.3.1.1 "><p id="p2142111345714"><a name="p2142111345714"></a><a name="p2142111345714"></a>变量</p>
<tbody><tr id="row333115812331"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.1 "><p id="p2142111345714"><a name="p2142111345714"></a><a name="p2142111345714"></a>变量</p>
</td>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul9264132010"></a><a name="ul9264132010"></a><ul id="ul9264132010"><li>支持ts接口文件中namespace域的boolean类型变量转换为对应C++类型变量</li><li>支持ts接口文件中namespace域的any类型变量转换为对应C++类型变量 NAPI 实现、interface</li><li>支持ts接口文件中namespace域的Enum_number/string变量类型转换为对应C++类型变量</li><li>支持ts接口文件中namespace域的函数入参一部分指定参数值一部分定义参数类型变量</li><li>支持ts接口文件中namespace域的回调函数类型变量 转换为对应C++ JSCallbackInfo-类型变量</li><li>支持ts接口文件中namespace域的实例化object变量 转换为对应C++ class类实例变量</li><li>支持ts接口文件中namespace域的可选变量 转换为对应多种场景的C++ 变量,生成多个重载变量</li><li>支持ts接口文件中namespace域的map[string]any(string/number/bool/interface/map/array)变量入参一部分指定参数值,一部分定义参数类型变量</li><li>支持ts接口文件中namespace域的类型[]此方式声明的数组变量转换为对应C++类型变量</li><li>支持ts接口文件中namespace域的多中类型合并成新类型的变量转换为对应C++类型变量</li><li>支持ts接口文件中namespace域的array<boolean>、array<map>、 array<enum>类型转换变量为对应C++类型变量</li></ul>
<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul9264132010"></a><a name="ul9264132010"></a><ul id="ul9264132010"><li>支持ts接口文件中namespace域的boolean类型变量转换为对应C++类型变量</li><li>支持ts接口文件中namespace域的Enum_number/string变量类型转换为对应C++类型变量</li><li>支持ts接口文件中namespace域的回调函数类型变量 转换为对应C++ JSCallbackInfo-类型变量</li><li>支持ts接口文件中namespace域的map[string]any(string/number/bool/interface/map/array)变量入参一部分指定参数值,一部分定义参数类型变量</li><li>支持ts接口文件中namespace域的类型[]此方式声明的数组变量转换为对应C++类型变量</li><li>支持ts接口文件中namespace域的array<boolean>、array<map>、 array<enum>类型转换变量为对应C++类型变量</li></ul>
</td>
</tr>
<tr id="row15331058133314"><td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.2.3.1.1 "><p id="p056093211916"><a name="p056093211916"></a><a name="p056093211916"></a>函数返回值</p>
</td>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul166113311811"></a><a name="ul166113311811"></a><ul id="ul166113311811"><li>函数返回值支持 enum_string、enum_number</li><li>函数返回值支持 多类型合集类型 NAPI实现 any类型</li><li>函数返回值支持array<boolean>、array<map>、 array<enum>,以及类型的嵌套</li></ul>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul166113311811"></a><a name="ul166113311811"></a><ul id="ul166113311811"><li>函数返回值支持 enum_string、enum_number</li><li>函数返回值支持array<boolean>、array<map>、 array<enum>,以及类型的嵌套</li></ul>
</td>
</tr>
<tr id="row334175803317"><td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.2.3.1.1 "><p id="p382391145710"><a name="p382391145710"></a><a name="p382391145710"></a>函数</p>
</td>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持ts接口文件中namespace域的static函数转换为对应C++的函数</li><li>支持ts接口文件中namespace域的函数名称以$开头</li><li>支持ts接口文件中namespace域interface中带参数的new函数</li><li>支持ts接口文件中namespace域interface域支持函数类型根据函数类型变量转换为C++函数</li></ul>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持ts接口文件中namespace域的static函数转换为对应C++的函数</li><li>支持ts接口文件中namespace域的函数名称以$开头</li></ul>
</td>
</tr>
<tr id="row18711154213388"><td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.2.3.1.1 "><p id="p111921822185713"><a name="p111921822185713"></a><a name="p111921822185713"></a>文件</p>
</td>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul94024441879"></a><a name="ul94024441879"></a><ul id="ul94024441879"><li>命令行方式转换时支持多个文件路径,相互之间用空格分开</li><li>命令行方式转换时支持文件夹路径</li></ul>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.2.3.1.1 "><p id="p2142111345714"><a name="p2142111345714"></a><a name="p2142111345714"></a>2022.6.30</p>
</td>
</tr>
</tbody>
</table>
**表 2** 2022.9.30待支持特性
<a name="table143385853320"></a>
<table><thead align="left"><tr id="row53375863312"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.3.1.1"><p id="p20331858193317"><a name="p20331858193317"></a><a name="p20331858193317"></a>类别</p>
</th>
<th class="cellrowborder" valign="top" width="45%" id="mcps1.2.3.1.2"><p id="p1133115820331"><a name="p1133115820331"></a><a name="p1133115820331"></a>待开发特性</p>
</th>
<th class="cellrowborder" valign="top" width="30%" id="mcps1.2.3.1.2"><p id="p1133115820331"><a name="p1133115820331"></a><a name="p1133115820331"></a>时间</p>
</th>
</tr>
</thead>
<tbody><tr id="row333115812331"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.1 "><p id="p2142111345714"><a name="p2142111345714"></a><a name="p2142111345714"></a>变量</p>
</td>
<td class="cellrowborder" valign="top" width="45%" headers="mcps1.2.3.1.2 "><a name="ul9264132010"></a><a name="ul9264132010"></a><ul id="ul9264132010"><li>支持ts接口文件中namespace域的any类型变量转换为对应C++类型变量 NAPI 实现、interface</li><li>支持ts接口文件中namespace域的函数入参一部分指定参数值一部分定义参数类型变量</li><li>支持ts接口文件中namespace域的实例化object变量 转换为对应C++ class类实例变量</li><li>支持ts接口文件中namespace域的可选变量 转换为对应多种场景的C++ 变量,生成多个重载变量</li><li>支持ts接口文件中namespace域的多中类型合并成新类型的变量转换为对应C++类型变量</li></ul>
</td>
</tr>
<tr id="row15331058133314"><td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.2.3.1.1 "><p id="p056093211916"><a name="p056093211916"></a><a name="p056093211916"></a>函数返回值</p>
</td>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul166113311811"></a><a name="ul166113311811"></a><ul id="ul166113311811"><li>函数返回值支持 多类型合集类型 NAPI实现 any类型</li></ul>
</td>
</tr>
<tr id="row334175803317"><td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.2.3.1.1 "><p id="p382391145710"><a name="p382391145710"></a><a name="p382391145710"></a>函数</p>
</td>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持ts接口文件中namespace域interface中带参数的new函数</li><li>支持ts接口文件中namespace域interface域支持函数类型根据函数类型变量转换为C++函数</li></ul>
</td>
</tr>
<tr id="row834358143319"><td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.2.3.1.1 "><p id="p1818191195713"><a name="p1818191195713"></a><a name="p1818191195713"></a>interface</p>
@ -46,7 +80,9 @@
</tr>
<tr id="row18711154213388"><td class="cellrowborder" valign="top" width="25.77%" headers="mcps1.2.3.1.1 "><p id="p111921822185713"><a name="p111921822185713"></a><a name="p111921822185713"></a>文件</p>
</td>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul94024441879"></a><a name="ul94024441879"></a><ul id="ul94024441879"><li>命令行方式转换时支持多个文件路径,相互之间用空格分开</li><li>命令行方式转换时支持文件夹路径</li></ul>
<td class="cellrowborder" valign="top" width="74.22999999999999%" headers="mcps1.2.3.1.2 "><a name="ul94024441879"></a><a name="ul94024441879"></a><ul id="ul94024441879"></ul>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.2.3.1.1 "><p id="p2142111345714"><a name="p2142111345714"></a><a name="p2142111345714"></a>2022.9.30</p>
</td>
</tr>
</tbody>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

1136
package-lock.json generated

File diff suppressed because it is too large Load Diff

2244
src/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -47,7 +47,7 @@
"webpack-cli": "^4.9.1"
},
"dependencies": {
"typescript": "^4.5.5",
"typescript": "^4.6.2",
"vsce": "^2.6.7"
}
}