在vscode中工作时清理树的当子句?

When clause when working tree clean in vscode?

提问人:user956609 提问时间:11/7/2023 最后编辑:user956609 更新时间:11/15/2023 访问量:53

问:

我正在将 git.sync 快捷方式添加到我的 vscode 中enter image description here

如果我没有提交,它显示enter image description here

这意味着我需要在我的快捷方式绑定中添加一个适当的 when 子句:

{
    "key": "cmd+enter",
    "command": "git.sync"
    "when":""
  },

所以我需要添加一个 when 子句,它是什么?

我最终想要实现的是,我可以使用 cmd + enter 来提交和同步(推送到远程),因为源代码控制面板提交快捷键是 cmd+ enter,我想提交然后同步使用相同的键盘快捷键(而不是在终端中输入或单击鼠标)

enter image description here

visual-studio-code 键盘快捷键

评论

0赞 rioV8 11/7/2023
您可以将当前上下文转储到 Dev Tools 控制台,查看是否有适合您需求的上下文变量
0赞 user956609 11/8/2023
@rioV8 VM180:1 未捕获的 ReferenceError:上下文未在 <anonymous>:1:1 处定义 var 的名称是什么
0赞 rioV8 11/8/2023
找到 commit keybinding 的 commandId 和子句,然后为 with 命令创建一个具有相同并组合 commit commandId 和 sync comandId 的 keybindingwhenCmd+EnterCmd+EnterrunCommandswhen

答:

0赞 starball 11/8/2023 #1

据我所知,在撰写本文时(VS Code 1.85),没有这样的上下文键可用于执行此操作。为了证实:

  • 您可以在 https://code.visualstudio.com/api/references/when-clause-contexts 中查看可用上下文键的文档。在搜索“scm”或“git”时,我没有看到任何听起来有用的内容。

  • 在defaultKeybindings.json伪文件中打开正则表达式模式进行搜索,我也没有看到任何未记录的内容。"when":.*scm

  • 通过搜索 github.dev/microsoft/vscode,我也没有看到任何未记录的内容。在正则表达式模式下进行搜索,(createKey|createScoped|createOverlayy|setContext|removeContext|getContext|createChildContext).*?(git|scm)

    • 有一个上下文键,但在 extensions/git/src/api/git.d.ts 中为其类型定义列出的唯一值是 和 。git.stateAPIState'initialized''uninitialized'
    • 还有 和 上下文键,但我认为这些不足以获得您想要的内容。gitRebaseInProgressgitMergeInProgress
    • 还有 和 ,但这些仅适用于活动资源(单数),而不是整个存储库。scmActiveResourceHasChangesscmActiveResourceRepository
  • 看看现有的问题票,我没有看到有人已经要求这个:https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Acontext-keys

因此,我建议您提出一个功能请求问题票证,要求它。

评论

0赞 starball 11/15/2023
如果有人读到这篇文章,最终像我建议的那样提出了问题票证,请在此处发表评论并附上问题票证的链接,或者在问题票证中通知我,并附上“@starball5”和指向此 Stack Overflow 帖子的链接,以便我更新它。