Skip to content

Latest commit

 

History

History
45 lines (41 loc) · 2.33 KB

.tmlanguage.md

File metadata and controls

45 lines (41 loc) · 2.33 KB
{
	"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
	// 用于指定和描述VSC语法文件的结构和正确性

	"name": "LiteyukiFunction",
	// 定义这个自定义语言的名称

	"patterns": [
		// 一个数组, 包含了用于匹配文本中不同模式的规则, 这些模式将被应用于整个文件, 以提供语法高亮
		// patterns数组中的每个对象都定义了一个匹配规则:

		{
			"include": "#keywords" // "include": "#keywords": 这个规则引用了repository中定义的keywords模式, 这意味着任何匹配keywords模式的文本都将应用该模式定义的高亮
		},
		{
			"include": "#strings" // "include": "#strings": 这个规则引用了repository中定义的strings模式, 这意味着任何匹配strings模式的文本都将应用该模式定义的高亮
		}
	],
	"repository": {
		// 一个对象, 包含了可重用的模式定义, 可以在patterns中通过"include"属性引用
		// repository对象包含了两个可重用的模式定义:

		"keywords": { // "keywords": 定义了一组关键字的模式, 这个模式包含一个数组, 数组中的每个对象都是一个匹配规则
			"patterns": [{
				"name": "keyword.control.lyf", // "name": "keyword.control.lyf": 定义了匹配到的关键字的作用域名称, 用于高亮显示
				"match": "\\b(if|while|for|return)\\b" //"match": "\\b(if|while|for|return)\\b": 正则表达式, 用于匹配if、while、for、return这些关键字, \\b是单词边界, 确保只匹配完整的单词
			}]
		},
		"strings": { // "strings": 定义了字符串的模式, 这个模式包括:
			"name": "string.quoted.double.lyf", // "name": "string.quoted.double.lyf": 定义了匹配到的字符串的作用域名称, 用于高亮显示
			"begin": "\"", // "begin": "\""
			"end": "\"", // "end": "\"": 定义了字符串的开始和结束界定符, 这里是双引号
			"patterns": [ // "patterns": 这是一个数组, 包含了字符串内部的模式:
				{
					"name": "constant.character.escape.lyf", // "name": "constant.character.escape.lyf": 定义了转义字符的作用域名称, 用于高亮显示
					"match": "\\\\." // "match": "\\\\.": 正则表达式, 用于匹配字符串中的转义字符, 如 \" 或 \n
				}
			]
		}
	},
	"scopeName": "source.lyf"
	// 定义了语言的作用域名称
}