Slice out the line associated with a tag.

This commit is contained in:
Patrick Thomson 2020-03-10 20:39:04 -04:00
parent 4996cbe830
commit d798bd6bd9
2 changed files with 7 additions and 1 deletions

View file

@ -56,5 +56,6 @@ fn test_tags_python() {
);
assert_eq!(tags[0].docs.as_ref().unwrap(), "Data about a customer");
assert_eq!(tags[0].line, "class Customer:");
assert_eq!(tags[1].docs.as_ref().unwrap(), "Get the customer's age");
}

View file

@ -224,6 +224,11 @@ where
let config = &self.config;
let tag_from_node = |node: Node, kind: TagKind| -> Option<Tag> {
let name = str::from_utf8(&source[name_node?.byte_range()]).ok()?;
let mut line_range = node.byte_range();
if line_range.len() > 180 {
line_range.end = line_range.start + 180;
}
let line = str::from_utf8(&source[line_range]).ok()?.lines().next()?;
let docs = doc_node
.and_then(|n| str::from_utf8(&source[n.byte_range()]).ok())
.map(|s| {
@ -235,7 +240,7 @@ where
});
Some(Tag {
name,
line: "TODO",
line,
loc: loc_for_node(node),
kind: kind,
docs,