Chu*_*uck 7 json comments visual-studio-code
我正在处理一个正在进行的项目,并且在文件中做笔记以解释现有代码的用途。我注意到的一件事是 VS Code 允许(甚至附带)对.vscode
文件夹内的 JSON 文件进行注释。这里是.vscode/extensions.json
.
但是,如果我尝试在其他地方的 JSON 文件中添加注释,我会被告知不允许添加注释。
我知道如何使用自定义设置解决此问题,但这基本上是 Microsoft 违反规则并允许在 JSON 中读取注释,即使 JSON 不允许注释,但在不允许的文件中强制执行注释禁令要去读什么?
而且,虽然微软可能允许他们正在阅读的 JSON 中的注释,但任何阅读其他 JSON 配置文件的人可能不会,我想我应该远离它们之外的.vscode
?
JΛY*_*ÐΞV 10
\n
\xc2\xa0 \xc2\xa0 \xc2\xa0 JSON 文件中的注释支持并不取决于文件位置或路径名语义,而是取决于正在解析的解析器(更多有关解析器的信息)。\ JSON 中的支持注释远非 VSCode 所独有,当然也不是 VSCode 目录所独有./.vscode/
。JSON 中的注释支持是 VSCode 中包含的一项功能,无需第 3 方软件、扩展或任何其他形式的可扩展软件即可使用。我经常在 my 中写评论eslintrc.json
,无需任何非默认配置即可支持。另一个支持注释的 JSON 文件,当我在 VSCode 的主题 JSON 文件中工作时,我会利用它,这是 VS-Code 扩展和主题使用的文件,位于 (< ".../user/vscode/extensions/<some-theme-name>/themes/<some-theme-name>.json"
-- 请记住当您阅读路径名表明我是 Linux 人员)。
.prettierrc
、.babelrc
、 和许多其他方法一起执行此操作。通过支持.(*.)rc
JSON 形式的 Dot-config 文件,可以将它们格式化为 JSON。由于 JSON 是开放标准,因此基于文本的语法有许多不同的实现。有些完全符合ECMA-404标准化,其他则仅部分符合,但是,ECMA JSON 标准的部分表示在开发社区中通常仍被称为 JSON。某些项目和/或公司不完全符合 JSON 标准的主要原因是向语法添加功能或语义。
\n如果 JSON 不是开放标准,那么 VS-code 可能不会在法律上被允许创建 JSON 的自定义表示。只是因为 JSON 是 ECMA 标准,VSCode 才能够做到这一点。这就是为什么 JSON、ECMA 和 VSCode 如此出色,它们使用所有人都可以使用的工具和资源。
\n通常,当功能添加到 JSON 表示形式时,该表示形式将采用唯一的名称,该名称几乎始终与其文件扩展名相同(也是新的且唯一的)。现实世界的例子有(JSONC 和 JSON5)。添加新扩展的原因源于需要有不止一种类型的 JSON 解析器来处理 JSON 文件。VSCode 需要能够解析标准 JSON,并且如您所知,它解析 JSONC(带注释的 JSON),因此编辑器必须实现以下 2 个解析器:
\n\n\n\xc2\xa0 \xc2\xa0第一个解析器JSON是标准化 JSON 解析器,100% 符合 ECMA-404(2017) 文档实现的标准化。JSON 解析器解析 VSCode 中以
\n.json
文件扩展名结尾的所有文件(除非编辑器配置指示不要这样做)。该解析器在尝试解析注释时会抛出错误。
\xc2\xa0 \xc2\xa0 \xc2\xa0 第二个解析器是JSONC(带注释的 JSON)。它负责解析所有使用该.jsonc
文件扩展名的文件。这被认为是不符合标准的 JSON(处理器/解析器)解析器,但是,该解析器确实支持注释。
JSON
解析器将 JSON 解析为 JSONC // FILE: "./.vscode/settings.json"\n \n // Example A\n "files.associations": {\n "*.json": "jsonc"\n },\n\n // Example B\n "files.associations": {\n "file-name-here.json": "jsonc" \n }\n\n
Run Code Online (Sandbox Code Playgroud)\n上面的示例演示了在我看来,在与 VSCode 一起使用的 JSON 文件中添加注释支持的最佳方法。
\n示例 A,将 JSON 文件声明为与 JSONC 文件类型关联。这告诉 VS-Code 使用 JSONC 解析器来解析 JSON 文件。
\n示例 B将特定文件声明为与 JSONC 文件类型关联。就像示例 A 中一样,VS-Code 现在知道使用 JSONC 解析器解析该文件。
\n"files.associations": {...}
这些图像演示了在前后图像对中的使用。"files.associations": {...}
.json
但实现标准 JSON 语法的文件。“files.associations”的大多数用例都是针对非 JSON 的东西。对于任何勤奋使用 VS-Code 的人来说,它都是一个非常好的工具。JSON 并不总是缺乏对注释的支持。在 JSON 的初始定义标准化后,注释支持已从 JSON 中删除。删除它们的原因来自 Douglas Crockford \xe2\x80\x94,他被誉为 JSON 的成功 \xe2\x80\x94,他被引用说,是从 JSON 中删除注释的原因,如下所示
\n\n\n\xc2\xa0 \xc2\xa0 我从 JSON 中删除了注释,因为我看到人们使用它们来保存解析指令,这种做法会破坏互操作性。
\n
换句话说,人们正在指示解析器解析他们的 JSON。这使得包含指令的文件无法在使用不同平台的另一个系统中操作。
\n上面的观点非常好,应该指出的是,评论也提出了类似的问题。如果您支持 JSON 中的注释,并尝试在其他环境(例如不同的编辑器)中使用该 JSON 文件,则必须确保该编辑器也支持注释。这对您来说很简单,因为您记得文件中的内容,或者无论如何都记得其中的很大一部分。但是,当您将 JSON 文件传递给试图在不打开它的情况下解析它的人时,他们可能会收到错误,并且不知道原因。因此,我们需要小心添加注释支持的 JSON 文件。
\n 归档时间: |
|
查看次数: |
4891 次 |
最近记录: |