【问题标题】:Syntax highlighting in Vscode for type hintsVscode 中的语法高亮显示类型提示
【发布时间】:2022-09-24 14:26:02
【问题描述】:

我使用的是 Dark++ 主题,但个性化了很多颜色。 一切正常,但有一件小事:只有基本类型被正确突出显示。 例如这个

\"editor.tokenColorCustomizations\": {
      \"comments\": \"#707070\",
      \"keywords\": \"#adc5ee\",
      \"types\": \"#bbbbbb\",
      \"strings\": \"#bdceb7\"
}

给我以下图片:

我希望函数声明中的类型提示为灰色+斜体,因为它对于类型 \"str\" 是正确的。我知道这对于 npt.NDArray 来说并不简单,因为它来自输入模块,但是为什么即使对于 \"list\" 和 \"dict\" 也不起作用? 你知道我可以使用的解决方法吗? 据我所知,这些类型没有特殊的标记,所以除了自定义通用标记“类型”之外,没有办法访问它们。 我尝试使用带有 \"Highlight\" 扩展名的正则表达式,但这不是最佳的,因为我还想保留这样的功能,即如果我注释掉部分文本,它应该是灰色的(使用 \"Highlight\"它没有)。

  • 我的 PyLance 告诉我引用类型提示:def myFunc(arg1: \'dict[str, float]\', arg2: \'list[dict[str,str]]\') -> None:,语义范围不同,所以使用语义颜色自定义
  • @rioV8 太好了!但是,您知道如何避免语义颜色自定义覆盖 workbench.colorCustomizations 吗?我希望后者优先
  • editorworkbench 自定义适用于编辑器的不同部分,在编辑器中您有 tokensemantic 自定义
  • 哎呀抱歉,我的意思是语义似乎覆盖了 editor.tokenColorCustomizations(我错误地写成了 \"workbench\")。无论如何,显然重置解决了它:) 再次感谢!

标签: python visual-studio-code themes syntax-highlighting


【解决方案1】:

为了结束这个主题并供将来参考,这就是我解决问题的方法:我最终按照 rioV8 的建议对类型提示使用语义突出显示。

这是通过将以下内容添加到我的 Vscode 设置 JSON 文件中来完成的:

    "editor.semanticTokenColorCustomizations": {
      "rules": {
        "*.typeHint": {
          "foreground": "#bbbbbb",
          "fontStyle": "italic"
        },
        "class.typeHint.builtin": {
          "foreground": "#bbbbbb",
          "fontStyle": "italic"
        }
      }
    }

【讨论】:

    【解决方案2】:

    我正在使用临时解决方案。

    这是一种创建无意义的 def _(): pass 的方法。

    def function() -> str:
       def _():
         pass
    
       return 'Hello World!'
    

    或者

    def function() -> str:
       # def _():
    
       return 'Hello World!'
    

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 2016-06-09
      • 1970-01-01
      • 2016-05-19
      • 2016-07-26
      • 2016-06-19
      相关资源
      最近更新 更多