core icon indicating copy to clipboard operation
core copied to clipboard

feat: support terminal intelligence

Open life2015 opened this issue 11 months ago • 6 comments

终端的智能补全能力

终端的智能补全能力是指终端在输入命令时,能够根据用户的输入,自动提示可能的命令或参数,交互方式类似于编程时的语言服务。

此功能可以增加用户使用终端时的易用性。

image

功能建设

功能建设进度

  • [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

life2015 avatar Mar 11 '24 02:03 life2015