summary refs log tree commit diff
path: root/src/tools/rust-analyzer/crates/syntax
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2025-01-10 13:49:35 +0100
committerLukas Wirth <lukastw97@gmail.com>2025-01-10 13:49:35 +0100
commita006eaba7967774513023738d22a5bd372d96bbd (patch)
treee0fc9a2a54428f42a32109357ab46a78553d8759 /src/tools/rust-analyzer/crates/syntax
parentf513b27ed592cdde590b1a99a899fa525893560c (diff)
downloadrust-a006eaba7967774513023738d22a5bd372d96bbd.tar.gz
rust-a006eaba7967774513023738d22a5bd372d96bbd.zip
Re-implement rust string highlighting via tool attribute
Diffstat (limited to 'src/tools/rust-analyzer/crates/syntax')
-rw-r--r--src/tools/rust-analyzer/crates/syntax/src/ast/node_ext.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/syntax/src/ast/node_ext.rs b/src/tools/rust-analyzer/crates/syntax/src/ast/node_ext.rs
index 81c7e15bcbc..56f94b965e3 100644
--- a/src/tools/rust-analyzer/crates/syntax/src/ast/node_ext.rs
+++ b/src/tools/rust-analyzer/crates/syntax/src/ast/node_ext.rs
@@ -185,6 +185,14 @@ impl ast::Attr {
         Some((self.simple_name()?, tt))
     }
 
+    pub fn as_simple_path(&self) -> Option<ast::Path> {
+        let meta = self.meta()?;
+        if meta.eq_token().is_some() || meta.token_tree().is_some() {
+            return None;
+        }
+        self.path()
+    }
+
     pub fn simple_name(&self) -> Option<SmolStr> {
         let path = self.meta()?.path()?;
         match (path.segment(), path.qualifier()) {