core
core copied to clipboard
feat: support terminal intelligence
终端的智能补全能力
终端的智能补全能力是指终端在输入命令时,能够根据用户的输入,自动提示可能的命令或参数,交互方式类似于编程时的语言服务。
此功能可以增加用户使用终端时的易用性。
功能建设
功能建设进度
- [x] 补全设计优化:目前的设计主要服务于功能验证,因此 UI 看起来很简陋,需要做后续的优化
- [ ] 补全交互方式优化:比如说 上下键选择,Tab 确认。或者 Tab 或者 上下键 选择,Enter 确认
- [x] Generator 补全支持。
- [x] 渲染方式优化,目前是直接渲染在 Xterm.js Decorations 上面的,考虑做一个全局 DOM,然后通过 DOM Align + Xterm.js Decoration 来做生命周期绑定和位置绑定
- [ ] 渲染体验进一步优化
- [x] 代码架构优化
- [x] 面向对象化,修改 runtime 和 Suggestion 核心逻辑
- [x] 抽象到 common,然后在 Node.js 层引入,实现部分逻辑覆写(这样方便后续的纯前端场景)
- [x] Node.js 层逻辑覆写
- [x] CodeStyle 处理,目前没有对从 inShellisense 项目的代码做处理,考虑到未来比较方便更新代码,不过这块要看看是不是要格式化一下代码什么的
- [x] 快捷的功能开启关闭 UI
Types
实验性支持了终端的智能补全,体验打磨中。
- [x] 🎉 New Features
Background or solution
目前 Warp, FIg 这类终端智能产品越来越多,相关的用户心智和社区基建也愈发成熟。 并且在前段时间我们完成了对 Xterm.js Decoration 相关技术的掌握,因此基于 Xterm.js Decoration 和 inShellisense 项目的 Runtime 做出了 OpenSumi 上终端智能的实现。
Changelog
- feat: (alpha) support terminal intelligence