diff options
Diffstat (limited to 'crates/ra_ide')
-rw-r--r-- | crates/ra_ide/src/hover.rs | 6 | ||||
-rw-r--r-- | crates/ra_ide/src/markup.rs | 15 |
2 files changed, 8 insertions, 13 deletions
diff --git a/crates/ra_ide/src/hover.rs b/crates/ra_ide/src/hover.rs index 79ed30388..9b4804906 100644 --- a/crates/ra_ide/src/hover.rs +++ b/crates/ra_ide/src/hover.rs | |||
@@ -93,9 +93,7 @@ pub(crate) fn hover(db: &RootDatabase, position: FilePosition) -> Option<RangeIn | |||
93 | }; | 93 | }; |
94 | if let Some(definition) = definition { | 94 | if let Some(definition) = definition { |
95 | if let Some(text) = hover_for_definition(db, definition) { | 95 | if let Some(text) = hover_for_definition(db, definition) { |
96 | res.markup.push_section(&text); | 96 | res.markup = text.into(); |
97 | } | ||
98 | if !res.markup.is_empty() { | ||
99 | if let Some(action) = show_implementations_action(db, definition) { | 97 | if let Some(action) = show_implementations_action(db, definition) { |
100 | res.actions.push(action); | 98 | res.actions.push(action); |
101 | } | 99 | } |
@@ -128,7 +126,7 @@ pub(crate) fn hover(db: &RootDatabase, position: FilePosition) -> Option<RangeIn | |||
128 | } | 126 | } |
129 | }; | 127 | }; |
130 | 128 | ||
131 | res.markup.push_section(&rust_code_markup(&ty.display(db))); | 129 | res.markup = rust_code_markup(&ty.display(db)).into(); |
132 | let range = sema.original_range(&node).range; | 130 | let range = sema.original_range(&node).range; |
133 | Some(RangeInfo::new(range, res)) | 131 | Some(RangeInfo::new(range, res)) |
134 | } | 132 | } |
diff --git a/crates/ra_ide/src/markup.rs b/crates/ra_ide/src/markup.rs index 2f2b3cc25..212ca80b7 100644 --- a/crates/ra_ide/src/markup.rs +++ b/crates/ra_ide/src/markup.rs | |||
@@ -16,6 +16,12 @@ impl From<Markup> for String { | |||
16 | } | 16 | } |
17 | } | 17 | } |
18 | 18 | ||
19 | impl From<String> for Markup { | ||
20 | fn from(text: String) -> Self { | ||
21 | Markup { text } | ||
22 | } | ||
23 | } | ||
24 | |||
19 | impl fmt::Display for Markup { | 25 | impl fmt::Display for Markup { |
20 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | 26 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
21 | fmt::Display::fmt(&self.text, f) | 27 | fmt::Display::fmt(&self.text, f) |
@@ -26,13 +32,4 @@ impl Markup { | |||
26 | pub fn as_str(&self) -> &str { | 32 | pub fn as_str(&self) -> &str { |
27 | self.text.as_str() | 33 | self.text.as_str() |
28 | } | 34 | } |
29 | pub fn is_empty(&self) -> bool { | ||
30 | self.text.is_empty() | ||
31 | } | ||
32 | pub fn push_section(&mut self, section: &str) { | ||
33 | if !self.text.is_empty() { | ||
34 | self.text.push_str("\n\n___\n"); | ||
35 | } | ||
36 | self.text.push_str(section); | ||
37 | } | ||
38 | } | 35 | } |