rust: Add support for doctest runnables (#24806)
Screenshot:  I would be happy to add tests if you point me to the right place to do it please. Release Notes: - Added support for doc test in tasks for Rust --------- Signed-off-by: Benjamin <5719034+bnjjj@users.noreply.github.com>
This commit is contained in:
parent
d45aaa1745
commit
dff47a8436
2 changed files with 61 additions and 1 deletions
|
@ -577,6 +577,26 @@ impl ContextProvider for RustContextProvider {
|
||||||
cwd: Some("$ZED_DIRNAME".to_owned()),
|
cwd: Some("$ZED_DIRNAME".to_owned()),
|
||||||
..TaskTemplate::default()
|
..TaskTemplate::default()
|
||||||
},
|
},
|
||||||
|
TaskTemplate {
|
||||||
|
label: format!(
|
||||||
|
"DocTest '{}' (package: {})",
|
||||||
|
VariableName::Symbol.template_value(),
|
||||||
|
RUST_PACKAGE_TASK_VARIABLE.template_value(),
|
||||||
|
),
|
||||||
|
command: "cargo".into(),
|
||||||
|
args: vec![
|
||||||
|
"test".into(),
|
||||||
|
"--doc".into(),
|
||||||
|
"-p".into(),
|
||||||
|
RUST_PACKAGE_TASK_VARIABLE.template_value(),
|
||||||
|
VariableName::Symbol.template_value(),
|
||||||
|
"--".into(),
|
||||||
|
"--nocapture".into(),
|
||||||
|
],
|
||||||
|
tags: vec!["rust-doc-test".to_owned()],
|
||||||
|
cwd: Some("$ZED_DIRNAME".to_owned()),
|
||||||
|
..TaskTemplate::default()
|
||||||
|
},
|
||||||
TaskTemplate {
|
TaskTemplate {
|
||||||
label: format!(
|
label: format!(
|
||||||
"Test '{}' (package: {})",
|
"Test '{}' (package: {})",
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
|
; Rust mod test
|
||||||
(
|
(
|
||||||
(mod_item
|
(mod_item
|
||||||
name: (_) @run
|
name: (_) @run
|
||||||
|
@ -7,6 +7,7 @@
|
||||||
(#set! tag rust-mod-test)
|
(#set! tag rust-mod-test)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
; Rust test
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
(attribute_item (attribute
|
(attribute_item (attribute
|
||||||
|
@ -28,6 +29,45 @@
|
||||||
(#set! tag rust-test)
|
(#set! tag rust-test)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
; Rust doc test
|
||||||
|
(
|
||||||
|
(
|
||||||
|
(line_comment) *
|
||||||
|
(line_comment
|
||||||
|
doc: (_) @_comment_content
|
||||||
|
) @start
|
||||||
|
(#match? @_comment_content "```")
|
||||||
|
(line_comment) *
|
||||||
|
(line_comment
|
||||||
|
doc: (_) @_end_comment_content
|
||||||
|
) @_end_code_block
|
||||||
|
(#match? @_end_comment_content "```")
|
||||||
|
.
|
||||||
|
(attribute_item) *
|
||||||
|
.
|
||||||
|
[(line_comment) (block_comment)] *
|
||||||
|
.
|
||||||
|
[(function_item
|
||||||
|
name: (_) @run
|
||||||
|
body: _
|
||||||
|
) (function_signature_item
|
||||||
|
name: (_) @run
|
||||||
|
) (struct_item
|
||||||
|
name: (_) @run
|
||||||
|
) (enum_item
|
||||||
|
name: (_) @run
|
||||||
|
body: _
|
||||||
|
) (
|
||||||
|
(attribute_item) ?
|
||||||
|
(macro_definition
|
||||||
|
name: (_) @run)
|
||||||
|
) (mod_item
|
||||||
|
name: (_) @run
|
||||||
|
)] @_end
|
||||||
|
)
|
||||||
|
(#set! tag rust-doc-test)
|
||||||
|
)
|
||||||
|
|
||||||
; Rust main function
|
; Rust main function
|
||||||
(
|
(
|
||||||
(
|
(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue