fix: doc url link type

This commit is contained in:
rainy-me 2022-05-05 00:41:29 +09:00
parent 0ee4e6a22d
commit 5f4351fbb6
4 changed files with 82 additions and 33 deletions

View file

@ -853,6 +853,23 @@ impl<'attr> AttrQuery<'attr> {
.iter()
.filter(move |attr| attr.path.as_ident().map_or(false, |s| s.to_smol_str() == key))
}
pub fn find_string_value_in_tt(self, key: &'attr str) -> Option<&SmolStr> {
if !self.exists() {
return None;
}
self.tt_values().find_map(|tt| {
let name = tt.token_trees.iter()
.skip_while(|tt| !matches!(tt, tt::TokenTree::Leaf(tt::Leaf::Ident(tt::Ident { text, ..} )) if text == key))
.nth(2);
match name {
Some(tt::TokenTree::Leaf(tt::Leaf::Literal(tt::Literal{ref text, ..}))) => Some(text),
_ => None
}
})
}
}
fn attrs_from_item_tree<N: ItemTreeNode>(id: ItemTreeId<N>, db: &dyn DefDatabase) -> RawAttrs {