Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Yimi Client ToolNew to Visual Studio Code? Get it now.
Yimi Client Tool

Yimi Client Tool

newbility523

|
17 installs
| (1) | Free
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Node.js CI

Yimi Client VSCE(BETA)

日常开发中,一些原本能批量处理和能被现代 IDE 支持的功能,因为种种原因需要用人工的手段处理,实在让人心累。为了处理这些问题所以本项目诞生。

Yimi Client VSCE,一款 Yimi 前端专属的 VSCode 插件,整合日常开发内部的痛点需求。Happy coding and let's MYGA(Make Yimi Grate Again)

[TOC]

Feature

已有特性如下:

  • 命令功能

    • UIBinding 组件提示
    • Description 迁移(从另一个项目)
    • 代码风格替换
    • Prefab Text 批量初始化赋值
    • Description 悬停提示
    • 服务器枚举补齐
  • Snippets

Install

目前插件已上架 VSCode 的插件市场,所以可以在 VSCode 的插件里搜索 Yimi Client Tool 安装(更新)最新版本。当然也可以在 releases 中下载你需要的版本,然后通过 Install from VSIX 手动安装。

安装成功后目录位于

  • Windows %USERPROFILE%/.vscode/extensions
  • macOS ~/.vscode/extensions

Configuration

在使用前,需要先进入插件设置界面,设置几个关键配置

配置 含义
clientId 你在 Description.lua 的前两位 ID(如 27001000 即填 27 ),用于插入 Description.lua 描述时生成的 id 分配。
oldProjectPath 旧项目的路径,如 E:\OldPrject\Client\project,用于搬迁丢失的 Description
curProjectPath 当前项目目录,如 E:\MainVersion\Client\project
branchProjectPath 当前项目最新分支目录,如 E:\Branch\Client\project,用于寻找丢失的 prefab 文字

Usage

大部分功能都可以通过 Ctrl+P 输入 > 后呼出指令面板,输入相应的指令名就能对当前打开脚本进行处理。

常用的功能推荐绑定快捷键,如推荐 F4 绑定 Switch Current Word To Description。

UIBinding 组件提示

在存在 self.prefab = "xxxx.prefab" 的脚本中,输入 self.view. 就能得到提示

指令无,

IntelliSense

Description 迁移(从另一个项目)

将当前脚本缺失的 Description Id 从另一个项目迁移到当前项目。该指令存在两个版本,File 和 Folder 针对当前文件和当前目录。

指令:Fix Description,

慎用目录Fix Description(Folder),不要用于操作包含 Config 或 Description.lua 的目录。

fixDescription

代码风格替换

将就旧法转化为新写法。

指令:Change Code Style

changeCodeStyle

Prefab Text 批量初始化赋值

Pefab 上的 Text 组件都只能默认为空格,一是为了多语言处理,二是降低一些 Text 初始化的内存占用。输入指令自动可以将 Prefab 上的文字批量插入到 OnCreateFinished 中赋值。

指令:Init Prefab Text

注意:Init Prefab Text请确保 prefab 中包含文字,如果没有,你可能需要另一个版本Init Prefab Text(With Branch),需要从分支的 prefab 中获取文字用于赋值

initPefabText

文本转 DescriptionID & Description 悬停提示

将 ""号包围的文本插入到 Description.lua ,并用一个新的 id 代替原文本。

指令:Switch Current Word To Description

switchWord

鼠标放在 DescriptionID 上提示其代表的中文

服务器枚举补齐

将光标所在的服务器枚举补全。

指令:Fix Message Require

fixRequire

Snippets

内置丰富的代码模版,通过输入 -- 触发 snippets。

snippest

目前支持 snippets 如下

触发 说明
--tabbar full 创建全屏界面 Tabbar
--tabbar 创建 Tabbar
--class annotation 类注释
--class ui 创建 UI 类
--tool tip show Manager 显示一个 Tooltip
--list 创建一个 List
--loop list 创建一个 List
--super 调用父类方法
--local util 引用 UtilsManager
--local config 引用 ConfigManager
--local cache 引用cache
--ui effect 创建 UIEffect
--local client const 引用 ClientConst
--track point 添加红点组件
--select count 创建 SelectCount
--animation text 创建 AnimationText
--cd button 创建倒计时按钮
--ui module 创建 module
--player name 玩家名称
--jump ui UI 跳转
--ui model 创建模型
--local table 引用 tabble 常用方法
--function 创建函数
--log time 耗时打点
--local getconfig 获取配置表
--class create 创建类
--track point go 红点

Development

如果你需要对插件补充功能,或想本地修改,请先按照官方教程先把开发环境搭建好。

  • VSCode 官方教程
  • VSCode 官方案例

Clone 项目后,就可以通过 VSCode 打开本项目。

  • 点击调试(或快捷键 Ctrl+F5 )编译代码并开启 Debug。
  • 每次改了源码,可以在 Debug 的 Host 窗口输入指令> Develop reload (或快捷键 Ctrl+R)加载编译的代码。

如果想拓展功能参考已有方案或者官方案例

Python 版本限制为 3.9.10

项目结构如下

.
├── src/
│   ├── demo/          # 测试插件的脚本功能的资源
│   ├── extensions/    # 各个特性拓展
│   ├── utils/         # 通用工具
│   └── extension.ts   # main,插件入口
├── python/            # 引用到的 python 脚本  
├── snippets/          # 代码模版
├── shell/          	 # sh 脚本,自动化工具
└── package.json

开发语言选择

请务必选用 TypeScript.

~~对于开发插件语言的选取,虽然 TypeScript 是官方唯一指定语言,但还是建议采用 Python。Python 在日常开发中的适用度更高,建议在有一定 Python 基础后在考虑是否学习 TypeScript。~~

~~所以更快捷的开发插件手段是写一份 Python 的实现,然后在插件中调用即可。可以参考 DescriptionTranfer.ts。~~

生成安装包

在根目录调用指令

vsce package

发布

版本号分为三个部分 (major, minor, or patch) ,通过指定这三个部分可以实现版本号自增并发布(publish 会自动 build)。

# 自增版本号并发布
vsce publish patch
# 或指定具体版本号
vsce publish 1.1.0

发布需要 Azure 的账号以及 token,非必要,你只需提交 Pull Request 即可,@newbility523 会合并到主版本并发布,自动发布方案也在规划中。

记得提交被自动修改了版本号的 package.json

snippest 补充

snippest 补充或修改请提交 issue

规范

开发功能时,请遵循项目预设结构进行开发。

其他

  • 开发时请不要带有其他公司的信息,避免可能会出现的法律问题。
  • 尽可能让工具能适配所有项目组的使用场景。
  • 如果你有迫切的功能需求,可以提到 issues。

Todo

插件尚处于 Beta 阶段,比较迫切的需求是

  • [ ] 更健壮的插件功能
  • [x] 插件在线更新方案
  • [ ] 插件自动发布方案

其他功能

  • [x] 旧项目写法替换
  • [x] 快捷创建组件模板
  • [x] 快捷导入 prefab 预设文字
  • [ ] 颜色替换
  • [x] 可视化配置
  • [x] 快捷键绑定
  • [ ] 测试流程
  • [x] ts or python?
  • [x] UnityPrefabAnalyse 缓存

Contributors

前任栽树,后人乘凉,感谢大家的贡献。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft