mirror of
https://gitee.com/openharmony/napi_generator
synced 2024-10-07 06:04:11 +00:00
modify md file
Signed-off-by: zhaoxudong <zhaoxudong@kaihongdigi.com>
This commit is contained in:
parent
f68add860a
commit
f9638008fa
18
README_ZH.md
18
README_ZH.md
@ -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)
|
||||
|
||||
## 参与贡献
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
||||
## 相关仓
|
||||
|
||||
暂无
|
@ -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>
|
||||
|
BIN
figures/instruction_number_type.png
Normal file
BIN
figures/instruction_number_type.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
1136
package-lock.json
generated
1136
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
2244
src/package-lock.json
generated
2244
src/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -47,7 +47,7 @@
|
||||
"webpack-cli": "^4.9.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"typescript": "^4.5.5",
|
||||
"typescript": "^4.6.2",
|
||||
"vsce": "^2.6.7"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user