2 个版本
0.1.1 | 2023 年 8 月 6 日 |
---|---|
0.1.0 | 2023 年 8 月 5 日 |
#1948 在 命令行实用工具 中
1.5MB
1.5K SLoC
Senior
与其打扰一位高级工程师来对你的代码提出改进建议,不如 直接询问 Senior!
如何安装
需要
- openssl
- 一个 openAI API 令牌
- rust
cargo install senior
或 (尚未)
brew install senior
简介
Senior 使用 LLMs(目前仅限于 openAI 的)和一个高级源代码解析库,tree-sitter
,在你的终端中为你提供代码改进建议。
作为 CLI 的参数,你可以提供
- 文件的路径
- 文件的路径和函数名
- 文件的路径、类/结构体/父元素和函数名
作为回报,你将看到一个改进后的版本。如果你接受它,通过按 y,则原始文件将被建议的内容覆盖。
唯一的要求是,你必须有一个名为 OPENAI_API_KEY
的环境变量,其中包含你自己的令牌。
语言支持
语言 | 整个文件 | 函数 | 方法 | 限制 |
---|---|---|---|---|
Rust | X | X | X | |
Go | X | X | X | 未在泛型上测试。可能工作。 |
JavaScript | X | X | X | 不适用于对象字面量内的函数 也不适用于在类内部声明的匿名函数(你本就不应该这样做) |
TypeScript | X | X | X | 不适用于对象字面量内的函数 也不适用于在类内部声明的匿名函数(你本就不应该这样做) |
贡献
如果你希望改进对某种语言的支持,或者完全添加一种语言,不用担心,因为 senior
是以这种方式编写的,应该很容易做到。首先,将其分叉,然后在 supported_languages
下添加一种新的语言,并遵循其他语言所做的工作。
路线图
- 利用
tree-sitter
的功能创建代码上下文
。例如,如果需要优化类 X 的方法 A,且 A 内部有其他函数或方法调用,则提供类 X 以及 A 内部的所有函数作为上下文。 - Java 和 Python 支持
依赖项
~72MB
~1.5M SLoC