Skip to content

Commit fa0d0bf

Browse files
committed
Add testing of foreign item highlighting
1 parent b4cddc0 commit fa0d0bf

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

crates/ide/src/syntax_highlighting/test_data/highlighting.html

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,4 +248,20 @@
248248
<span class="brace">}</span>
249249

250250
<span class="keyword unsafe">unsafe</span> <span class="keyword">trait</span> <span class="trait declaration unsafe">Dangerous</span> <span class="brace">{</span><span class="brace">}</span>
251-
<span class="keyword">impl</span> <span class="trait unsafe">Dangerous</span> <span class="keyword">for</span> <span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span></code></pre>
251+
<span class="keyword">impl</span> <span class="trait unsafe">Dangerous</span> <span class="keyword">for</span> <span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
252+
253+
<span class="keyword">fn</span> <span class="function declaration">use_foo_items</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span>
254+
<span class="keyword">let</span> <span class="variable declaration">bob</span> <span class="operator">=</span> <span class="module foreign">foo</span><span class="operator">::</span><span class="struct foreign">Person</span> <span class="brace">{</span>
255+
<span class="field foreign">name</span><span class="colon">:</span> <span class="string_literal">"Bob"</span><span class="comma">,</span>
256+
<span class="field foreign">age</span><span class="colon">:</span> <span class="module foreign">foo</span><span class="operator">::</span><span class="module foreign">consts</span><span class="operator">::</span><span class="constant foreign">NUMBER</span><span class="comma">,</span>
257+
<span class="brace">}</span><span class="semicolon">;</span>
258+
259+
<span class="keyword">let</span> <span class="variable declaration">control_flow</span> <span class="operator">=</span> <span class="module foreign">foo</span><span class="operator">::</span><span class="function foreign">identity</span><span class="parenthesis">(</span><span class="module foreign">foo</span><span class="operator">::</span><span class="enum foreign">ControlFlow</span><span class="operator">::</span><span class="enum_variant foreign">Continue</span><span class="parenthesis">)</span><span class="semicolon">;</span>
260+
261+
<span class="keyword control">if</span> <span class="keyword">let</span> <span class="module foreign">foo</span><span class="operator">::</span><span class="enum foreign">ControlFlow</span><span class="operator">::</span><span class="enum_variant foreign">Die</span> <span class="operator">=</span> <span class="variable">control_flow</span> <span class="brace">{</span>
262+
foo::<span class="macro">die!</span><span class="parenthesis">(</span><span class="parenthesis">)</span><span class="semicolon">;</span>
263+
<span class="brace">}</span>
264+
<span class="brace">}</span>
265+
266+
267+
</code></pre>

crates/ide/src/syntax_highlighting/tests.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use crate::{fixture, FileRange, HlTag, TextRange};
1010
fn test_highlighting() {
1111
check_highlighting(
1212
r#"
13+
//- /main.rs crate:main deps:foo
1314
use inner::{self as inner_mod};
1415
mod inner {}
1516
@@ -222,6 +223,43 @@ async fn async_main() {
222223
223224
unsafe trait Dangerous {}
224225
impl Dangerous for () {}
226+
227+
fn use_foo_items() {
228+
let bob = foo::Person {
229+
name: "Bob",
230+
age: foo::consts::NUMBER,
231+
};
232+
233+
let control_flow = foo::identity(foo::ControlFlow::Continue);
234+
235+
if let foo::ControlFlow::Die = control_flow {
236+
foo::die!();
237+
}
238+
}
239+
240+
241+
//- /foo.rs crate:foo
242+
pub struct Person {
243+
pub name: &'static str,
244+
pub age: u8,
245+
}
246+
247+
pub enum ControlFlow {
248+
Continue,
249+
Die,
250+
}
251+
252+
pub fn identity<T>(x: T) -> T { x }
253+
254+
pub mod consts {
255+
pub const NUMBER: i64 = 92;
256+
}
257+
258+
macro_rules! die {
259+
() => {
260+
panic!();
261+
};
262+
}
225263
"#
226264
.trim(),
227265
expect_file!["./test_data/highlighting.html"],

0 commit comments

Comments
 (0)