-
Notifications
You must be signed in to change notification settings - Fork 13
JuanZoran edited this page May 14, 2023
·
3 revisions
├── demo.mp4
├── doc
│ └── Trans.txt 自动生成的文档
├── lua
│ └── Trans 插件代码
│ ├── backend 翻译后端
│ │ ├── baidu.lua
│ │ ├── iciba.lua
│ │ ├── offline.lua
│ │ └── youdao.lua
│ ├── core 核心代码
│ │ ├── backend.lua 翻译后端的管理(主要为元表和配置的加载)
│ │ ├── buffer.lua 封装neovim的buffer代码, 旨在面向对象
│ │ ├── conf.lua 插件的默认配置
│ │ ├── curl.lua 简易封装的curl请求, 兼容plenary.curl的api
│ │ ├── data.lua
│ │ ├── frontend.lua 和core/backend.lua类似, 为前端的管理
│ │ ├── install.lua 安装插件依赖的函数
│ │ ├── setup.lua 加载用户配置和初始化
│ │ ├── translate.lua 主要逻辑
│ │ ├── util.lua 一些工具函数
│ │ └── window.lua 和core/buffer.lua类似, 为窗口的管理
│ ├── frontend
│ │ ├── float.lua 有想法但是没实现的浮动窗口
│ │ └── hover 光标悬停窗口
│ │ ├── execute.lua 配置的keymap执行逻辑
│ │ ├── init.lua 初始化hover对象
│ │ ├── load.lua 将backend的翻译结果渲染到hover对象
│ │ ├── offline.lua offline的渲染逻辑
│ │ └── youdao.lua youdao的渲染逻辑
│ ├── health.lua checkhealth Trans
│ ├── init.lua 插件入口, 设置元表
│ ├── README.md
│ ├── style 内置的一些ui样式
│ │ ├── spinner.lua 等待动画的样式
│ │ └── theme.lua 全局主题配色
│ └── util
│ ├── base64.lua 一些工具函数, 用于后端encode
│ ├── bing_node.lua
│ ├── init.lua
│ ├── md5.lua
│ └── node.lua buffer缓冲区文本的设置
├── plugin
│ └── Trans.lua 定义插件的命令
├── README.md
├── theme 主题配色展示图片
│ ├── default.png
│ ├── dracula.png
│ └── tokyonight.png
└── tts tts 用的node依赖,(现已移出
├── node_modules
│ ├── one-time
│ │ ├── index.js
│ │ ├── LICENSE
│ │ ├── package.json
│ │ ├── README.md
│ │ └── test.js
│ └── say
│ ├── index.d.ts
│ ├── index.js
│ ├── LICENSE.txt
│ ├── package.json
│ ├── platform
│ │ ├── base.js
│ │ ├── darwin.js
│ │ ├── linux.js
│ │ └── win32.js
│ ├── README.md
│ └── typings.json
├── package.json
├── package-lock.json
└── say.js
为了避免代码里出现大量的 require, 同时为了方便扩展, 所以插件的类扩展方法, 一般都设置为元表, 自动 require
-
Trans.xxx -> core/xxx.lua
比如:
`Trans.curl`在`init.lua`里没有找到curl的定义, 会**自动在require'Trans.core.curl', 返回的数据会作为Trans.curl返回, 同时更新Trans.curl的值** 下一次在请求就不需要require了
所以, 可以将 core 目录视为 Trans 表的扩展
-
Trans.backend.xxx -> backend/xxx.lua
同 core 目录一样, 该目录作为 Trans.backend 的扩展
-
Trans.frontend.xxx -> frontend/xxx.lua
-
Trans.theme.xxx -> theme/xxx.lua
-
Trans.util.xxx -> util/xxx.lua
获取字符串(Trans.util.get_str)
-> 创建TransData对象
-> 交给配置的对应的后端处理
-> 返回处理后的数据
-> 交给前端渲染