diff options
Diffstat (limited to 'crates/ide')
16 files changed, 114 insertions, 45 deletions
diff --git a/crates/ide/src/display/navigation_target.rs b/crates/ide/src/display/navigation_target.rs index c086de163..364be260c 100644 --- a/crates/ide/src/display/navigation_target.rs +++ b/crates/ide/src/display/navigation_target.rs | |||
@@ -339,10 +339,14 @@ impl TryToNav for hir::Field { | |||
339 | impl TryToNav for hir::MacroDef { | 339 | impl TryToNav for hir::MacroDef { |
340 | fn try_to_nav(&self, db: &RootDatabase) -> Option<NavigationTarget> { | 340 | fn try_to_nav(&self, db: &RootDatabase) -> Option<NavigationTarget> { |
341 | let src = self.source(db)?; | 341 | let src = self.source(db)?; |
342 | log::debug!("nav target {:#?}", src.value.syntax()); | 342 | let name_owner: &dyn ast::NameOwner = match &src.value { |
343 | Either::Left(it) => it, | ||
344 | Either::Right(it) => it, | ||
345 | }; | ||
346 | log::debug!("nav target {:#?}", name_owner.syntax()); | ||
343 | let mut res = NavigationTarget::from_named( | 347 | let mut res = NavigationTarget::from_named( |
344 | db, | 348 | db, |
345 | src.as_ref().map(|it| it as &dyn ast::NameOwner), | 349 | src.as_ref().with_value(name_owner), |
346 | SymbolKind::Macro, | 350 | SymbolKind::Macro, |
347 | ); | 351 | ); |
348 | res.docs = self.docs(db); | 352 | res.docs = self.docs(db); |
diff --git a/crates/ide/src/goto_definition.rs b/crates/ide/src/goto_definition.rs index 598b47e41..473d48c2f 100644 --- a/crates/ide/src/goto_definition.rs +++ b/crates/ide/src/goto_definition.rs | |||
@@ -1176,4 +1176,21 @@ fn foo() { A { a$0: }; } | |||
1176 | "#, | 1176 | "#, |
1177 | ) | 1177 | ) |
1178 | } | 1178 | } |
1179 | |||
1180 | #[test] | ||
1181 | fn goto_proc_macro() { | ||
1182 | check( | ||
1183 | r#" | ||
1184 | //- /main.rs crate:main deps:mac | ||
1185 | use mac::fn_macro; | ||
1186 | |||
1187 | fn_macro$0!(); | ||
1188 | |||
1189 | //- /mac.rs crate:mac | ||
1190 | #[proc_macro] | ||
1191 | fn fn_macro() {} | ||
1192 | //^^^^^^^^ | ||
1193 | "#, | ||
1194 | ) | ||
1195 | } | ||
1179 | } | 1196 | } |
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs index 15d309d7d..a3fb17c0a 100644 --- a/crates/ide/src/hover.rs +++ b/crates/ide/src/hover.rs | |||
@@ -331,10 +331,16 @@ fn hover_for_definition( | |||
331 | ) -> Option<Markup> { | 331 | ) -> Option<Markup> { |
332 | let mod_path = definition_mod_path(db, &def); | 332 | let mod_path = definition_mod_path(db, &def); |
333 | return match def { | 333 | return match def { |
334 | Definition::Macro(it) => { | 334 | Definition::Macro(it) => match &it.source(db)?.value { |
335 | let label = macro_label(&it.source(db)?.value); | 335 | Either::Left(mac) => { |
336 | from_def_source_labeled(db, it, Some(label), mod_path) | 336 | let label = macro_label(&mac); |
337 | } | 337 | from_def_source_labeled(db, it, Some(label), mod_path) |
338 | } | ||
339 | Either::Right(_) => { | ||
340 | // FIXME | ||
341 | None | ||
342 | } | ||
343 | }, | ||
338 | Definition::Field(def) => from_hir_fmt(db, def, mod_path), | 344 | Definition::Field(def) => from_hir_fmt(db, def, mod_path), |
339 | Definition::ModuleDef(it) => match it { | 345 | Definition::ModuleDef(it) => match it { |
340 | ModuleDef::Module(it) => from_hir_fmt(db, it, mod_path), | 346 | ModuleDef::Module(it) => from_hir_fmt(db, it, mod_path), |
diff --git a/crates/ide/src/syntax_highlighting.rs b/crates/ide/src/syntax_highlighting.rs index ba3447b3a..e25b698e0 100644 --- a/crates/ide/src/syntax_highlighting.rs +++ b/crates/ide/src/syntax_highlighting.rs | |||
@@ -12,7 +12,7 @@ mod html; | |||
12 | #[cfg(test)] | 12 | #[cfg(test)] |
13 | mod tests; | 13 | mod tests; |
14 | 14 | ||
15 | use hir::{Name, Semantics}; | 15 | use hir::{InFile, Name, Semantics}; |
16 | use ide_db::{RootDatabase, SymbolKind}; | 16 | use ide_db::{RootDatabase, SymbolKind}; |
17 | use rustc_hash::FxHashMap; | 17 | use rustc_hash::FxHashMap; |
18 | use syntax::{ | 18 | use syntax::{ |
@@ -73,14 +73,20 @@ pub(crate) fn highlight( | |||
73 | }; | 73 | }; |
74 | 74 | ||
75 | let mut hl = highlights::Highlights::new(root.text_range()); | 75 | let mut hl = highlights::Highlights::new(root.text_range()); |
76 | traverse(&mut hl, &sema, &root, range_to_highlight, syntactic_name_ref_highlighting); | 76 | traverse( |
77 | &mut hl, | ||
78 | &sema, | ||
79 | InFile::new(file_id.into(), &root), | ||
80 | range_to_highlight, | ||
81 | syntactic_name_ref_highlighting, | ||
82 | ); | ||
77 | hl.to_vec() | 83 | hl.to_vec() |
78 | } | 84 | } |
79 | 85 | ||
80 | fn traverse( | 86 | fn traverse( |
81 | hl: &mut Highlights, | 87 | hl: &mut Highlights, |
82 | sema: &Semantics<RootDatabase>, | 88 | sema: &Semantics<RootDatabase>, |
83 | root: &SyntaxNode, | 89 | root: InFile<&SyntaxNode>, |
84 | range_to_highlight: TextRange, | 90 | range_to_highlight: TextRange, |
85 | syntactic_name_ref_highlighting: bool, | 91 | syntactic_name_ref_highlighting: bool, |
86 | ) { | 92 | ) { |
@@ -93,7 +99,7 @@ fn traverse( | |||
93 | 99 | ||
94 | // Walk all nodes, keeping track of whether we are inside a macro or not. | 100 | // Walk all nodes, keeping track of whether we are inside a macro or not. |
95 | // If in macro, expand it first and highlight the expanded code. | 101 | // If in macro, expand it first and highlight the expanded code. |
96 | for event in root.preorder_with_tokens() { | 102 | for event in root.value.preorder_with_tokens() { |
97 | let event_range = match &event { | 103 | let event_range = match &event { |
98 | WalkEvent::Enter(it) | WalkEvent::Leave(it) => it.text_range(), | 104 | WalkEvent::Enter(it) | WalkEvent::Leave(it) => it.text_range(), |
99 | }; | 105 | }; |
@@ -150,7 +156,7 @@ fn traverse( | |||
150 | WalkEvent::Enter(it) => it, | 156 | WalkEvent::Enter(it) => it, |
151 | WalkEvent::Leave(it) => { | 157 | WalkEvent::Leave(it) => { |
152 | if let Some(node) = it.as_node() { | 158 | if let Some(node) = it.as_node() { |
153 | inject::doc_comment(hl, sema, node); | 159 | inject::doc_comment(hl, sema, root.with_value(node)); |
154 | } | 160 | } |
155 | continue; | 161 | continue; |
156 | } | 162 | } |
diff --git a/crates/ide/src/syntax_highlighting/html.rs b/crates/ide/src/syntax_highlighting/html.rs index 1d34731ab..5327af845 100644 --- a/crates/ide/src/syntax_highlighting/html.rs +++ b/crates/ide/src/syntax_highlighting/html.rs | |||
@@ -59,7 +59,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
59 | .label { color: #DFAF8F; font-style: italic; } | 59 | .label { color: #DFAF8F; font-style: italic; } |
60 | .comment { color: #7F9F7F; } | 60 | .comment { color: #7F9F7F; } |
61 | .documentation { color: #629755; } | 61 | .documentation { color: #629755; } |
62 | .intra_doc_link { color: #A9C577; } | 62 | .intra_doc_link { font-style: italic; } |
63 | .injected { opacity: 0.65 ; } | 63 | .injected { opacity: 0.65 ; } |
64 | .struct, .enum { color: #7CB8BB; } | 64 | .struct, .enum { color: #7CB8BB; } |
65 | .enum_variant { color: #BDE0F3; } | 65 | .enum_variant { color: #BDE0F3; } |
diff --git a/crates/ide/src/syntax_highlighting/inject.rs b/crates/ide/src/syntax_highlighting/inject.rs index 90feb6c18..5722dea3a 100644 --- a/crates/ide/src/syntax_highlighting/inject.rs +++ b/crates/ide/src/syntax_highlighting/inject.rs | |||
@@ -3,8 +3,8 @@ | |||
3 | use std::{mem, ops::Range}; | 3 | use std::{mem, ops::Range}; |
4 | 4 | ||
5 | use either::Either; | 5 | use either::Either; |
6 | use hir::{HasAttrs, Semantics}; | 6 | use hir::{HasAttrs, InFile, Semantics}; |
7 | use ide_db::{call_info::ActiveParameter, defs::Definition}; | 7 | use ide_db::{call_info::ActiveParameter, defs::Definition, SymbolKind}; |
8 | use syntax::{ | 8 | use syntax::{ |
9 | ast::{self, AstNode, AttrsOwner, DocCommentsOwner}, | 9 | ast::{self, AstNode, AttrsOwner, DocCommentsOwner}, |
10 | match_ast, AstToken, NodeOrToken, SyntaxNode, SyntaxToken, TextRange, TextSize, | 10 | match_ast, AstToken, NodeOrToken, SyntaxNode, SyntaxToken, TextRange, TextSize, |
@@ -148,8 +148,12 @@ fn doc_attributes<'node>( | |||
148 | } | 148 | } |
149 | 149 | ||
150 | /// Injection of syntax highlighting of doctests. | 150 | /// Injection of syntax highlighting of doctests. |
151 | pub(super) fn doc_comment(hl: &mut Highlights, sema: &Semantics<RootDatabase>, node: &SyntaxNode) { | 151 | pub(super) fn doc_comment( |
152 | let (owner, attributes, def) = match doc_attributes(sema, node) { | 152 | hl: &mut Highlights, |
153 | sema: &Semantics<RootDatabase>, | ||
154 | node: InFile<&SyntaxNode>, | ||
155 | ) { | ||
156 | let (owner, attributes, def) = match doc_attributes(sema, node.value) { | ||
153 | Some(it) => it, | 157 | Some(it) => it, |
154 | None => return, | 158 | None => return, |
155 | }; | 159 | }; |
@@ -157,7 +161,12 @@ pub(super) fn doc_comment(hl: &mut Highlights, sema: &Semantics<RootDatabase>, n | |||
157 | let mut inj = Injector::default(); | 161 | let mut inj = Injector::default(); |
158 | inj.add_unmapped("fn doctest() {\n"); | 162 | inj.add_unmapped("fn doctest() {\n"); |
159 | 163 | ||
160 | let attrs_source_map = attributes.source_map(&owner); | 164 | let attrs_source_map = match def { |
165 | Definition::ModuleDef(hir::ModuleDef::Module(module)) => { | ||
166 | attributes.source_map_for_module(sema.db, module.into()) | ||
167 | } | ||
168 | _ => attributes.source_map(node.with_value(&owner)), | ||
169 | }; | ||
161 | 170 | ||
162 | let mut is_codeblock = false; | 171 | let mut is_codeblock = false; |
163 | let mut is_doctest = false; | 172 | let mut is_doctest = false; |
@@ -168,7 +177,10 @@ pub(super) fn doc_comment(hl: &mut Highlights, sema: &Semantics<RootDatabase>, n | |||
168 | let mut intra_doc_links = Vec::new(); | 177 | let mut intra_doc_links = Vec::new(); |
169 | let mut string; | 178 | let mut string; |
170 | for attr in attributes.by_key("doc").attrs() { | 179 | for attr in attributes.by_key("doc").attrs() { |
171 | let src = attrs_source_map.source_of(&attr); | 180 | let InFile { file_id, value: src } = attrs_source_map.source_of(&attr); |
181 | if file_id != node.file_id { | ||
182 | continue; | ||
183 | } | ||
172 | let (line, range, prefix) = match &src { | 184 | let (line, range, prefix) = match &src { |
173 | Either::Left(it) => { | 185 | Either::Left(it) => { |
174 | string = match find_doc_string_in_attr(attr, it) { | 186 | string = match find_doc_string_in_attr(attr, it) { |
@@ -213,13 +225,16 @@ pub(super) fn doc_comment(hl: &mut Highlights, sema: &Semantics<RootDatabase>, n | |||
213 | intra_doc_links.extend( | 225 | intra_doc_links.extend( |
214 | extract_definitions_from_markdown(line) | 226 | extract_definitions_from_markdown(line) |
215 | .into_iter() | 227 | .into_iter() |
216 | .filter(|(link, ns, _)| { | 228 | .filter_map(|(link, ns, range)| { |
217 | validate_intra_doc_link(sema.db, &def, link, *ns) | 229 | validate_intra_doc_link(sema.db, &def, &link, ns).zip(Some(range)) |
218 | }) | 230 | }) |
219 | .map(|(.., Range { start, end })| { | 231 | .map(|(def, Range { start, end })| { |
220 | TextRange::at( | 232 | ( |
221 | prev_range_start + TextSize::from(start as u32), | 233 | def, |
222 | TextSize::from((end - start) as u32), | 234 | TextRange::at( |
235 | prev_range_start + TextSize::from(start as u32), | ||
236 | TextSize::from((end - start) as u32), | ||
237 | ), | ||
223 | ) | 238 | ) |
224 | }), | 239 | }), |
225 | ); | 240 | ); |
@@ -243,10 +258,13 @@ pub(super) fn doc_comment(hl: &mut Highlights, sema: &Semantics<RootDatabase>, n | |||
243 | } | 258 | } |
244 | } | 259 | } |
245 | 260 | ||
246 | for range in intra_doc_links { | 261 | for (def, range) in intra_doc_links { |
247 | hl.add(HlRange { | 262 | hl.add(HlRange { |
248 | range, | 263 | range, |
249 | highlight: HlTag::IntraDocLink | HlMod::Documentation, | 264 | highlight: module_def_to_hl_tag(def) |
265 | | HlMod::Documentation | ||
266 | | HlMod::Injected | ||
267 | | HlMod::IntraDocLink, | ||
250 | binding_hash: None, | 268 | binding_hash: None, |
251 | }); | 269 | }); |
252 | } | 270 | } |
@@ -306,7 +324,7 @@ fn validate_intra_doc_link( | |||
306 | def: &Definition, | 324 | def: &Definition, |
307 | link: &str, | 325 | link: &str, |
308 | ns: Option<hir::Namespace>, | 326 | ns: Option<hir::Namespace>, |
309 | ) -> bool { | 327 | ) -> Option<hir::ModuleDef> { |
310 | match def { | 328 | match def { |
311 | Definition::ModuleDef(def) => match def { | 329 | Definition::ModuleDef(def) => match def { |
312 | hir::ModuleDef::Module(it) => it.resolve_doc_path(db, &link, ns), | 330 | hir::ModuleDef::Module(it) => it.resolve_doc_path(db, &link, ns), |
@@ -326,5 +344,21 @@ fn validate_intra_doc_link( | |||
326 | | Definition::GenericParam(_) | 344 | | Definition::GenericParam(_) |
327 | | Definition::Label(_) => None, | 345 | | Definition::Label(_) => None, |
328 | } | 346 | } |
329 | .is_some() | 347 | } |
348 | |||
349 | fn module_def_to_hl_tag(def: hir::ModuleDef) -> HlTag { | ||
350 | let symbol = match def { | ||
351 | hir::ModuleDef::Module(_) => SymbolKind::Module, | ||
352 | hir::ModuleDef::Function(_) => SymbolKind::Function, | ||
353 | hir::ModuleDef::Adt(hir::Adt::Struct(_)) => SymbolKind::Struct, | ||
354 | hir::ModuleDef::Adt(hir::Adt::Enum(_)) => SymbolKind::Enum, | ||
355 | hir::ModuleDef::Adt(hir::Adt::Union(_)) => SymbolKind::Union, | ||
356 | hir::ModuleDef::Variant(_) => SymbolKind::Variant, | ||
357 | hir::ModuleDef::Const(_) => SymbolKind::Const, | ||
358 | hir::ModuleDef::Static(_) => SymbolKind::Static, | ||
359 | hir::ModuleDef::Trait(_) => SymbolKind::Trait, | ||
360 | hir::ModuleDef::TypeAlias(_) => SymbolKind::TypeAlias, | ||
361 | hir::ModuleDef::BuiltinType(_) => return HlTag::BuiltinType, | ||
362 | }; | ||
363 | HlTag::Symbol(symbol) | ||
330 | } | 364 | } |
diff --git a/crates/ide/src/syntax_highlighting/tags.rs b/crates/ide/src/syntax_highlighting/tags.rs index ce46e5127..93db79b89 100644 --- a/crates/ide/src/syntax_highlighting/tags.rs +++ b/crates/ide/src/syntax_highlighting/tags.rs | |||
@@ -26,7 +26,6 @@ pub enum HlTag { | |||
26 | Comment, | 26 | Comment, |
27 | EscapeSequence, | 27 | EscapeSequence, |
28 | FormatSpecifier, | 28 | FormatSpecifier, |
29 | IntraDocLink, | ||
30 | Keyword, | 29 | Keyword, |
31 | NumericLiteral, | 30 | NumericLiteral, |
32 | Operator, | 31 | Operator, |
@@ -57,6 +56,8 @@ pub enum HlMod { | |||
57 | Static, | 56 | Static, |
58 | /// Used for items in impls&traits. | 57 | /// Used for items in impls&traits. |
59 | Associated, | 58 | Associated, |
59 | /// Used for intra doc links in doc injection. | ||
60 | IntraDocLink, | ||
60 | 61 | ||
61 | /// Keep this last! | 62 | /// Keep this last! |
62 | Unsafe, | 63 | Unsafe, |
@@ -117,7 +118,6 @@ impl HlTag { | |||
117 | HlTag::Comment => "comment", | 118 | HlTag::Comment => "comment", |
118 | HlTag::EscapeSequence => "escape_sequence", | 119 | HlTag::EscapeSequence => "escape_sequence", |
119 | HlTag::FormatSpecifier => "format_specifier", | 120 | HlTag::FormatSpecifier => "format_specifier", |
120 | HlTag::IntraDocLink => "intra_doc_link", | ||
121 | HlTag::Keyword => "keyword", | 121 | HlTag::Keyword => "keyword", |
122 | HlTag::Punctuation(punct) => match punct { | 122 | HlTag::Punctuation(punct) => match punct { |
123 | HlPunct::Bracket => "bracket", | 123 | HlPunct::Bracket => "bracket", |
@@ -151,6 +151,7 @@ impl HlMod { | |||
151 | HlMod::ControlFlow, | 151 | HlMod::ControlFlow, |
152 | HlMod::Definition, | 152 | HlMod::Definition, |
153 | HlMod::Documentation, | 153 | HlMod::Documentation, |
154 | HlMod::IntraDocLink, | ||
154 | HlMod::Injected, | 155 | HlMod::Injected, |
155 | HlMod::Mutable, | 156 | HlMod::Mutable, |
156 | HlMod::Consuming, | 157 | HlMod::Consuming, |
@@ -162,17 +163,18 @@ impl HlMod { | |||
162 | 163 | ||
163 | fn as_str(self) -> &'static str { | 164 | fn as_str(self) -> &'static str { |
164 | match self { | 165 | match self { |
166 | HlMod::Associated => "associated", | ||
165 | HlMod::Attribute => "attribute", | 167 | HlMod::Attribute => "attribute", |
168 | HlMod::Callable => "callable", | ||
169 | HlMod::Consuming => "consuming", | ||
166 | HlMod::ControlFlow => "control", | 170 | HlMod::ControlFlow => "control", |
167 | HlMod::Definition => "declaration", | 171 | HlMod::Definition => "declaration", |
168 | HlMod::Documentation => "documentation", | 172 | HlMod::Documentation => "documentation", |
169 | HlMod::Injected => "injected", | 173 | HlMod::Injected => "injected", |
174 | HlMod::IntraDocLink => "intra_doc_link", | ||
170 | HlMod::Mutable => "mutable", | 175 | HlMod::Mutable => "mutable", |
171 | HlMod::Consuming => "consuming", | ||
172 | HlMod::Unsafe => "unsafe", | ||
173 | HlMod::Callable => "callable", | ||
174 | HlMod::Static => "static", | 176 | HlMod::Static => "static", |
175 | HlMod::Associated => "associated", | 177 | HlMod::Unsafe => "unsafe", |
176 | } | 178 | } |
177 | } | 179 | } |
178 | 180 | ||
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_assoc_functions.html b/crates/ide/src/syntax_highlighting/test_data/highlight_assoc_functions.html index 60c7518af..4635ea927 100644 --- a/crates/ide/src/syntax_highlighting/test_data/highlight_assoc_functions.html +++ b/crates/ide/src/syntax_highlighting/test_data/highlight_assoc_functions.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html b/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html index 5d802a647..045162eb8 100644 --- a/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html +++ b/crates/ide/src/syntax_highlighting/test_data/highlight_doctest.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |
@@ -99,8 +99,8 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
99 | <span class="brace">}</span> | 99 | <span class="brace">}</span> |
100 | <span class="brace">}</span> | 100 | <span class="brace">}</span> |
101 | 101 | ||
102 | <span class="comment documentation">/// </span><span class="intra_doc_link documentation">[`Foo`](Foo)</span><span class="comment documentation"> is a struct</span> | 102 | <span class="comment documentation">/// </span><span class="struct documentation intra_doc_link injected">[`Foo`](Foo)</span><span class="comment documentation"> is a struct</span> |
103 | <span class="comment documentation">/// </span><span class="intra_doc_link documentation">[`all_the_links`](all_the_links)</span><span class="comment documentation"> is this function</span> | 103 | <span class="comment documentation">/// </span><span class="function documentation intra_doc_link injected">[`all_the_links`](all_the_links)</span><span class="comment documentation"> is this function</span> |
104 | <span class="comment documentation">/// [`noop`](noop) is a macro below</span> | 104 | <span class="comment documentation">/// [`noop`](noop) is a macro below</span> |
105 | <span class="keyword">pub</span> <span class="keyword">fn</span> <span class="function declaration">all_the_links</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span> | 105 | <span class="keyword">pub</span> <span class="keyword">fn</span> <span class="function declaration">all_the_links</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span> |
106 | 106 | ||
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html b/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html index 4e312765c..ca9bb1e7d 100644 --- a/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html +++ b/crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html b/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html index 57dfe7509..9215ddd9e 100644 --- a/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html +++ b/crates/ide/src/syntax_highlighting/test_data/highlight_injection.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_strings.html b/crates/ide/src/syntax_highlighting/test_data/highlight_strings.html index 75dbd0f14..e860d713e 100644 --- a/crates/ide/src/syntax_highlighting/test_data/highlight_strings.html +++ b/crates/ide/src/syntax_highlighting/test_data/highlight_strings.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html b/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html index 423256a20..6a6555208 100644 --- a/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html +++ b/crates/ide/src/syntax_highlighting/test_data/highlight_unsafe.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlighting.html b/crates/ide/src/syntax_highlighting/test_data/highlighting.html index fffe8c0f5..8b2dd3b70 100644 --- a/crates/ide/src/syntax_highlighting/test_data/highlighting.html +++ b/crates/ide/src/syntax_highlighting/test_data/highlighting.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |
diff --git a/crates/ide/src/syntax_highlighting/test_data/injection.html b/crates/ide/src/syntax_highlighting/test_data/injection.html index 34d8deb68..9ab46d05c 100644 --- a/crates/ide/src/syntax_highlighting/test_data/injection.html +++ b/crates/ide/src/syntax_highlighting/test_data/injection.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |
diff --git a/crates/ide/src/syntax_highlighting/test_data/rainbow_highlighting.html b/crates/ide/src/syntax_highlighting/test_data/rainbow_highlighting.html index d9ca3a4c4..666b0b228 100644 --- a/crates/ide/src/syntax_highlighting/test_data/rainbow_highlighting.html +++ b/crates/ide/src/syntax_highlighting/test_data/rainbow_highlighting.html | |||
@@ -7,7 +7,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd | |||
7 | .label { color: #DFAF8F; font-style: italic; } | 7 | .label { color: #DFAF8F; font-style: italic; } |
8 | .comment { color: #7F9F7F; } | 8 | .comment { color: #7F9F7F; } |
9 | .documentation { color: #629755; } | 9 | .documentation { color: #629755; } |
10 | .intra_doc_link { color: #A9C577; } | 10 | .intra_doc_link { font-style: italic; } |
11 | .injected { opacity: 0.65 ; } | 11 | .injected { opacity: 0.65 ; } |
12 | .struct, .enum { color: #7CB8BB; } | 12 | .struct, .enum { color: #7CB8BB; } |
13 | .enum_variant { color: #BDE0F3; } | 13 | .enum_variant { color: #BDE0F3; } |