From 351bba9bee136d856f987037b6ecffd0642d606f Mon Sep 17 00:00:00 2001 From: Paul Daniel Faria Date: Thu, 18 Jun 2020 09:37:22 -0400 Subject: Add support for marking doctest items as distinct from normal code, add default tag to all doctest elements --- crates/ra_ide/src/syntax_highlighting/html.rs | 2 +- crates/ra_ide/src/syntax_highlighting/injection.rs | 6 +++++- crates/ra_ide/src/syntax_highlighting/tags.rs | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) (limited to 'crates/ra_ide/src/syntax_highlighting') diff --git a/crates/ra_ide/src/syntax_highlighting/html.rs b/crates/ra_ide/src/syntax_highlighting/html.rs index 99b6b25ab..9043024df 100644 --- a/crates/ra_ide/src/syntax_highlighting/html.rs +++ b/crates/ra_ide/src/syntax_highlighting/html.rs @@ -19,7 +19,7 @@ pub(crate) fn highlight_as_html(db: &RootDatabase, file_id: FileId, rainbow: boo ) } - let ranges = highlight(db, file_id, None, false); + let ranges = highlight(db, file_id, None, false, None); let text = parse.tree().syntax().to_string(); let mut prev_pos = TextSize::from(0); let mut buf = String::new(); diff --git a/crates/ra_ide/src/syntax_highlighting/injection.rs b/crates/ra_ide/src/syntax_highlighting/injection.rs index 9d82b4009..bd38cdb6f 100644 --- a/crates/ra_ide/src/syntax_highlighting/injection.rs +++ b/crates/ra_ide/src/syntax_highlighting/injection.rs @@ -150,7 +150,10 @@ pub(super) fn highlight_doc_comment( let (analysis, tmp_file_id) = Analysis::from_single_file(text); stack.push(); - for mut h in analysis.with_db(|db| super::highlight(db, tmp_file_id, None, true)).unwrap() { + for mut h in analysis + .with_db(|db| super::highlight(db, tmp_file_id, None, true, Some(HighlightTag::Operator))) + .unwrap() + { // Determine start offset and end offset in case of multi-line ranges let mut start_offset = None; let mut end_offset = None; @@ -172,6 +175,7 @@ pub(super) fn highlight_doc_comment( h.range.end() + end_offset.unwrap_or(start_offset) - h.range.start(), ); + h.highlight |= HighlightModifier::Injected; stack.add(h); } } diff --git a/crates/ra_ide/src/syntax_highlighting/tags.rs b/crates/ra_ide/src/syntax_highlighting/tags.rs index 93bbb4b4d..f5ab73865 100644 --- a/crates/ra_ide/src/syntax_highlighting/tags.rs +++ b/crates/ra_ide/src/syntax_highlighting/tags.rs @@ -57,6 +57,7 @@ pub enum HighlightModifier { /// not. Definition, Documentation, + Injected, Mutable, Unsafe, } @@ -110,6 +111,7 @@ impl HighlightModifier { HighlightModifier::ControlFlow, HighlightModifier::Definition, HighlightModifier::Documentation, + HighlightModifier::Injected, HighlightModifier::Mutable, HighlightModifier::Unsafe, ]; @@ -120,6 +122,7 @@ impl HighlightModifier { HighlightModifier::ControlFlow => "control", HighlightModifier::Definition => "declaration", HighlightModifier::Documentation => "documentation", + HighlightModifier::Injected => "injected", HighlightModifier::Mutable => "mutable", HighlightModifier::Unsafe => "unsafe", } -- cgit v1.2.3