WorkspaceEdit是VS Code API中的一种类型,用于对代码应用更改。它可以从Code Action或任何命令(使用applyEdit函数)中使用。
当前的实现对于应用本地或明显的代码转换效果很好。这通常发生在linters或机械代码转换建议的修复中。
随着IDE和相关工具变得更加先进,它们应该能够建议更复杂的代码转换。这些转换可能来自人类(例如在代码审查期间)或工具。在这种情况下,重要的是在应用更改之前让开发人员审查更改:
- 推荐的更改并不总是正确的,可能需要特别关注。
- 更改可能很复杂,会修改文件或多个文件中的许多位置。用户可能会接受建议更改的子集。
我们与谷歌的UX团队一起探索了解决方案,以改进当前的工作流程并赋予扩展开发人员更多权力。随着我们越来越多地使用机器学习,我们认为收集额外的数据(推荐的更改是否有用?)是很重要的。
我们的总结在这个演示文稿中:
当然,我们可以单独提出问题来讨论具体点,但我首先想分享整体情况。
cc @albertelo
6条答案
按热度按时间agxfikkp1#
将建议的解决方案粘贴到此问题中,而不是链接到幻灯片(这也很有帮助),只是想确保我们在这些资源不再存在时捕获这个if/when。
0sgqnhkj2#
以下是建议的更改列表:
Space
就可以快速启用/禁用我正在查看的更改)以及一个小的用户体验细节:更新
Discard
按钮的CSS,它不应该是一个主要操作。将Apply
重命名为Apply changes
(以清楚地表明它将应用所有选定的更改)。lg40wkob3#
我已经将幻灯片转换成了pdf格式。由于幻灯片中的一些图片是gif格式,所以看起来有些粗糙——我会单独上传这些图片。
qqrboqgw4#
@misolori 我实际上一直在探索这个想法,作为Code Actions小部件的一部分,以及当我添加重构预览( #151140 )时,尽管它只适用于从小部件中进行的重构和编辑选择。
目前,我只关注Code Actions,其中包括Quick Fixes、Source Actions和Refactorings(即
Extract to inner function with arrow
、Surround with Async
、Change spelling...
、Fix all detected spelling errors
、Add all missing imports
等)。当在选定的Code Action上点击Ctrl + Enter
时,它会打开批量编辑器重构预览窗格,但也考虑默认打开重构预览编辑器(差异视图)。(鼠标悬停时)
不确定这是否是你要寻找的一步,但可能是一个有趣的事情也要检查一下!
f0ofjuux5#
pinging the thread for updates or if there's something you need from our side that we might have missed in our first messages - thank you!
jtoj6r0c6#
添加@daviddossett和@misolori,我在一个月前提到了这个问题。