我想为JSONL数据格式获得语法高亮支持 - "JSON-Lines" - 因为该格式目前在'V.S. Code'中尚未得到支持。
The JSONL website建议我搜索添加JSON Lines支持的扩展,但是,我尝试查找此类扩展的所有尝试都没有返回任何有用的结果。
我还在Visual Studio Marketplace上搜索了“JSON Lines”和“.jsonl
”,但是搜索仍然没有返回任何有用的结果。
现在我想知道是否可能添加对该数据格式的支持?
我想为JSONL数据格式获得语法高亮支持 - "JSON-Lines" - 因为该格式目前在'V.S. Code'中尚未得到支持。
The JSONL website建议我搜索添加JSON Lines支持的扩展,但是,我尝试查找此类扩展的所有尝试都没有返回任何有用的结果。
我还在Visual Studio Marketplace上搜索了“JSON Lines”和“.jsonl
”,但是搜索仍然没有返回任何有用的结果。
现在我想知道是否可能添加对该数据格式的支持?
2022年更新:
这里提到的其他两个建议是有效的,它们可以作为可能的解决方案,然而,截至2022年,V.S. Code已经新增了一个功能,允许用户将语法注入到另一个语法中。
通常情况下,想要在V.S. Code中创建语言风格扩展(添加语法高亮或其他语言特性的扩展)的人会找到VS Code生态系统中已经存在的基础语法。最理想的语法是已经内置在编辑器中的语法。扩展开发者随后会将较小的语法注入到预先存在的语法中。因为当代开发人员使用的许多数据类型、语言、API、SDK、RTE等只是子集(或扩展,如果您愿意),所以将语法注入到语法中使得快速、简单地支持许多功能的语法高亮成为可能。
就像OP的情况一样,他正在寻找JSON-Lines,因此他将使用内置的JSON语法,并在已经存在的JSON语法之上注入额外的语法高亮。
这通常是整个过程的工作方式,但通常需要手动复制、粘贴,然后维护JSON语法。听起来很简单,但与创建和维护实际上只是一个片段(注入的语法)相比,这已经为您完成了一个巨大的步骤。 要注入语法,请访问此链接">在回答另一个有关“V.S. Code中的语言支持”的问题时,我想起了来自这个“问与答”(Q&A)的问题,并且意识到可能有一个解决方案。如果作者还没有找到解决方案,那么我建议他们尝试一下这个方法,如果其他人偶然遇到这个问题并想要添加不受支持的语言支持。
首先,如果您要添加的语言和/或文件类型是完全独特的,则此解决方案将无法使用。此外,即使您能够获得支持,也可能不是完整的支持,或者可能存在其他问题。让我举个例子,以帮助您充分理解我所说的内容。
To start, let me show you the syntax for the solution. This is a setting used in V.S. Code's
settings.json
file — it can be placed in either the user's, or the workspace's implementation of thesettings.json
file.
// "./.vscode/settings.json" "files.associations": { "json": "jsonc" },
"Hypothetically, lets say V.S. Code does not support the
JSONC
file type — 'JSON with Comments'. If the previous statement were true, which it isn't, but if it were, then this solution would work, however, if you have JSONC files already filled with data, then you will likely get errors, as the JSONC file type is used to implement comments in a JSON file, however, V.S. Code's JSON language does not support comments, and the editor will display errors for every comment that there is in a JSONC document, because when you configure your editor this way, V.S. code treats JSONC files as JSON files."
"There are other instances where using this configuration works better. Since we already used
JSONC
as an example, I'll give you a real world example, where the File-Associations Setting is used to support comments in.json
(JSON) files — remember, the above was a hypothetical example, this one is an actual example practiced by developers.""Adding comments to JSON file is simple, and quick, using the File Association Setting, simple invert the configuration from the code block above, so that the settings configuration looks like the example below. If you type the configuration into your
.vscode/settings.json
file, you will find that V.S. Code won't complain when you add a comment to a JSON file anymore.
// "./.vscode/settings.json"
"files.associations": {
"jsonc": "json"
},
file.associations
)设置。尝试很容易,并且比为整个编程语言或数据文件类型添加V.S. Code支持要快得多,工作量也少得多。
顺便提一下,VSCode会尽力自动添加支持,并检测文件格式以及可用的数据格式/编程语言语法,但有时需要一些帮助。正如我已经说过的那样,有时候文件格式可以工作,但是支持可能有限,当支持有限时,您总是需要告诉VSCode哪些文件类型可以工作。
JSONL
的解决方案JSONL
文件的支持。像您一样,我也找不到添加对JSON
Lines或JSONL
文件语言支持的扩展程序。唯一的方法是在VSCode中添加支持。VSCode为用户提供了定义语言所需的工具。他们提供的工具与MS VSCode开发团队用于定义语言的工具相同,换句话说,它们是好的工具,您可以使用它们做出很酷的东西。如果这是整个语言,那么可能不值得考虑,但实际上只是对现有数据类型的几个小修改。最难的部分将是阅读VSCode文档以了解如何在扩展清单中使用Contributes属性,这只是一个炫耀的package.json
文件。你唯一的选择是给负责 JSON Lines 的人发邮件,询问他们建议使用哪个编辑器,或者询问他们是否计划在将来支持VSCode。
---
不同,JSONlines 使用 \n
分隔文档。但是,您还需要更新允许在其他任何位置使用换行符的任何解析规则。- 如上所述,几个小时可能就足够了。 - E. KörnerJSON Lines
语言定义。有一个新的jsonl
语言标识符,下面的示例使用.jsonl
扩展名,JSON Lines
语言标识符会自动选择。然而,您可以通过 "editor.tokenColorCustomizations"
设置来检查这些 JSON 行令牌的范围并自行更改颜色,如下所示:
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "string.quoted.double.json.lines", // values
"settings": {
"foreground": "#7300ff",
"fontStyle": "bold"
}
},
{
"scope": "support.type.property-name.json.lines", // keys/property names
"settings": {
"foreground": "#FF0000",
"fontStyle": "bold"
}
}
]
},
还有更多的范围可以研究。以下是这些令牌颜色变化的样子: