highlight rustdoc

This commit is contained in:
YouWei Zhao 2024-01-10 21:55:41 +08:00
parent 1c9bb31970
commit 0380d982f9
4 changed files with 257 additions and 0 deletions

View File

@ -0,0 +1,54 @@
{
"comments": {
"blockComment": [
"<!--",
"-->"
]
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"colorizedBracketPairs": [
],
"autoClosingPairs": [
{
"open": "{",
"close": "}"
},
{
"open": "[",
"close": "]"
},
{
"open": "(",
"close": ")"
},
{
"open": "<",
"close": ">",
"notIn": [
"string"
]
}
],
"surroundingPairs": [
["(", ")"],
["[", "]"],
["`", "`"],
["_", "_"],
["*", "*"],
["{", "}"],
["'", "'"],
["\"", "\""]
],
"folding": {
"offSide": true,
"markers": {
"start": "^\\s*<!--\\s*#?region\\b.*-->",
"end": "^\\s*<!--\\s*#?endregion\\b.*-->"
}
},
"wordPattern": { "pattern": "(\\p{Alphabetic}|\\p{Number}|\\p{Nonspacing_Mark})(((\\p{Alphabetic}|\\p{Number}|\\p{Nonspacing_Mark})|[_])?(\\p{Alphabetic}|\\p{Number}|\\p{Nonspacing_Mark}))*", "flags": "ug" },
}

View File

@ -1729,6 +1729,13 @@
"rs"
],
"configuration": "language-configuration.json"
},
{
"id": "rustdoc",
"extensions": [
".rustdoc"
],
"configuration": "./language-configuration-rustdoc.json"
}
],
"grammars": [
@ -1736,6 +1743,27 @@
"language": "ra_syntax_tree",
"scopeName": "source.ra_syntax_tree",
"path": "ra_syntax_tree.tmGrammar.json"
},
{
"language": "rustdoc",
"scopeName": "text.html.markdown.rustdoc",
"path": "rustdoc.json",
"embeddedLanguages": {
"meta.embedded.block.html": "html",
"meta.embedded.block.markdown": "markdown",
"meta.embedded.block.rust": "rust"
}
},
{
"injectTo": [
"source.rust"
],
"scopeName": "comment.markdown-cell-inject.rustdoc",
"path": "rustdoc-inject.json",
"embeddedLanguages": {
"meta.embedded.block.rustdoc": "rustdoc",
"meta.embedded.block.rust": "rust"
}
}
],
"problemMatchers": [

View File

@ -0,0 +1,93 @@
{
"injectionSelector": "L:source.rust -string -comment -meta.embedded.block.rustdoc.md",
"patterns": [
{
"include": "#triple-slash"
},
{
"include": "#double-slash-exclamation"
},
{
"include": "#slash-start-exclamation"
},
{
"include": "#slash-double-start"
}
],
"repository": {
"triple-slash": {
"begin": "(^|\\G)\\s*(///) ?",
"captures": {
"2": {
"name": "comment.line.double-slash.rust"
}
},
"name": "comment.quote_code.triple-slash.rust",
"contentName": "meta.embedded.block.rustdoc",
"patterns": [
{
"include": "text.html.markdown.rustdoc"
}
],
"while": "(^|\\G)\\s*(///) ?"
},
"double-slash-exclamation": {
"begin": "(^|\\G)\\s*(//!) ?",
"captures": {
"2": {
"name": "comment.line.double-slash.rust"
}
},
"name": "comment.quote_code.double-slash-exclamation.rust",
"contentName": "meta.embedded.block.rustdoc",
"patterns": [
{
"include": "text.html.markdown.rustdoc"
}
],
"while": "(^|\\G)\\s*(//!) ?"
},
"slash-start-exclamation": {
"begin": "(^)(/\\*!) ?$",
"captures": {
"2": {
"name": "comment.block.rust"
}
},
"name": "comment.quote_code.slash-start-exclamation.rust",
"contentName": "meta.embedded.block.rustdoc",
"patterns": [
{
"include": "text.html.markdown.rustdoc"
}
],
"end": "( ?)(\\*/)"
},
"slash-double-start": {
"name": "comment.quote_code.slash-double-start-quote-star.rust",
"begin": "(?:^)\\s*/\\*\\* ?$",
"end": "\\*/",
"patterns": [
{
"include": "#quote-star"
}
]
},
"quote-star": {
"begin": "(^|\\G)\\s*(\\*(?!/)) ?",
"captures": {
"2": {
"name": "comment.punctuation.definition.quote_code.slash-star.MR"
}
},
"contentName": "meta.embedded.block.rustdoc",
"patterns": [
{
"include": "text.html.markdown.rustdoc"
}
],
"while": "(^|\\G)\\s*(\\*(?!/)) ?"
}
},
"scopeName": "comment.markdown-cell-inject.rustdoc"
}

82
editors/code/rustdoc.json Normal file
View File

@ -0,0 +1,82 @@
{
"name": "rustdoc",
"patterns": [
{
"include": "#fenced_code_block"
},
{
"include": "#markdown"
}
],
"scopeName": "text.html.markdown.rustdoc",
"repository": {
"markdown":{
"patterns": [
{
"include": "text.html.markdown"
}
]
},
"fenced_code_block":{
"patterns": [
{
"include": "#fenced_code_block_rust"
},
{
"include": "#fenced_code_block_unknown"
}
]
},
"fenced_code_block_rust": {
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|not run|not_run)?((\\s+|:|,|\\{|\\?)[^`~]*)?$)",
"name": "markup.fenced_code.block.markdown",
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
"beginCaptures": {
"3": {
"name": "punctuation.definition.markdown"
},
"4": {
"name": "fenced_code.block.language.markdown"
},
"5": {
"name": "fenced_code.block.language.attributes.markdown"
}
},
"endCaptures": {
"3": {
"name": "punctuation.definition.markdown"
}
},
"patterns": [
{
"begin": "(^|\\G)(\\s*)(.*)",
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
"contentName": "meta.embedded.block.rust",
"patterns": [
{
"include": "source.rust"
}
]
}
]
},
"fenced_code_block_unknown": {
"begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`~]+)?$)",
"beginCaptures": {
"3": {
"name": "punctuation.definition.markdown"
},
"4": {
"name": "fenced_code.block.language"
}
},
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
"endCaptures": {
"3": {
"name": "punctuation.definition.markdown"
}
},
"name": "markup.fenced_code.block.markdown"
}
}
}