Highlight doc tests in rust

Feels a big laggy when system overloaded
This commit is contained in:
Ivan Tham 2020-05-30 19:34:59 +08:00
parent 479790633b
commit 4ccb5fd315
5 changed files with 127 additions and 3 deletions

View File

@ -34,9 +34,34 @@ add-highlighter shared/rust regions
add-highlighter shared/rust/code default-region group add-highlighter shared/rust/code default-region group
add-highlighter shared/rust/string region %{(?<!')"} (?<!\\)(\\\\)*" fill string add-highlighter shared/rust/string region %{(?<!')"} (?<!\\)(\\\\)*" fill string
add-highlighter shared/rust/raw_string region -match-capture %{(?<!')r(#*)"} %{"(#*)} fill string add-highlighter shared/rust/raw_string region -match-capture %{(?<!')r(#*)"} %{"(#*)} fill string
add-highlighter shared/rust/comment region -recurse "/\*" "/\*" "\*/" fill comment
add-highlighter shared/rust/documentation region "//[!/]" "$" fill documentation add-highlighter shared/rust/line_doctest region ^\h*//[!/]\h*```($|should_panic|no_run|ignore|allow_fail|rust|test_harness|compile_fail|E\d{4}|edition201[58]) ^\h*//[!/]\h*```$ regions
add-highlighter shared/rust/line_comment region "//" "$" fill comment add-highlighter shared/rust/line_doctest/marker region ```.* $ group
add-highlighter shared/rust/line_doctest/marker/fence regex ``` 0:meta
add-highlighter shared/rust/line_doctest/marker/keywords regex [\d\w] 0:meta # already matched above, just ignore comma
add-highlighter shared/rust/line_doctest/inner region '^\h*//[!/]\h+#' ' ' group
add-highlighter shared/rust/line_doctest/inner/comment regex //[!/] 0:documentation
add-highlighter shared/rust/line_doctest/inner/hidden regex '#' 0:meta
add-highlighter shared/rust/line_doctest/comment region ^\h*//[!/] ' ' fill documentation
add-highlighter shared/rust/line_doctest/code default-region ref rust
add-highlighter shared/rust/line_code_rest region ^\h*//[!/]\h*``` ^\h*//[!/]\h*```$ fill documentation # reset invalid doctest
add-highlighter shared/rust/line_comment2 region //[!/]{2} $ fill comment
add-highlighter shared/rust/line_doc region //[!/] $ fill documentation
add-highlighter shared/rust/line_comment1 region // $ fill comment
add-highlighter shared/rust/block_comment2 region -recurse /\*\*\* /\*\*\* \*/ fill comment
add-highlighter shared/rust/block_doc region -recurse /\*\* /\*\* \*/ regions
add-highlighter shared/rust/block_doc/doctest region ```($|should_panic|no_run|ignore|allow_fail|rust|test_harness|compile_fail|E\d{4}|edition201[58]) ```$ regions
add-highlighter shared/rust/block_doc/doctest/marker region ```.* $ group
add-highlighter shared/rust/block_doc/doctest/marker/fence regex ``` 0:meta
add-highlighter shared/rust/block_doc/doctest/marker/keywords regex [\d\w] 0:meta # already matched above, just ignore comma
add-highlighter shared/rust/block_doc/doctest/inner default-region group
add-highlighter shared/rust/block_doc/doctest/inner/hidden regex '^\h*\**\h*#' 0:meta
add-highlighter shared/rust/block_doc/doctest/inner/comment regex ^\h*\* 0:documentation
add-highlighter shared/rust/block_doc/doctest/inner/code ref rust
add-highlighter shared/rust/block_doc/code_rest region ``` ``` fill documentation
add-highlighter shared/rust/block_doc/doc default-region fill documentation
add-highlighter shared/rust/block_comment1 region -recurse /\* /\* \*/ fill comment
add-highlighter shared/rust/macro_attributes region -recurse "\[" "#!?\[" "\]" regions add-highlighter shared/rust/macro_attributes region -recurse "\[" "#!?\[" "\]" regions
add-highlighter shared/rust/macro_attributes/ default-region fill meta add-highlighter shared/rust/macro_attributes/ default-region fill meta

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,88 @@
//! # Hello World
//!
//! ```shell
//! $ cargo install
//! ```
//!
//! ```
//! # use foo;
//! foo::bar("Hello world");
//! ```
//!! ```
//!! foo::bar("Hello world");
//!! ```
//// ```
//// foo::bar("Hello world");
//// ```
// ```
// foo::bar("Hello world");
// ```
// make sure the color does not break
/// ```
/// # use foo;
/// foo::bar("Hello world");
/// ```
fn bar(s: &str) {
println!("{}", s);
}
/// ```shell
/// $ cargo install
/// ```
///
/// ```edition2018,no_run
/// # use foo;
/// foo::bar("Hello world");
/// ```
///
/// ```
/// # use foo;
/// foo::bar("Hello world");
/// ```
//!! ```
//!! foo::bar("Hello world");
//!! ```
//// ```
//// foo::bar("Hello world");
//// ```
// ```
// foo::bar("Hello world");
// ```
/**
* ```shell
* $ cargo install
* ```
*
* ```edition2018,no_run
* # use foo;
* foo::bar("Hello world");
* ```
*/
/**
```
# use foo;
foo::bar("Hello world");
```
*/
/***
* ```
* foo::bar("Hello world");
* ```
*/
/*
* ```
* foo::bar("Hello world");
* ```
*/

View File

@ -0,0 +1,3 @@
source "%val{runtime}/colors/default.kak"
source "%val{runtime}/rc/filetype/rust.kak"
set buffer filetype rust

File diff suppressed because one or more lines are too long