你正在寻找 4 种语言和语法贡献
关于问题:
有一种方法可以通过扩展来实现,而扩展实际上是唯一的方法。有一大堆功能可以让人们突出显示语法,它们是突出语法的不同方式,用于不同的事情。突出显示语法可能是一个相对简单的过程,但是,它也可能变得相当复杂。在 VSCode 中突出显示语法时,它们是您将仅使用 VSCode 贡献和 JSON 文件的区域,它们是您需要使用 VSCode 扩展 API 的区域,然后是 TextMate API 的区域开始融入 VSCode 扩展 API、VSCode 扩展清单和 VSCode JSON 主题文件。 TextMate 是事情变得更先进的地方。我将在下面进行更多解释,我还将在其中发布我刚才提到的几个主题的链接。
学习 VSCode 语法高亮肯定伴随着小的学习曲线。它不是一条可怕的曲线,但它是可以通知的,如果这有意义的话——当你学习它时,它也是非常有益的。
第 1 部分:Visual Studio Code 的扩展清单
Extension Manifest 基本上是 package.json 文件的 VSCode 版本,您可以将其视为“定义您的核心结构延期”。扩展清单不是一个糟糕的演出。如果您正在做一些简单的事情,就像您要求的那样,您只需将您正在做的简单事情添加到您的 contributes 对象中,而无需实现整个扩展框架或多个扩展您并不真正需要的 API。
这是一个 VSCode 主题的扩展清单示例。
// package.json
// An actual Extension Manifest for a theme I am working on
{
"name": "Extension Name",
"description": "This is a theme blah blah blah",
"version": "1.2.3",
"repository": {
"type": "git",
"url": "git+https://github.com/W3Dojo/Uchigatana.git"
},
"engines": {
"vscode": "^1.57.0"
},
"categories": [
"Themes"
],
"contributes": {
"themes": [
{
"label": "Uchigatana",
"uiTheme": "vs-dark",
"path": "./themes/Uchigatana.json"
},
{
"label": "Tachi",
"uiTheme": "hc-black",
"path": "./themes/Tachi.json"
},
]
},
"devDependencies": {
"prettier": "2.3.1"
}
}
作者注:
“以上是我刚刚打开的主题的实际扩展清单。我发现现实生活中的示例比从其他来源复制和粘贴代码更好。”
您看到 "contributes":{ ect... }" 属性对象了吗?嗯,这个属性是每个扩展的核心,你所做的任何语法高亮都将在这里以一种或另一种形式定义。
因此,您将在此处进一步了解语法高亮:
SYNTAX HIGHLIGHTING (Official VSCode Website)
CONTRIBUTES OBJECT (Official VSCode Website)
EXTENSION MANIFEST (Official VSCode Website)
TextMate GRAMMARS (TextMate Official Website)
最后,您需要了解 3 个不同的主题,这些主题将帮助您实现目标:
- TextMate 语法贡献:“语法链接在上面”
-
Language Definitions:“这是一个链接到投稿页面上的锚点,但这可能对你有用”。
-
TextMate Tokens & Scopes:“这是指向与语法高亮链接位于同一页面上的锚点的链接,但这是您想要阅读的主题。”
祝你好运