提交 4d81e8bb 编写于 作者: N Nick Cameron

Use Config::full_docs to trim documentation

上级 84d93a4e
......@@ -41,7 +41,7 @@
use syntax::codemap::Spanned;
use syntax_pos::*;
use {escape, generated_code, SaveContext, PathCollector, docs_for_attrs, lower_attributes, Dump};
use {escape, generated_code, SaveContext, PathCollector, lower_attributes, Dump};
use span_utils::SpanUtils;
use sig;
......@@ -531,7 +531,7 @@ fn process_assoc_const(&mut self,
parent: Some(::id_from_def_id(parent_id)),
children: vec![],
decl_id: None,
docs: docs_for_attrs(attrs),
docs: self.save_ctxt.docs_for_attrs(attrs),
sig,
attributes: lower_attributes(attrs.to_owned(), &self.save_ctxt),
});
......@@ -580,7 +580,7 @@ fn process_struct(&mut self,
parent: None,
children: fields,
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.save_ctxt.docs_for_attrs(&item.attrs),
sig: sig::item_signature(item, &self.save_ctxt),
attributes: lower_attributes(item.attrs.clone(), &self.save_ctxt),
});
......@@ -637,7 +637,7 @@ fn process_enum(&mut self,
parent,
children: vec![],
decl_id: None,
docs: docs_for_attrs(&variant.node.attrs),
docs: self.save_ctxt.docs_for_attrs(&variant.node.attrs),
sig: sig::variant_signature(variant, &self.save_ctxt),
attributes: lower_attributes(variant.node.attrs.clone(),
&self.save_ctxt),
......@@ -671,7 +671,7 @@ fn process_enum(&mut self,
parent,
children: vec![],
decl_id: None,
docs: docs_for_attrs(&variant.node.attrs),
docs: self.save_ctxt.docs_for_attrs(&variant.node.attrs),
sig: sig::variant_signature(variant, &self.save_ctxt),
attributes: lower_attributes(variant.node.attrs.clone(),
&self.save_ctxt),
......@@ -742,7 +742,7 @@ fn process_trait(&mut self,
parent: None,
children,
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.save_ctxt.docs_for_attrs(&item.attrs),
sig: sig::item_signature(item, &self.save_ctxt),
attributes: lower_attributes(item.attrs.clone(), &self.save_ctxt),
});
......@@ -1039,7 +1039,7 @@ fn process_trait_item(&mut self, trait_item: &'l ast::TraitItem, trait_id: DefId
parent: Some(::id_from_def_id(trait_id)),
children: vec![],
decl_id: None,
docs: docs_for_attrs(&trait_item.attrs),
docs: self.save_ctxt.docs_for_attrs(&trait_item.attrs),
sig: sig::assoc_type_signature(trait_item.id,
trait_item.ident,
Some(bounds),
......@@ -1113,7 +1113,7 @@ fn visit_mod(&mut self, m: &'l ast::Mod, span: Span, attrs: &[ast::Attribute], i
children,
parent: None,
decl_id: None,
docs: docs_for_attrs(attrs),
docs: self.save_ctxt.docs_for_attrs(attrs),
sig: None,
attributes: lower_attributes(attrs.to_owned(), &self.save_ctxt),
});
......@@ -1250,7 +1250,7 @@ fn visit_item(&mut self, item: &'l ast::Item) {
parent: None,
children: vec![],
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.save_ctxt.docs_for_attrs(&item.attrs),
sig: sig::item_signature(item, &self.save_ctxt),
attributes: lower_attributes(item.attrs.clone(), &self.save_ctxt),
});
......
......@@ -160,7 +160,7 @@ pub fn get_extern_item_data(&self, item: &ast::ForeignItem) -> Option<Data> {
parent: None,
children: vec![],
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.docs_for_attrs(&item.attrs),
sig: sig::foreign_item_signature(item, self),
attributes: lower_attributes(item.attrs.clone(), self),
}))
......@@ -183,7 +183,7 @@ pub fn get_extern_item_data(&self, item: &ast::ForeignItem) -> Option<Data> {
parent: None,
children: vec![],
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.docs_for_attrs(&item.attrs),
sig: sig::foreign_item_signature(item, self),
attributes: lower_attributes(item.attrs.clone(), self),
}))
......@@ -207,7 +207,7 @@ pub fn get_item_data(&self, item: &ast::Item) -> Option<Data> {
parent: None,
children: vec![],
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.docs_for_attrs(&item.attrs),
sig: sig::item_signature(item, self),
attributes: lower_attributes(item.attrs.clone(), self),
}))
......@@ -236,7 +236,7 @@ pub fn get_item_data(&self, item: &ast::Item) -> Option<Data> {
parent: None,
children: vec![],
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.docs_for_attrs(&item.attrs),
sig: sig::item_signature(item, self),
attributes: lower_attributes(item.attrs.clone(), self),
}))
......@@ -259,7 +259,7 @@ pub fn get_item_data(&self, item: &ast::Item) -> Option<Data> {
parent: None,
children: vec![],
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.docs_for_attrs(&item.attrs),
sig: sig::item_signature(item, self),
attributes: lower_attributes(item.attrs.clone(), self),
}))
......@@ -283,7 +283,7 @@ pub fn get_item_data(&self, item: &ast::Item) -> Option<Data> {
parent: None,
children: m.items.iter().map(|i| id_from_node_id(i.id, self)).collect(),
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.docs_for_attrs(&item.attrs),
sig: sig::item_signature(item, self),
attributes: lower_attributes(item.attrs.clone(), self),
}))
......@@ -311,7 +311,7 @@ pub fn get_item_data(&self, item: &ast::Item) -> Option<Data> {
.map(|v| id_from_node_id(v.node.data.id(), self))
.collect(),
decl_id: None,
docs: docs_for_attrs(&item.attrs),
docs: self.docs_for_attrs(&item.attrs),
sig: sig::item_signature(item, self),
attributes: lower_attributes(item.attrs.to_owned(), self),
}))
......@@ -372,7 +372,7 @@ pub fn get_field_data(&self,
parent: Some(id_from_node_id(scope, self)),
children: vec![],
decl_id: None,
docs: docs_for_attrs(&field.attrs),
docs: self.docs_for_attrs(&field.attrs),
sig: sig::field_signature(field, self),
attributes: lower_attributes(field.attrs.clone(), self),
})
......@@ -417,7 +417,7 @@ pub fn get_method_data(&self,
result.push_str(">");
(result, trait_id, decl_id,
docs_for_attrs(&item.attrs),
self.docs_for_attrs(&item.attrs),
item.attrs.to_vec())
}
_ => {
......@@ -442,7 +442,7 @@ pub fn get_method_data(&self,
Some(Node::NodeItem(item)) => {
(format!("::{}", self.tcx.item_path_str(def_id)),
Some(def_id), None,
docs_for_attrs(&item.attrs),
self.docs_for_attrs(&item.attrs),
item.attrs.to_vec())
}
r => {
......@@ -771,6 +771,31 @@ fn lookup_ref_id(&self, ref_id: NodeId) -> Option<DefId> {
pub fn enclosing_scope(&self, id: NodeId) -> NodeId {
self.tcx.hir.get_enclosing_scope(id).unwrap_or(CRATE_NODE_ID)
}
fn docs_for_attrs(&self, attrs: &[Attribute]) -> String {
let mut result = String::new();
for attr in attrs {
if attr.check_name("doc") {
if let Some(val) = attr.value_str() {
if attr.is_sugared_doc {
result.push_str(&strip_doc_comment_decoration(&val.as_str()));
} else {
result.push_str(&val.as_str());
}
result.push('\n');
}
}
}
if !self.config.full_docs {
if let Some(index) = result.find("\n\n") {
result.truncate(index);
}
}
result
}
}
fn make_signature(decl: &ast::FnDecl, generics: &ast::Generics) -> String {
......@@ -847,25 +872,6 @@ fn visit_pat(&mut self, p: &ast::Pat) {
}
}
fn docs_for_attrs(attrs: &[Attribute]) -> String {
let mut result = String::new();
for attr in attrs {
if attr.check_name("doc") {
if let Some(val) = attr.value_str() {
if attr.is_sugared_doc {
result.push_str(&strip_doc_comment_decoration(&val.as_str()));
} else {
result.push_str(&val.as_str());
}
result.push('\n');
}
}
}
result
}
#[derive(Clone, Copy, Debug, RustcEncodable)]
pub enum Format {
Json,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册