style: modify ts-Gen tool and intelliJ plugin docs

Signed-off-by: gou-jingjing <goujingjing@kaihong.com>
This commit is contained in:
gou-jingjing 2023-01-17 14:26:42 +08:00
parent 15f4ac4f1f
commit 83dc9326cb
10 changed files with 130 additions and 34 deletions

View File

@ -54,9 +54,9 @@ ts工具框架由C++语法解释器和代码生成器两部分组成。C++语法
**2 生成header_parser程序**
2.1 安装python库 CppHeaderParser
2.1 安装python库 CppHeaderParser在以下链接中下载CppHeaderParser并替换本地Python文件夹中CppHeaderParser(/usr/local/lib/python3.8/dist-packages/CppHeaderParser)目录下的全部文件
sudo pip install CppHeaderParser
[CppHeaderParser]()
2.2 安装 pyinstaller
@ -108,9 +108,9 @@ ts工具框架由C++语法解释器和代码生成器两部分组成。C++语法
**2.生成header_parser程序**
2.1 安装python库 CppHeaderParser
2.1 安装python库 CppHeaderParser在以下链接中下载CppHeaderParser并替换本地Python文件夹中CppHeaderParser(C:\Python310\Lib\site-packages\CppHeaderParser)目录下的全部文件
pip install CppHeaderParser
[CppHeaderParser]()
2.2 安装 pyinstaller
@ -122,4 +122,10 @@ ts工具框架由C++语法解释器和代码生成器两部分组成。C++语法
pyinstaller -F header_parser.py
打包后的可执行文件header_parser.exe在dist目录中
./src/tsGen/dist/header_parser.exe
./src/tsGen/dist/header_parser.exe
### IntelliJ 插件开发说明
具体的插件开发步骤,可以左键单击以下链接了解:
[IntelliJ插件开发说明](https://gitee.com/openharmony/napi_generator/blob/master/napi_IntelliJ_plugin/docs/ts/DEVELOP__ZH .md)

View File

@ -1,14 +1,13 @@
# Ts接口生成工具使用说明
## 简介
Ts接口生成工具支持三种入口分别是可执行程序、VS Code插件、IntelliJ插件使用者可以根据自己的需要选择合适的工具。可执行文件、IntelliJ插件、VS Code插件下载路径如下选择napi_generator_outputs.zip下载。
Ts接口生成工具支持两种入口,分别是可执行程序、IntelliJ插件使用者可以根据自己的需要选择合适的工具。可执行文件、IntelliJ插件下载路径如下选择napi_generator_outputs.zip下载。
[下载链接](http://ftp.kaihongdigi.com:5000/fsdownload/mKjfCmPjk/generator_outputs_NAPI_0930)
下载文件说明如下:
│ │ |── generator.jar # IntelliJ插件
│ │ |── gnapi-0.0.1.vsix # VS Code插件
│ │ |── header_parser.exe # python脚本可执行程序
│ │ |── napi_generator-linux # Linux可执行程序
│ │ |── napi_generator-win.exe # Windows可执行程序
@ -27,26 +26,27 @@ Ts接口生成工具支持三种入口分别是可执行程序、VS Code插
#### Linux
1.将待转换的.h文件、napi_generator-linux、header_parser.exe放在同级目录下,此处新建out文件夹用于存放生成.d.ts文件。整体目录文件如下
1.将待转换的.h文件、napi_generator-linux、header_parser放在同级目录下,此处新建out文件夹用于存放生成.d.ts文件。整体目录文件如下
harmony@Ubuntu-64:~/service/linshi$ ls
baseapi.h header_parser napi_generator-linux out
2.在终端中进入到之前可执行程序napi_generator-linux所在的目录并运行napi_generator-linux命令如下
harmony@Ubuntu-64:~/service/linshi$ ./napi_generator-linux -f baseapi.h -o out
harmony@Ubuntu-64:~/service/linshi$ ./napi_generator-linux -f baseapi.h -t true -o out
其中,参数详情如下:
-f, 待转换的.h文件若同时转换多个文件文件之间用“,”隔开;
-d, 根据指定路径转换该文件夹中所有.h文件
-t, 区分ts生成与napi转换工具值为true时表示ts生成false表示napi转换默认为false
-o, 可选参数,默认为当前目录,指定生成框架代码输出路径。
备注:-f与-d两个参数只选其中一个参数即可。
3.运行成功后会在out目录下生成.d.ts文件如下所示
harmony@Ubuntu-64:~/linshi/napi_generator_8/examples/ts/out$ ls
napi_gen.log test.d.ts
napi_gen.log baseapi.d.ts
#### Windows
@ -60,13 +60,14 @@ Ts接口生成工具支持三种入口分别是可执行程序、VS Code插
2.在终端中进入到之前可执行程序napi_generator-win.exe所在的目录并运行napi_generator-win.exe命令如下
E:\demo\napi>napi_generator-win.exe -f baseapi.h -o out
E:\demo\napi>napi_generator-win.exe -f baseapi.h -t true -o out
其中,参数详情如下:
-f, 待转换的.h文件若同时转换多个文件文件之间用“,”隔开;
-d, 根据指定路径转换该文件夹中所有.h文件
-t, 区分ts生成与napi转换工具值为true时表示ts生成false表示napi转换默认为false
-o, 可选参数,默认为当前目录,指定生成框架代码输出路径。
备注:-f与-d两个参数只选其中一个参数即可。
3.运行成功后会在out目录下生成.d.ts文件如下所示
@ -79,21 +80,8 @@ Ts接口生成工具支持三种入口分别是可执行程序、VS Code插
方法步骤参考windows、Linux的使用方法。
### VS Code插件使用方法
具体的插件使用步骤,可以左键单击以下链接了解:
[VS插件使用说明](https://gitee.com/openharmony/napi_generator/tree/master/napi_vs_plugin/docs/ts/INSTRUCTION_ZH.md)
### IntelliJ插件使用方法
具体的插件使用步骤,可以左键单击以下链接了解:
[IntelliJ插件使用说明](https://gitee.com/openharmony/napi_generator/tree/master/napi_IntelliJ_plugin/docs/ts/INSTRUCTION_ZH.md)
## 注意
当前Ts工具支持数据类型如下图所示
![](../../figures/instruction_number_type.png)

View File

@ -1,7 +1,7 @@
# Ts接口生成工具
## 简介
本文主要介绍ts(type-script)接口生成工具它可以根据定义在c++头文件中的接口生成type-script语言的ts接口文件。若某个服务实现方式为c++,且供应用层访问的接口已在.h文件中定义此时NAPI接口开发者使用此工具可一键生成对应的ts文件进而将生成的ts文件作为NAPI框架生成代码工具的输入生成NAPI框架代码。串行使用ts接口生成工具、NAPI框架代码生成工具形成工具链达到降低NAPI接口开发难度提高开发效率。目前工具支持可执行文件、VS Code插件、IntelliJ插件三种入口。
本文主要介绍ts(type-script)接口生成工具它可以根据定义在c++头文件中的接口生成type-script语言的ts接口文件。若某个服务实现方式为c++,且供应用层访问的接口已在.h文件中定义此时NAPI接口开发者使用此工具可一键生成对应的ts文件进而将生成的ts文件作为NAPI框架生成代码工具的输入生成NAPI框架代码。串行使用ts接口生成工具、NAPI框架代码生成工具形成工具链达到降低NAPI接口开发难度提高开发效率。目前工具支持可执行文件、IntelliJ插件两种入口。
更多工具的架构和实现原理详情,可以左键单击以下链接了解:
@ -35,7 +35,7 @@
### 工具使用
工具有三种类型分别是可执行文件、VS Code插件、IntelliJ插件。其中的可执行文件可根据工具使用者的开发环境选择支持WindowsLinux和Mac。可执行文件、IntelliJ插件、VS Code插件下载路径如下选择napi_generator_outputs.zip中generator.jar下载
工具有两种类型,分别是可执行文件、IntelliJ插件。其中的可执行文件可根据工具使用者的开发环境选择支持WindowsLinux和Mac。可执行文件、IntelliJ插下载路径如下选择napi_generator_outputs.zip中generator.jar下载
[下载链接](http://ftp.kaihongdigi.com:5000/fsdownload/mKjfCmPjk/generator_outputs_NAPI_0930)

41
docs/ts/ROADMAP_ZH.md Normal file
View File

@ -0,0 +1,41 @@
# TS接口文件生成工具
## 版本规划
2023.01.30提供1.0版本 基本完善工具C++支持能力2023.01.30前完成迭代并提交代码具体特性见表1。
**表 1** 2023.01.30待支持特性
<a name="table143385853320"></a>
<table><thead align="left"><tr id="row53375863312"><th class="cellrowborder" valign="top" width="15%" 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="55%" 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.3"><p id="p1133115820332"><a name="p1133115820332"></a><a name="p1133115820332"></a>入口平台</p>
</th>
</tr>
</thead>
<tbody><tr id="row333115812331"><td class="cellrowborder" valign="top" width="15%" 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="55%" headers="mcps1.2.3.1.2 "><a name="ul9264132010"></a><a name="ul9264132010"></a><ul id="ul9264132010"><li>支持C++语言中enum复合类型变量/函数入参自动转换为对应TS接口中的变量/函数 </li><li>支持C++语言中std::map转换为对应TS接口中的Map<></li><li>支持C++语言中std::any转换为对应TS接口中的any</li><li>支持C++语言中namespace域嵌套namespace转换为对应TS接口中的实现</li><li>支持C++语言数组类型为using定义的NUMBER_TYPE类型转换为对应TS接口中的变量</li></ul>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.2.3.1.3 "><a name="ul9264132011"></a><a name="ul9264132011"></a><ul id="ul9264132011"><li>可执行文件-Windows/Ubuntu/Mac</li><li>IntelliJ插件-Windows</li><li>VSCode插件-Windows/Ubuntu/Mac</li></ul>
</td>
</tr>
<tr id="row334175803317"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.2.3.1.1 "><p id="p382391145710"><a name="p382391145710"></a><a name="p382391145710"></a>namespace</p>
</td>
<td class="cellrowborder" valign="top" width="55%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持.h文件中namespace域class继承转换为对应TS文件中继承的class</li></ul>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.2.3.1.3 "><a name="ul9264132012"></a><a name="ul9264132012"></a><ul id="ul9264132012"><li>可执行文件-Windows/Ubuntu/Mac</li><li>IntelliJ插件-Windows</li><li>VSCode插件-Windows/Ubuntu/Mac</li></ul>
</td>
</tr>
</tr>
</tbody>
</table>
## 相关链接

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -16,7 +16,7 @@ NAPI框架代码生成工具它可以根据用户指定路径下的ts(typescr
## 约束
系统:不限
系统:建议Windows 10
依赖版本JDK 11

View File

@ -12,7 +12,7 @@
#### 环境准备
1.下载napi_generator-win.exe可执行程序与header_parser可执行程序放置在napi_generator/napi_IntelliJ_plugin/resources/cmds/win目录下。其中下载地址如下
1.下载napi_generator-win.exe可执行程序与header_parser.exe可执行程序放置在napi_generator/napi_IntelliJ_plugin/resources/cmds/win目录下。其中下载地址如下
[下载链接](http://ftp.kaihongdigi.com:5000/fsdownload/mKjfCmPjk/generator_outputs_NAPI_0930)
@ -25,7 +25,7 @@
![](../../../figures/IntelliJ_env_config_open_proj.png)
4.项目打开完成点击File>Project Structure,在出现的界面中点击Project,下图的SDK选择JDK 11选择或者新建complier output目录为项目文件下的out目录。
4.项目打开完成点击File>Project Structure,在出现的界面中点击Project,下图的SDK选择JDK 11Language level也选择版本11选择或者新建complier output目录为项目文件下的out目录。
![](../../../figures/IntelliJ_env_proj_structure.png)
5.Project Settings > Modules 新建Modules。点击上方“-”删除原有的Modules然后点击“+”选择 New Module。

View File

@ -10,9 +10,9 @@ IntelliJ插件下载路径如下选择napi_generator_outputs.zip中generator.
### 依赖
系统:不限
系统:建议Windows 10
开发工具DevEco stdio
开发工具DevEco Studio
### 使用指导
@ -42,7 +42,7 @@ Ability Template选择Empty Ability,单击Next。
4.选择.h文件,点击右键选择Generate Napi Frame工具弹出Generate Napi Frame弹窗,选择Ts-Gen页签。文件路径文本框填写.h文件路径输出目录选择文本框填写生成.d.ts文件存放路径点击ok。
![](../../../figures/DevEco_step_napiGenerate.png)
![](../../../figures/DevEco_step_tsGenerate.png)
![](../../../figures/DevEco_step_ts_ok.png)

View File

@ -0,0 +1,61 @@
# ts_Gen-1.02023-01-30
## 版本概述<a name="section249611124916"></a>
发布ts_Gen-1.0。
## 版本特性<a name="section249611124917"></a>
**表 1** 已支持特性
<a name="table143385853320"></a>
<table><thead align="left"><tr id="row53375863312"><th class="cellrowborder" valign="top" width="15%" 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="60%" 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="25%" id="mcps1.2.3.1.3"><p id="p1133115820332"><a name="p1133115820332"></a><a name="p1133115820332"></a>入口平台</p>
</th>
</tr>
</thead>
<tbody><tr id="row333115812331"><td class="cellrowborder" valign="top" width="15%" 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="60%" headers="mcps1.2.3.1.2 "><a name="ul9264132010"></a><a name="ul9264132010"></a><ul id="ul9264132010"><li>支持C++语言中string、std::string、char、wchar_t、char16_t、char32_t、short、int、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t、double_t、float_t、size_t、long、long long、float、double、long double、bool基础类型的变量/函数入参自动转换为对应TS接口中变量/入参</li><li>支持C++语言中string、std::string、char、wchar_t、char16_t、char32_t、short、int、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t、double_t、float_t、size_t、long、long long、float、double、long double、bool数组类型的变量/函数入参自动转换为对应TS接口中变量/入参数组书写方式为std::vector<></li><li>支持C++语言string、std::string、char、wchar_t、char16_t、char32_t、short、int、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t、double_t、float_t、size_t、long、long long、float、double、long double、bool基础类型的返回值自动转换为对应TS接口中返回值</li></ul>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 "><a name="ul9264132011"></a><a name="ul9264132011"></a><ul id="ul9264132011"><li>可执行文件-Windows/Ubuntu/Mac</li><li>IntelliJ插件-Windows</li></ul>
</td>
</tr>
<tr id="row334175803317"><td class="cellrowborder" valign="top" width="15%" 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="60%" headers="mcps1.2.3.1.2 "><a name="ul334485413318"></a><a name="ul334485413318"></a><ul id="ul334485413318"><li>支持ts接口文件中namespace域的static函数自动转换为对应TS接口中的函数</li></ul>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 "><a name="ul9264132013"></a><a name="ul9264132013"></a><ul id="ul9264132013"><li>可执行文件-Windows/Ubuntu/Mac</li><li>IntelliJ插件-Windows</li></ul>
</td>
</tr>
<tr id="row834358143319"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.2.3.1.1 "><p id="p1818191195713"><a name="p1818191195713"></a><a name="p1818191195713"></a>class</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.2.3.1.2 "><a name="ul4367144411512"></a><a name="ul4367144411512"></a><ul id="ul4367144411512"><li>支持C++语言中class的变量、函数自动转换为对应TS接口中的变量、函数</li></ul>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 "><a name="ul9264132015"></a><a name="ul9264132015"></a><ul id="ul9264132015"><li>可执行文件-Windows/Ubuntu/Mac</li><li>IntelliJ插件-Windows</li></ul>
</td>
</tr>
<tr id="row119944512385"><td class="cellrowborder" valign="top" width="15%" headers="mcps1.2.3.1.1 "><p id="p919862210573"><a name="p919862210573"></a><a name="p919862210573"></a>namespace</p>
</td>
<td class="cellrowborder" valign="top" width="60%" headers="mcps1.2.3.1.2 "><a name="ul12374158862"></a><a name="ul12374158862"></a><ul id="ul12374158862"><li>支持C++语言中namespace域的变量、函数自动转换为对应TS接口中的变量、函数</li><li>支持.h文件中namespace域class转换为对应TS接口中的class</li> </ul>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 "><a name="ul9264132017"></a><a name="ul9264132017"></a><ul id="ul9264132017"><li>可执行文件-Windows/Ubuntu/Mac</li><li>IntelliJ插件-Windows</li></ul>
</td>
</tr>
<tr id="row18711154213388"><td class="cellrowborder" valign="top" width="15%" 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="60%" headers="mcps1.2.3.1.2 "><a name="ul94024441879"></a><a name="ul94024441879"></a><ul id="ul94024441879"><li>支持.h文件中namespace数据类型转换为对应TS接口中的数据类型</li><li>支持C++文件名格式A.h的文件转换</li><li>支持命令行方式转换时参数为多个文件路径,相互之间用英文逗号分开</li><li>支持命令行方式转换时指定文件夹路径方式转换</li></ul>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.3.1.3 "><a name="ul9264132019"></a><a name="ul9264132019"></a><ul id="ul9264132019"><li>可执行文件-Windows/Ubuntu/Mac</li><li>IntelliJ插件-Windows</li></ul>
</td>
</tr>
</tbody>
</table>
**表 2**
[待开发特性](https://gitee.com/openharmony/napi_generator/blob/master/docs/ts/ROADMAP_ZH.md)