Skip to content

[工具][VSCode 扩展] AegiKit——方便 Aegisub 使用的工具箱

Published: at 22:33

这次来介绍的是我一周之前完工的 VSCode 扩展:AegiKit 的使用介绍。这里准备简单介绍一下这个扩展的功能和用法。

https://github.com/Yesterday17/AegiKit

功能列表

功能列表其实 Readme 里也有,但是鉴于不是所有人都会看这个,加之 Readme 里也说得比较简单,所以我在这里也列一下好了。

下面就从几个大类来简单说明一下好了。

ASS 基础高亮

这个其实没什么好说的,为 VSCode 增加了新的 tmLanguage 支持也是耗时最长的。在我目前的颜色主题下,显示效果是这样的:

字幕高亮预览
字幕高亮预览

卡拉 OK 模板行高亮

AegiKit 为这种高亮定义了一种全新的文件后缀:karatmpl,以方便实现更精准的功能对应。

样式

首先先来看一下效果吧:

模板高亮预览
模板高亮预览

默认情况下,karatmpl 文件会开启自动换行,以方便阅读。对于被感叹号(!)包裹的内联 Lua 代码,也会根据 Lua 的高亮进行代码高亮的显示。

内联变量补全($

对于内联变量,只要你输入 $ 字符,就会显示 kara-templater 可用的所有内联变量。其中部分变量有中文解释,便于书写代码。

内联补全
内联补全

内联变量在代码中也有自己的高亮,以表明其身份。

颜色预览

对于诸如 1c 等表示颜色的标签,AegiKit 基于 VSCode 实现了颜色预览与编辑的功能。如下图所示:

颜色预览
颜色预览

这张图中,我们可以通过这个小方格来实时查看当前对应的颜色。此外,还可以通过 VSCode 的颜色拾取器来主动选择颜色:

颜色拾取
颜色拾取

不过目前,颜色选择的功能还没有和透明度关联起来,因此选择透明度是没有用的。

卡拉 OK 代码行高亮

Lua 代码在卡拉 OK 自动化中起到了非常关键的作用。可惜的是,Aegisub 并没有对 Lua,即卡拉 OK 代码行的高亮支持。并且在 Aegisub 中书写 Lua 也不是那么流畅。于是我把代码行高亮的部分也加到了 VSCode 里。

虽然目前代码行并没有太多的补全,但之后是有可能会有的。毕竟代码行也许要很多补全的内容,包括 _Gmaxjj 之类的。

代码格式化

AegiKit 自带了 Lua 的代码格式整理器,可以将 Aegisub 中单行的 Lua 代码变成人能正常阅读的多行代码。

代码格式化的方式和其他语言没有区别,按照正常的 VSCode 操作方式进行就可以了。

代码压缩

和上面的步骤相反,当我们想要将代码复制到 ASS 中时,我们需要压缩代码。这时候就可以使用代码压缩功能了。只需要使用这个命令就行了:

它会将目前编辑器中的代码压缩。

我还在寻找其他不修改当前源码,但可以获取压缩后源码的方式,所以可能还会有变动(