Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Syntax Visual Studio代码-语法高亮显示颜色的含义_Syntax_Visual Studio Code_Syntax Highlighting_Highlight - Fatal编程技术网

Syntax Visual Studio代码-语法高亮显示颜色的含义

Syntax Visual Studio代码-语法高亮显示颜色的含义,syntax,visual-studio-code,syntax-highlighting,highlight,Syntax,Visual Studio Code,Syntax Highlighting,Highlight,我正在寻找一个关于VisualStudio代码中每种语法高亮显示颜色的实际含义的参考。我目前使用的是黑暗默认主题黑暗+。我已经习惯于识别一些突出的颜色,我知道我所看到的要点,但我正在寻找每种颜色含义的更详细的参考。 我已经为此搜索了一段时间,但找不到任何参考指南或词汇表/索引,其中列出了颜色和含义。不确定这是否重要,但我只使用JavaScript编写。 先谢谢你 编辑:我已经包括了我所指的语法突出显示类型的屏幕截图 语法突出显示颜色的含义分为两部分: 文件中的字符如何组织为有意义的标记 如何为这

我正在寻找一个关于VisualStudio代码中每种语法高亮显示颜色的实际含义的参考。我目前使用的是黑暗默认主题黑暗+。我已经习惯于识别一些突出的颜色,我知道我所看到的要点,但我正在寻找每种颜色含义的更详细的参考。 我已经为此搜索了一段时间,但找不到任何参考指南或词汇表/索引,其中列出了颜色和含义。不确定这是否重要,但我只使用JavaScript编写。 先谢谢你


编辑:我已经包括了我所指的语法突出显示类型的屏幕截图


语法突出显示颜色的含义分为两部分:

  • 文件中的字符如何组织为有意义的标记
  • 如何为这些标记分配特定的颜色和字体样式
  • 将文本划分为标记 第一部分由VSCode中内置的语法描述确定。VSCode使用基于的系统。语法是在VSCode源代码(例如)中定义的,但这种形式的语法经过了几个后处理阶段,几乎无法读取。没有关于这些语法文件意图的文档。他们倾向于至少大致遵循相关的语言规范,但有很多特别的偏差

    理解定义了什么标记的最实用的方法是使用命令调色板中可用的“Developer:Inspect TM Scopes”工具(Ctrl+Shift+p)。当您将光标放在令牌上时,它将显示描述该令牌的“范围标签”。这些标签或多或少是人类可读的

    编辑2020-07-24:从VSCode 1.47开始(可能稍早一点),该命令称为“开发者:检查编辑器标记和范围”

    例如:

    在上面,我们可以看到
    return
    关键字最具体地分类为
    keyword.control.flow.js
    。它位于大括号括起来的代码块(
    meta.block.js
    )内、函数定义(
    meta.function.js
    )内、Javascript源代码(
    source.js
    )内

    这个范围标签序列是与VSCode中标记的“含义”最接近的

    为标记指定颜色 接下来是将范围标签序列映射到颜色和字体样式的过程。这是由主题完成的。在我的例子中,我使用的是Visual Studio Light,在中的VSCode源代码中定义。对于
    return
    关键字,这是适用的片段:

            {
                "scope": "keyword.control",
                "settings": {
                    "foreground": "#0000ff"
                }
            },
    
    这意味着,基本上,任何范围标签以“keyword.control”开头的东西都应该是蓝色的。但是其他的片段可能会覆盖这个片段;问题有些复杂。为什么是蓝色?这是一种随意的审美选择

    为什么
    函数
    NaN
    具有相同的颜色?语法为它们指定了不同的范围标签(
    storage.type.function.js
    constant.language.nan.js
    ),但恰好您使用的主题(深色+)为它们指定了相同的颜色(我的颜色也是一样)。我觉得这是一个奇怪的选择,但只能推测原因

    定制颜色
    您没有问,但一个明显的后续问题是如何定制这些颜色,例如提供
    函数
    NaN
    不同的颜色。请看。

    您能举个例子说明您看到的/让您困惑的颜色吗?你也在使用git吗?我提供了一个简单函数的屏幕截图来展示一些颜色。我还没有使用git,我可能应该早点说——如果你在VSC中的任何错误上徘徊,它通常会准确地告诉你它发现了什么错误。然后,您可以使用这些信息来解决问题。无论如何,我以后会仔细看看这个@AJC24我对这段代码没有任何错误,我对VSC中的函数有点熟悉,但谢谢!我要找的是代码中每种颜色所代表的内容的列表/词汇表。例如,“函数”为蓝色,“if/else”为粉色。任何地方都有描述颜色含义的列表吗?比如,为什么“函数”和“NaN”的颜色相同?