vscode 改进应用/预览修复的工作流程

pb3s4cty  于 5个月前  发布在  Vscode
关注(0)|答案(6)|浏览(71)

WorkspaceEdit是VS Code API中的一种类型,用于对代码应用更改。它可以从Code Action或任何命令(使用applyEdit函数)中使用。
当前的实现对于应用本地或明显的代码转换效果很好。这通常发生在linters或机械代码转换建议的修复中。
随着IDE和相关工具变得更加先进,它们应该能够建议更复杂的代码转换。这些转换可能来自人类(例如在代码审查期间)或工具。在这种情况下,重要的是在应用更改之前让开发人员审查更改:

  • 推荐的更改并不总是正确的,可能需要特别关注。
  • 更改可能很复杂,会修改文件或多个文件中的许多位置。用户可能会接受建议更改的子集。

我们与谷歌的UX团队一起探索了解决方案,以改进当前的工作流程并赋予扩展开发人员更多权力。随着我们越来越多地使用机器学习,我们认为收集额外的数据(推荐的更改是否有用?)是很重要的。
我们的总结在这个演示文稿中:

Apply fixes proposal

当然,我们可以单独提出问题来讨论具体点,但我首先想分享整体情况。
cc @albertelo

agxfikkp

agxfikkp1#

将建议的解决方案粘贴到此问题中,而不是链接到幻灯片(这也很有帮助),只是想确保我们在这些资源不再存在时捕获这个if/when。

0sgqnhkj

0sgqnhkj2#

以下是建议的更改列表:

  1. 在打开重构预览时打开差异视图(默认情况下,用户体验令人困惑)
  2. 我们需要一种方法让用户默认看到重构中的所有更改,而无需手动逐个选择。不幸的是,我认为我们需要一个新的API来实现这一点(如果我们想保持向后兼容性)。
  3. 当有多种类型的更改时,在类型描述前放置一个复选框(以便轻松启用/禁用相应的一组更改)
  4. 有一种方法可以表示某些类型的更改是互斥的(例如,工具为同一个问题提供了两个解决方案,用户只能选择一个)
  5. 在导航更改时,面板应获得焦点(这样 Space 就可以快速启用/禁用我正在查看的更改)
  6. 为用户提供对重构的反馈方式(例如,点赞/点踩)。这可能过于具体;更好的解决方案可能是让扩展开发人员注册他们自己的自定义操作。
    以及一个小的用户体验细节:更新 Discard 按钮的CSS,它不应该是一个主要操作。将 Apply 重命名为 Apply changes (以清楚地表明它将应用所有选定的更改)。
lg40wkob

lg40wkob3#

我已经将幻灯片转换成了pdf格式。由于幻灯片中的一些图片是gif格式,所以看起来有些粗糙——我会单独上传这些图片。

qqrboqgw

qqrboqgw4#

@misolori 我实际上一直在探索这个想法,作为Code Actions小部件的一部分,以及当我添加重构预览( #151140 )时,尽管它只适用于从小部件中进行的重构和编辑选择。
目前,我只关注Code Actions,其中包括Quick Fixes、Source Actions和Refactorings(即Extract to inner function with arrowSurround with AsyncChange spelling...Fix all detected spelling errorsAdd all missing imports等)。当在选定的Code Action上点击Ctrl + Enter时,它会打开批量编辑器重构预览窗格,但也考虑默认打开重构预览编辑器(差异视图)。

(鼠标悬停时)
不确定这是否是你要寻找的一步,但可能是一个有趣的事情也要检查一下!

f0ofjuux

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!

jtoj6r0c

jtoj6r0c6#

添加@daviddossett和@misolori,我在一个月前提到了这个问题。

相关问题