Chromium Code Reviews| Index: utils/dartdoc/dartdoc.dart |
| diff --git a/utils/dartdoc/dartdoc.dart b/utils/dartdoc/dartdoc.dart |
| index 01ba7a0b975f293d3b40aa4242f209c2de953a8f..ceeea47d5ec63136ba17fc2a891931cd7540c7c5 100644 |
| --- a/utils/dartdoc/dartdoc.dart |
| +++ b/utils/dartdoc/dartdoc.dart |
| @@ -104,7 +104,9 @@ class Dartdoc { |
| md.InlineParser.syntaxes.insertRange(0, 1, |
| new md.CodeSyntax(@'\[\:((?:.|\n)*?)\:\]')); |
| - md.setImplicitLinkResolver(resolveNameReference); |
| + md.setImplicitLinkResolver((name) => resolveNameReference(name, |
| + currentLibrary: _currentLibrary, currentType: _currentType, |
| + currentMember: _currentMember)); |
| } |
| document(String entrypoint) { |
| @@ -780,7 +782,8 @@ class Dartdoc { |
| * brackets. It will try to figure out what the name refers to and link or |
| * style it appropriately. |
| */ |
| - md.Node resolveNameReference(String name) { |
| + md.Node resolveNameReference(String name, [Member currentMember = null, |
|
Bob Nystrom
2012/01/09 22:48:20
I wouldn't use "current", just "member", "type" an
|
| + Type currentType = null, Library currentLibrary = null]) { |
| makeLink(String href) { |
| final anchor = new md.Element.text('a', name); |
| anchor.attributes['href'] = relativePath(href); |
| @@ -803,8 +806,8 @@ class Dartdoc { |
| } |
| // See if it's a parameter of the current method. |
| - if (_currentMember != null) { |
| - for (final parameter in _currentMember.parameters) { |
| + if (currentMember != null) { |
| + for (final parameter in currentMember.parameters) { |
| if (parameter.name == name) { |
| final element = new md.Element.text('span', name); |
| element.attributes['class'] = 'param'; |
| @@ -814,22 +817,22 @@ class Dartdoc { |
| } |
| // See if it's another member of the current type. |
| - if (_currentType != null) { |
| - final member = findMember(_currentType); |
| + if (currentType != null) { |
| + final member = findMember(currentType); |
| if (member != null) { |
| return makeLink(memberUrl(member)); |
| } |
| } |
| // See if it's another type in the current library. |
| - if (_currentLibrary != null) { |
| - final type = _currentLibrary.types[name]; |
| + if (currentLibrary != null) { |
| + final type = currentLibrary.types[name]; |
| if (type != null) { |
| return makeLink(typeUrl(type)); |
| } |
| // See if it's a top-level member in the current library. |
| - final member = findMember(_currentLibrary.topType); |
| + final member = findMember(currentLibrary.topType); |
| if (member != null) { |
| return makeLink(memberUrl(member)); |
| } |