3 个版本 (重大更改)
0.3.0 | 2023年10月25日 |
---|---|
0.2.1 |
|
0.2.0 | 2023年2月6日 |
0.1.0 | 2022年9月2日 |
#866 in 编码
64KB
1.5K SLoC
tekton
作者:Nicholas O'Kelley
开始日期:2022-08-28
动机
我需要一个工具来加速我在 friendly-snippet
项目上审查代码片段所花费的时间。
此类工具的目标是
- 快速排序大量文件
- (理想情况下)快速按字母顺序排序
- 在 Snipmate 和 friendly-snippets (json) 格式之间快速转换
安装和使用
对于已发布版本
cargoinstall tekton
对于源构建
从项目根目录
cargoinstall --path ./
使用方法
要转换:
tekton convert<INPUT_FILENAME> <OUTPUT_FILENAME>
注意
- 转换支持 Snipmate (
*.snippet
) 和 JSON (*.json
) 代码片段的双向转换- 映射基于输入文件
要排序:
- 通用格式:
tekton sort <INPUT_FILENAME> [INTERACTIVE] [CRAWL]
- 排序单个文件:
tekton sort <INPUT_NAME>
- 排序目录:
tekton sort <INPUT_NAME> no true
- 排序单个文件:
注意
INTERACTIVE
应该是字符串yes
,如果用户想在排序过程中修复任何错误。
- 取消勾选此选项将只会在屏幕上显示错误报告。
CRAWL
必须存在,以便递归遍历目录以获取代码片段。
- 任何存在的文本都会导致爬取,尽管
true
看起来更好。
演示
- 从 Snipmate 转换到
JSON
- 将 JSON 代码片段转换为 Snipmate
- 在不开启交互模式并开启目录爬取的情况下,对
friendly-snippets
进行排序,非常快速。
当前限制
-
转换不会像排序那样处理大量文件。这是故意的,因为格式之间的转换应该是隔离的,并且范围有限。
- 这可以通过其他脚本方式(Rust、Go、Python 等)自动化。
-
在
prefix
字段中有数组(即使只有一个)的代码片段文件会将文件中的所有代码片段转换,并将它们的代码片段也插入到数组中。- 注意:我正在编写一个自定义的
Serialize
和Deserialize
实现,以处理单个元素的序列化清理,尽管这将与未来的更新相关。
- 注意:我正在编写一个自定义的
-
目前不排序 Snipmate 代码片段。
- 这超出了范围,但可能是未来考虑的事情。
致谢
- 我手动完成此事的耐心
依赖项
~4–13MB
~146K SLoC