From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- node_modules/prismjs/components/prism-rust.js | 68 +++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 node_modules/prismjs/components/prism-rust.js (limited to 'node_modules/prismjs/components/prism-rust.js') diff --git a/node_modules/prismjs/components/prism-rust.js b/node_modules/prismjs/components/prism-rust.js new file mode 100644 index 00000000..1a520c00 --- /dev/null +++ b/node_modules/prismjs/components/prism-rust.js @@ -0,0 +1,68 @@ +/* TODO + Add support for Markdown notation inside doc comments + Add support for nested block comments... + Match closure params even when not followed by dash or brace + Add better support for macro definition +*/ + +Prism.languages.rust = { + 'comment': [ + { + pattern: /(^|[^\\])\/\*[\s\S]*?\*\//, + lookbehind: true + }, + { + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: true + } + ], + 'string': [ + { + pattern: /b?r(#*)"(?:\\.|(?!"\1)[^\\\r\n])*"\1/, + greedy: true + }, + { + pattern: /b?"(?:\\.|[^\\\r\n"])*"/, + greedy: true + } + ], + 'char': { + pattern: /b?'(?:\\(?:x[0-7][\da-fA-F]|u{(?:[\da-fA-F]_*){1,6}|.)|[^\\\r\n\t'])'/, + alias: 'string' + }, + 'lifetime-annotation': { + pattern: /'[^\s>']+/, + alias: 'symbol' + }, + 'keyword': /\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/, + + 'attribute': { + pattern: /#!?\[.+?\]/, + greedy: true, + alias: 'attr-name' + }, + + 'function': [ + /\w+(?=\s*\()/, + // Macros can use parens or brackets + /\w+!(?=\s*\(|\[)/ + ], + 'macro-rules': { + pattern: /\w+!/, + alias: 'function' + }, + + // Hex, oct, bin, dec numbers with visual separators and type suffix + 'number': /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\b/, + + // Closure params should not be confused with bitwise OR | + 'closure-params': { + pattern: /\|[^|]*\|(?=\s*[{-])/, + inside: { + 'punctuation': /[|:,]/, + 'operator': /[&*]/ + } + }, + 'punctuation': /[{}[\];(),:]|\.+|->/, + 'operator': /[-+*\/%!^]=?|=[=>]?|@|&[&=]?|\|[|=]?|<>?=?/ +}; \ No newline at end of file -- cgit v1.2.3