Skip to content

Commit 2a56323

Browse files
committed
Update injection mechanism and stop injecting through highlight element, switch to more general new highlight tag, generic
1 parent d8230ac commit 2a56323

14 files changed

+239
-218
lines changed

crates/ra_ide/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,13 +443,13 @@ impl Analysis {
443443

444444
/// Computes syntax highlighting for the given file
445445
pub fn highlight(&self, file_id: FileId) -> Cancelable<Vec<HighlightedRange>> {
446-
self.with_db(|db| syntax_highlighting::highlight(db, file_id, None, false, false))
446+
self.with_db(|db| syntax_highlighting::highlight(db, file_id, None, false))
447447
}
448448

449449
/// Computes syntax highlighting for the given file range.
450450
pub fn highlight_range(&self, frange: FileRange) -> Cancelable<Vec<HighlightedRange>> {
451451
self.with_db(|db| {
452-
syntax_highlighting::highlight(db, frange.file_id, Some(frange.range), false, false)
452+
syntax_highlighting::highlight(db, frange.file_id, Some(frange.range), false)
453453
})
454454
}
455455

crates/ra_ide/src/prime_caches.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ use crate::{FileId, RootDatabase};
77

88
pub(crate) fn prime_caches(db: &RootDatabase, files: Vec<FileId>) {
99
for file in files {
10-
let _ = crate::syntax_highlighting::highlight(db, file, None, false, false);
10+
let _ = crate::syntax_highlighting::highlight(db, file, None, false);
1111
}
1212
}

crates/ra_ide/src/snapshots/highlight_doctest.html

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,67 +35,67 @@
3535
.control { font-style: italic; }
3636
</style>
3737
<pre><code><span class="comment documentation">/// ```</span>
38-
<span class="comment documentation">/// </span><span class="keyword injected">let</span> <span class="punctuation injected">_</span> <span class="punctuation injected">=</span> <span class="string_literal injected">"early doctests should not go boom"</span><span class="punctuation injected">;</span><span class="punctuation injected">
39-
</span><span class="comment documentation">/// ```</span>
40-
<span class="keyword">struct</span> <span class="struct declaration">Foo</span> <span class="punctuation">{</span>
41-
<span class="field declaration">bar</span><span class="punctuation">:</span> <span class="builtin_type">bool</span><span class="punctuation">,</span>
42-
<span class="punctuation">}</span>
38+
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="generic injected"> _ = </span><span class="string_literal injected">"early doctests should not go boom"</span><span class="generic injected">;</span>
39+
<span class="comment documentation">/// ```</span>
40+
<span class="keyword">struct</span> <span class="struct declaration">Foo</span> {
41+
<span class="field declaration">bar</span>: <span class="builtin_type">bool</span>,
42+
}
4343

44-
<span class="keyword">impl</span> <span class="struct">Foo</span> <span class="punctuation">{</span>
45-
<span class="keyword">pub</span> <span class="keyword">const</span> <span class="constant declaration">bar</span><span class="punctuation">:</span> <span class="builtin_type">bool</span> <span class="punctuation">=</span> <span class="bool_literal">true</span><span class="punctuation">;</span>
44+
<span class="keyword">impl</span> <span class="struct">Foo</span> {
45+
<span class="keyword">pub</span> <span class="keyword">const</span> <span class="constant declaration">bar</span>: <span class="builtin_type">bool</span> = <span class="bool_literal">true</span>;
4646

4747
<span class="comment documentation">/// Constructs a new `Foo`.</span>
4848
<span class="comment documentation">///</span>
4949
<span class="comment documentation">/// # Examples</span>
5050
<span class="comment documentation">///</span>
5151
<span class="comment documentation">/// ```</span>
52-
<span class="comment documentation">/// #</span> <span class="punctuation injected">#</span><span class="punctuation injected">!</span><span class="punctuation injected">[</span><span class="function attribute injected">allow</span><span class="punctuation injected">(</span><span class="attribute injected">unused_mut</span><span class="punctuation injected">)</span><span class="punctuation injected">]</span>
53-
<span class="comment documentation">/// </span><span class="keyword injected">let</span> <span class="keyword injected">mut</span> <span class="variable declaration injected mutable">foo</span><span class="punctuation injected">:</span> <span class="struct injected">Foo</span> <span class="punctuation injected">=</span> <span class="struct injected">Foo</span><span class="punctuation injected">::</span><span class="function injected">new</span><span class="punctuation injected">(</span><span class="punctuation injected">)</span><span class="punctuation injected">;</span><span class="punctuation injected">
54-
</span> <span class="comment documentation">/// ```</span>
55-
<span class="keyword">pub</span> <span class="keyword">const</span> <span class="keyword">fn</span> <span class="function declaration">new</span><span class="punctuation">(</span><span class="punctuation">)</span> <span class="punctuation">-&gt;</span> <span class="struct">Foo</span> <span class="punctuation">{</span>
56-
<span class="struct">Foo</span> <span class="punctuation">{</span> <span class="field">bar</span><span class="punctuation">:</span> <span class="bool_literal">true</span> <span class="punctuation">}</span>
57-
<span class="punctuation">}</span>
52+
<span class="comment documentation">/// #</span><span class="generic injected"> </span><span class="attribute injected">#![</span><span class="function attribute injected">allow</span><span class="attribute injected">(unused_mut)]</span>
53+
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="generic injected"> </span><span class="keyword injected">mut</span><span class="generic injected"> </span><span class="variable declaration injected mutable">foo</span><span class="generic injected">: </span><span class="struct injected">Foo</span><span class="generic injected"> = </span><span class="struct injected">Foo</span><span class="generic injected">::</span><span class="function injected">new</span><span class="generic injected">();</span>
54+
<span class="comment documentation">/// ```</span>
55+
<span class="keyword">pub</span> <span class="keyword">const</span> <span class="keyword">fn</span> <span class="function declaration">new</span>() -&gt; <span class="struct">Foo</span> {
56+
<span class="struct">Foo</span> { <span class="field">bar</span>: <span class="bool_literal">true</span> }
57+
}
5858

5959
<span class="comment documentation">/// `bar` method on `Foo`.</span>
6060
<span class="comment documentation">///</span>
6161
<span class="comment documentation">/// # Examples</span>
6262
<span class="comment documentation">///</span>
6363
<span class="comment documentation">/// ```</span>
64-
<span class="comment documentation">/// </span><span class="keyword injected">use</span> <span class="module injected">x</span><span class="punctuation injected">::</span><span class="module injected">y</span><span class="punctuation injected">;</span>
64+
<span class="comment documentation">/// </span><span class="keyword injected">use</span><span class="generic injected"> </span><span class="module injected">x</span><span class="generic injected">::</span><span class="module injected">y</span><span class="generic injected">;</span>
6565
<span class="comment documentation">///</span>
66-
<span class="comment documentation">/// </span><span class="keyword injected">let</span> <span class="variable declaration injected">foo</span> <span class="punctuation injected">=</span> <span class="struct injected">Foo</span><span class="punctuation injected">::</span><span class="function injected">new</span><span class="punctuation injected">(</span><span class="punctuation injected">)</span><span class="punctuation injected">;</span>
66+
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="generic injected"> </span><span class="variable declaration injected">foo</span><span class="generic injected"> = </span><span class="struct injected">Foo</span><span class="generic injected">::</span><span class="function injected">new</span><span class="generic injected">();</span>
6767
<span class="comment documentation">///</span>
6868
<span class="comment documentation">/// </span><span class="comment injected">// calls bar on foo</span>
69-
<span class="comment documentation">/// </span><span class="macro injected">assert!</span><span class="punctuation injected">(</span>foo<span class="punctuation injected">.</span>bar<span class="punctuation injected">(</span><span class="punctuation injected">)</span><span class="punctuation injected">)</span><span class="punctuation injected">;</span>
69+
<span class="comment documentation">/// </span><span class="macro injected">assert!</span><span class="generic injected">(foo.bar());</span>
7070
<span class="comment documentation">///</span>
71-
<span class="comment documentation">/// </span><span class="keyword injected">let</span> <span class="variable declaration injected">bar</span> <span class="punctuation injected">=</span> <span class="variable injected">foo</span><span class="punctuation injected">.</span><span class="field injected">bar</span> <span class="punctuation injected">||</span> <span class="struct injected">Foo</span><span class="punctuation injected">::</span><span class="constant injected">bar</span><span class="punctuation injected">;</span>
71+
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="generic injected"> </span><span class="variable declaration injected">bar</span><span class="generic injected"> = </span><span class="variable injected">foo</span><span class="generic injected">.</span><span class="field injected">bar</span><span class="generic injected"> || </span><span class="struct injected">Foo</span><span class="generic injected">::</span><span class="constant injected">bar</span><span class="generic injected">;</span>
7272
<span class="comment documentation">///</span>
7373
<span class="comment documentation">/// </span><span class="comment injected">/* multi-line
7474
</span><span class="comment documentation">/// </span><span class="comment injected"> comment */</span>
7575
<span class="comment documentation">///</span>
76-
<span class="comment documentation">/// </span><span class="keyword injected">let</span> <span class="variable declaration injected">multi_line_string</span> <span class="punctuation injected">=</span> <span class="string_literal injected">"Foo
76+
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="generic injected"> </span><span class="variable declaration injected">multi_line_string</span><span class="generic injected"> = </span><span class="string_literal injected">"Foo
7777
</span><span class="comment documentation">/// </span><span class="string_literal injected"> bar
78-
</span><span class="comment documentation">/// </span><span class="string_literal injected"> "</span><span class="punctuation injected">;</span>
78+
</span><span class="comment documentation">/// </span><span class="string_literal injected"> "</span><span class="generic injected">;</span>
7979
<span class="comment documentation">///</span>
8080
<span class="comment documentation">/// ```</span>
8181
<span class="comment documentation">///</span>
8282
<span class="comment documentation">/// ```rust,no_run</span>
83-
<span class="comment documentation">/// </span><span class="keyword injected">let</span> <span class="variable declaration injected">foobar</span> <span class="punctuation injected">=</span> <span class="struct injected">Foo</span><span class="punctuation injected">::</span><span class="function injected">new</span><span class="punctuation injected">(</span><span class="punctuation injected">)</span><span class="punctuation injected">.</span><span class="function injected">bar</span><span class="punctuation injected">(</span><span class="punctuation injected">)</span><span class="punctuation injected">;</span><span class="punctuation injected">
84-
</span> <span class="comment documentation">/// ```</span>
83+
<span class="comment documentation">/// </span><span class="keyword injected">let</span><span class="generic injected"> </span><span class="variable declaration injected">foobar</span><span class="generic injected"> = </span><span class="struct injected">Foo</span><span class="generic injected">::</span><span class="function injected">new</span><span class="generic injected">().</span><span class="function injected">bar</span><span class="generic injected">();</span>
84+
<span class="comment documentation">/// ```</span>
8585
<span class="comment documentation">///</span>
8686
<span class="comment documentation">/// ```sh</span>
8787
<span class="comment documentation">/// echo 1</span>
8888
<span class="comment documentation">/// ```</span>
89-
<span class="keyword">pub</span> <span class="keyword">fn</span> <span class="function declaration">foo</span><span class="punctuation">(</span><span class="punctuation">&</span><span class="self_keyword">self</span><span class="punctuation">)</span> <span class="punctuation">-&gt;</span> <span class="builtin_type">bool</span> <span class="punctuation">{</span>
89+
<span class="keyword">pub</span> <span class="keyword">fn</span> <span class="function declaration">foo</span>(&<span class="self_keyword">self</span>) -&gt; <span class="builtin_type">bool</span> {
9090
<span class="bool_literal">true</span>
91-
<span class="punctuation">}</span>
92-
<span class="punctuation">}</span>
91+
}
92+
}
9393

9494
<span class="comment documentation">/// ```</span>
95-
<span class="comment documentation">/// </span><span class="macro injected">noop!</span><span class="punctuation injected">(</span><span class="numeric_literal injected">1</span><span class="punctuation injected">)</span><span class="punctuation injected">;</span><span class="punctuation injected">
96-
</span><span class="comment documentation">/// ```</span>
97-
<span class="macro">macro_rules!</span> <span class="macro declaration">noop</span> <span class="punctuation">{</span>
98-
<span class="punctuation">(</span><span class="punctuation">$</span>expr<span class="punctuation">:</span>expr<span class="punctuation">)</span> <span class="punctuation">=</span><span class="punctuation">&gt;</span> <span class="punctuation">{</span>
99-
<span class="punctuation">$</span>expr
100-
<span class="punctuation">}</span>
101-
<span class="punctuation">}</span></code></pre>
95+
<span class="comment documentation">/// </span><span class="macro injected">noop!</span><span class="generic injected">(</span><span class="numeric_literal injected">1</span><span class="generic injected">);</span>
96+
<span class="comment documentation">/// ```</span>
97+
<span class="macro">macro_rules!</span> <span class="macro declaration">noop</span> {
98+
($expr:expr) =&gt; {
99+
$expr
100+
}
101+
}</code></pre>

crates/ra_ide/src/snapshots/highlight_injection.html

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@
3434
.keyword.unsafe { color: #BC8383; font-weight: bold; }
3535
.control { font-style: italic; }
3636
</style>
37-
<pre><code><span class="keyword">fn</span> <span class="function declaration">fixture</span><span class="punctuation">(</span><span class="variable declaration">ra_fixture</span><span class="punctuation">:</span> <span class="punctuation">&</span><span class="builtin_type">str</span><span class="punctuation">)</span> <span class="punctuation">{</span><span class="punctuation">}</span>
37+
<pre><code><span class="keyword">fn</span> <span class="function declaration">fixture</span>(<span class="variable declaration">ra_fixture</span>: &<span class="builtin_type">str</span>) {}
3838

39-
<span class="keyword">fn</span> <span class="function declaration">main</span><span class="punctuation">(</span><span class="punctuation">)</span> <span class="punctuation">{</span>
40-
<span class="function">fixture</span><span class="punctuation">(</span><span class="string_literal">r#"</span>
41-
<span class="keyword">trait</span> <span class="trait declaration">Foo</span> <span class="punctuation">{</span>
42-
<span class="keyword">fn</span> <span class="function declaration">foo</span><span class="punctuation">(</span><span class="punctuation">)</span> <span class="punctuation">{</span>
43-
<span class="macro">println!</span><span class="punctuation">(</span><span class="string_literal">"2 + 2 = {}"</span><span class="punctuation">,</span> <span class="numeric_literal">4</span><span class="punctuation">)</span><span class="punctuation">;</span>
44-
<span class="punctuation">}</span>
45-
<span class="punctuation">}</span><span class="string_literal">"#</span>
46-
<span class="punctuation">)</span><span class="punctuation">;</span>
47-
<span class="punctuation">}</span></code></pre>
39+
<span class="keyword">fn</span> <span class="function declaration">main</span>() {
40+
<span class="function">fixture</span>(<span class="string_literal">r#"</span>
41+
<span class="keyword">trait</span> <span class="trait declaration">Foo</span> {
42+
<span class="keyword">fn</span> <span class="function declaration">foo</span>() {
43+
<span class="macro">println!</span>(<span class="string_literal">"2 + 2 = {}"</span>, <span class="numeric_literal">4</span>);
44+
}
45+
}<span class="string_literal">"#</span>
46+
);
47+
}</code></pre>

0 commit comments

Comments
 (0)