mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-10 15:14:32 +00:00
Auto merge of #16541 - Veykril:highlight-rustdoc, r=Veykril
Highlight rustdoc Updated version of https://github.com/rust-lang/rust-analyzer/pull/16340
This commit is contained in:
commit
35b0d66875
5 changed files with 243 additions and 0 deletions
|
@ -12,3 +12,6 @@
|
||||||
!ra_syntax_tree.tmGrammar.json
|
!ra_syntax_tree.tmGrammar.json
|
||||||
!server
|
!server
|
||||||
!README.md
|
!README.md
|
||||||
|
!language-configuration-rustdoc.json
|
||||||
|
!rustdoc-inject.json
|
||||||
|
!rustdoc.json
|
||||||
|
|
37
editors/code/language-configuration-rustdoc.json
Normal file
37
editors/code/language-configuration-rustdoc.json
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"comments": {
|
||||||
|
"blockComment": ["<!--", "-->"]
|
||||||
|
},
|
||||||
|
"brackets": [
|
||||||
|
["{", "}"],
|
||||||
|
["[", "]"],
|
||||||
|
["(", ")"]
|
||||||
|
],
|
||||||
|
"colorizedBracketPairs": [],
|
||||||
|
"autoClosingPairs": [
|
||||||
|
{ "open": "{", "close": "}" },
|
||||||
|
{ "open": "[", "close": "]" },
|
||||||
|
{ "open": "(", "close": ")" }
|
||||||
|
],
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1761,6 +1761,13 @@
|
||||||
"rs"
|
"rs"
|
||||||
],
|
],
|
||||||
"configuration": "language-configuration.json"
|
"configuration": "language-configuration.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "rustdoc",
|
||||||
|
"extensions": [
|
||||||
|
".rustdoc"
|
||||||
|
],
|
||||||
|
"configuration": "./language-configuration-rustdoc.json"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"grammars": [
|
"grammars": [
|
||||||
|
@ -1768,6 +1775,27 @@
|
||||||
"language": "ra_syntax_tree",
|
"language": "ra_syntax_tree",
|
||||||
"scopeName": "source.ra_syntax_tree",
|
"scopeName": "source.ra_syntax_tree",
|
||||||
"path": "ra_syntax_tree.tmGrammar.json"
|
"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": [
|
"problemMatchers": [
|
||||||
|
|
93
editors/code/rustdoc-inject.json
Normal file
93
editors/code/rustdoc-inject.json
Normal 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
82
editors/code/rustdoc.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue