【问题标题】:How to change diff color Visual Studio Code如何更改差异颜色 Visual Studio 代码
【发布时间】:2018-08-08 17:15:23
【问题描述】:

在 VSCode 的用户设置中,我可以将以下内容添加到用户设置中以更改插入/删除行的颜色:

"workbench.colorCustomizations": {
    "diffEditor.removedTextBackground": "#000000",
    "diffEditor.insertedTextBackground": "#ffffff"
}

但是,我想更改插入/更改行的突出显示部分的颜色,以显示实际更改的内容。以我目前的主题,对比不够:

如何更改差异文本的突出显示部分?有这个设置吗?

【问题讨论】:

  • 回答者注意:这是关于修改字符的背景颜色,而不是文本颜色或修改行的背景颜色。

标签: visual-studio-code themes vscode-settings


【解决方案1】:

差异编辑器当前的工作方式是它永远不会改变原始文本的颜色

它会创建一个覆盖背景,如下所示

https://github.com/Microsoft/vscode/blob/292732cd19cd4c6b0e11e779d14be480ff186ca8/src/vs/editor/browser/widget/diffReview.ts#L654

所以基本上文本会按原样呈现,并且叠加层给人的感觉是您拥有不同的背景。

这就是您无法控制文本颜色或设置前景色的原因。这是目前 VSCode/MonacoEditor 采用的方法的局限性

Update-1

因为您只需要更新背景。之前配置中的唯一问题是没有指定 Alpha 通道。你可以像下面这样更新它

"workbench.colorCustomizations": {
    "diffEditor.removedTextBackground": "#FF000055",
    "diffEditor.insertedTextBackground": "#ffff0055"
}

55 是 Alpha 通道值。更新后的值会有以下效果

2018 年 6 月 2 日至 5 日更新

您不能通过正常方式分别控制两条线颜色和字符颜色。但是你可以为 vscode 使用自定义 css 插件

https://github.com/be5invis/vscode-custom-css

【讨论】:

  • 我们想要改变高亮背景的颜色,而不是文本。您可以看到 1 和 0 上的背景比线的其余部分要浅得多。它是如此轻微,但几乎看不到。这就是我们想要解决的问题。
  • 您的屏幕截图实际上更清晰 - 我们要更改 char-delete 颜色。
  • 好吧,让我检查一下
  • 不幸的是,它仍然不允许您独立更改它们。 removedTextBackground 直接设置线条的颜色,然后字符似乎以某种无法控制的方式自动变暗。例如,看看你是否可以将线条背景设置为黑色,将字符设置为红色。
  • @Timmmm,我已经检查过了,它是不可配置的。您可以使用 github.com/be5invis/vscode-custom-css 之类的东西来更改 line-delete 类 css
【解决方案2】:

文本的颜色是原始文本颜色。这没有改变,也没有办法做到这一点。

但是,解决方案有望到来。 link

【讨论】:

  • 我们想要改变高亮背景的颜色,而不是文本。您可以看到10 的背景比该行的其余部分非常轻微浅。它是如此轻微,但几乎看不到。这就是我们想要解决的问题。
  • 哦,我明白了。差异线具有不同的背景颜色。
  • * 最佳实践是在网站上提供有用的信息,以防链接失效。