mirror of
https://gitee.com/openharmony/napi_generator
synced 2024-11-26 18:20:35 +00:00
style: modify ts-Gen tool and intelliJ plugin docs
Signed-off-by: gou-jingjing <goujingjing@kaihong.com>
This commit is contained in:
parent
15f4ac4f1f
commit
83dc9326cb
@ -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)
|
@ -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)
|
||||
|
||||
|
@ -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插件。其中的可执行文件可根据工具使用者的开发环境选择,支持Windows,Linux和Mac。可执行文件、IntelliJ插件、VS Code插件下载路径如下,选择napi_generator_outputs.zip中generator.jar下载:
|
||||
工具有两种类型,分别是可执行文件、IntelliJ插件。其中的可执行文件可根据工具使用者的开发环境选择,支持Windows,Linux和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
41
docs/ts/ROADMAP_ZH.md
Normal 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>
|
||||
|
||||
|
||||
## 相关链接
|
||||
|
||||
无
|
||||
|
BIN
figures/DevEco_step_tsGenerate.png
Normal file
BIN
figures/DevEco_step_tsGenerate.png
Normal file
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 |
@ -16,7 +16,7 @@ NAPI框架代码生成工具,它可以根据用户指定路径下的ts(typescr
|
||||
|
||||
## 约束
|
||||
|
||||
系统:不限
|
||||
系统:建议Windows 10
|
||||
|
||||
依赖版本:JDK 11
|
||||
|
||||
|
@ -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 11,Language level也选择版本11,选择或者新建complier output目录为项目文件下的out目录。
|
||||
![](../../../figures/IntelliJ_env_proj_structure.png)
|
||||
|
||||
5.Project Settings > Modules 新建Modules。点击上方“-”删除原有的Modules,然后点击“+”选择 New Module。
|
||||
|
@ -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)
|
||||
|
||||
|
61
release-notes/ts_Gen-1.0.md
Normal file
61
release-notes/ts_Gen-1.0.md
Normal file
@ -0,0 +1,61 @@
|
||||
# ts_Gen-1.0(2023-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)
|
Loading…
Reference in New Issue
Block a user