aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/syntax_highlighting
diff options
context:
space:
mode:
authorPaul Daniel Faria <[email protected]>2020-06-18 14:37:22 +0100
committerPaul Daniel Faria <[email protected]>2020-06-23 17:08:04 +0100
commit351bba9bee136d856f987037b6ecffd0642d606f (patch)
tree50ef4af147ef3f539086aec02e274655552ee6ef /crates/ra_ide/src/syntax_highlighting
parent0c12c4f9609ee72487af9b55a558b01af73ffe3e (diff)
Add support for marking doctest items as distinct from normal code, add default tag to all doctest elements
Diffstat (limited to 'crates/ra_ide/src/syntax_highlighting')
-rw-r--r--crates/ra_ide/src/syntax_highlighting/html.rs2
-rw-r--r--crates/ra_ide/src/syntax_highlighting/injection.rs6
-rw-r--r--crates/ra_ide/src/syntax_highlighting/tags.rs3
3 files changed, 9 insertions, 2 deletions
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
19 ) 19 )
20 } 20 }
21 21
22 let ranges = highlight(db, file_id, None, false); 22 let ranges = highlight(db, file_id, None, false, None);
23 let text = parse.tree().syntax().to_string(); 23 let text = parse.tree().syntax().to_string();
24 let mut prev_pos = TextSize::from(0); 24 let mut prev_pos = TextSize::from(0);
25 let mut buf = String::new(); 25 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(
150 let (analysis, tmp_file_id) = Analysis::from_single_file(text); 150 let (analysis, tmp_file_id) = Analysis::from_single_file(text);
151 151
152 stack.push(); 152 stack.push();
153 for mut h in analysis.with_db(|db| super::highlight(db, tmp_file_id, None, true)).unwrap() { 153 for mut h in analysis
154 .with_db(|db| super::highlight(db, tmp_file_id, None, true, Some(HighlightTag::Operator)))
155 .unwrap()
156 {
154 // Determine start offset and end offset in case of multi-line ranges 157 // Determine start offset and end offset in case of multi-line ranges
155 let mut start_offset = None; 158 let mut start_offset = None;
156 let mut end_offset = None; 159 let mut end_offset = None;
@@ -172,6 +175,7 @@ pub(super) fn highlight_doc_comment(
172 h.range.end() + end_offset.unwrap_or(start_offset) - h.range.start(), 175 h.range.end() + end_offset.unwrap_or(start_offset) - h.range.start(),
173 ); 176 );
174 177
178 h.highlight |= HighlightModifier::Injected;
175 stack.add(h); 179 stack.add(h);
176 } 180 }
177 } 181 }
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 {
57 /// not. 57 /// not.
58 Definition, 58 Definition,
59 Documentation, 59 Documentation,
60 Injected,
60 Mutable, 61 Mutable,
61 Unsafe, 62 Unsafe,
62} 63}
@@ -110,6 +111,7 @@ impl HighlightModifier {
110 HighlightModifier::ControlFlow, 111 HighlightModifier::ControlFlow,
111 HighlightModifier::Definition, 112 HighlightModifier::Definition,
112 HighlightModifier::Documentation, 113 HighlightModifier::Documentation,
114 HighlightModifier::Injected,
113 HighlightModifier::Mutable, 115 HighlightModifier::Mutable,
114 HighlightModifier::Unsafe, 116 HighlightModifier::Unsafe,
115 ]; 117 ];
@@ -120,6 +122,7 @@ impl HighlightModifier {
120 HighlightModifier::ControlFlow => "control", 122 HighlightModifier::ControlFlow => "control",
121 HighlightModifier::Definition => "declaration", 123 HighlightModifier::Definition => "declaration",
122 HighlightModifier::Documentation => "documentation", 124 HighlightModifier::Documentation => "documentation",
125 HighlightModifier::Injected => "injected",
123 HighlightModifier::Mutable => "mutable", 126 HighlightModifier::Mutable => "mutable",
124 HighlightModifier::Unsafe => "unsafe", 127 HighlightModifier::Unsafe => "unsafe",
125 } 128 }