【问题标题】:Can a VSCode language extension define specific syntax highlight colors separate from the theme system?VSCode 语言扩展可以定义与主题系统分开的特定语法突出显示颜色吗?
【发布时间】:2021-04-19 22:30:40
【问题描述】:

我正在为 vscode 创建一个语言扩展来描述一种语言,其中一些句法元素引用特定的颜色。无论使用什么主题,我都想用这些颜色为这些元素着色,并且不必要求用户选择我的特定自定义主题而不是他们自己对其他所有内容的偏好。有没有办法在现有的语言和主题定义系统中做到这一点?

我的后备解决方案类似于https://github.com/KamiKillertO/vscode-colorize/,它在语法系统之外运行以动态评估代码,然后对其应用装饰器,但这对于我可以定义文本以使用简单突出显示的需求来说太过分了匹配模式。

【问题讨论】:

  • 如果指定的颜色与主题背景颜色相似怎么办:文本“消失”
  • @rioV8 我会设置前景色和背景色,和主题背景色相匹配的就可以了。

标签: visual-studio-code syntax-highlighting vscode-extensions


【解决方案1】:

与您的其他问题类似,这是不可能的。着色是单一设置主题 + 任何用户自定义的组合。

我的语言扩展 (ANTLR) 有类似的需求,其中存在某些元素,这是其他语言所没有的。所以我需要对它们进行特殊的着色。但是,此类元素的识别是基于动态词法分析器,该词法分析器为该元素分配范围。并且只有那些为该范围定义颜色的主题才有效果。因此,唯一的解决方案是用户将您的特殊主题用于此类特殊元素,否则它们不会突出显示,而不是默认设置。

【讨论】:

  • 我可能最终会选择着色器路线,尽管这太过分了。
猜你喜欢
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 2018-08-23
  • 2015-03-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
  • 1970-01-01
相关资源
最近更新 更多