]> git.lizzy.rs Git - rust.git/commitdiff
Add testing of foreign item highlighting
authorAramis Razzaghipour <aramisnoah@gmail.com>
Mon, 24 May 2021 03:16:08 +0000 (13:16 +1000)
committerAramis Razzaghipour <aramisnoah@gmail.com>
Mon, 24 May 2021 04:54:16 +0000 (14:54 +1000)
crates/ide/src/syntax_highlighting/test_data/highlighting.html
crates/ide/src/syntax_highlighting/tests.rs

index 878431b56a081dce08deb2b8519e03ae57c5b132..e65dd3ff9177b760189d3dd50dd20603f4ca82a9 100644 (file)
@@ -248,4 +248,20 @@ pre                 { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
 <span class="brace">}</span>
 
 <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>
-<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>
\ No newline at end of file
+<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>
+
+<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>
+    <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>
+        <span class="field foreign">name</span><span class="colon">:</span> <span class="string_literal">"Bob"</span><span class="comma">,</span>
+        <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>
+    <span class="brace">}</span><span class="semicolon">;</span>
+
+    <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>
+
+    <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>
+        foo::<span class="macro">die!</span><span class="parenthesis">(</span><span class="parenthesis">)</span><span class="semicolon">;</span>
+    <span class="brace">}</span>
+<span class="brace">}</span>
+
+
+</code></pre>
\ No newline at end of file
index 9ce26e930eb7becf3ea7a716030ea216335690a7..be4447ebbf4c64d33825cd3be01e0575b1f90864 100644 (file)
@@ -10,6 +10,7 @@
 fn test_highlighting() {
     check_highlighting(
         r#"
+//- /main.rs crate:main deps:foo
 use inner::{self as inner_mod};
 mod inner {}
 
@@ -222,6 +223,43 @@ async fn async_main() {
 
 unsafe trait Dangerous {}
 impl Dangerous for () {}
+
+fn use_foo_items() {
+    let bob = foo::Person {
+        name: "Bob",
+        age: foo::consts::NUMBER,
+    };
+
+    let control_flow = foo::identity(foo::ControlFlow::Continue);
+
+    if let foo::ControlFlow::Die = control_flow {
+        foo::die!();
+    }
+}
+
+
+//- /foo.rs crate:foo
+pub struct Person {
+    pub name: &'static str,
+    pub age: u8,
+}
+
+pub enum ControlFlow {
+    Continue,
+    Die,
+}
+
+pub fn identity<T>(x: T) -> T { x }
+
+pub mod consts {
+    pub const NUMBER: i64 = 92;
+}
+
+macro_rules! die {
+    () => {
+        panic!();
+    };
+}
 "#
         .trim(),
         expect_file!["./test_data/highlighting.html"],