MCPcopy Create free account
hub / github.com/microsoft/typescript-go / parseJSDocLink

Method parseJSDocLink

internal/parser/jsdoc.go:714–740  ·  view source on GitHub ↗
(start int)

Source from the content-addressed store, hash-verified

712}
713
714func (p *Parser) parseJSDocLink(start int) *ast.Node {
715 state := p.mark()
716 linkType, ok := p.parseJSDocLinkPrefix()
717 if !ok {
718 p.rewind(state)
719 return nil
720 }
721 p.nextTokenJSDoc()
722 // start at token after link, then skip any whitespace
723 p.skipWhitespace()
724 name := p.parseJSDocLinkName()
725 var text []string
726 for p.token != ast.KindCloseBraceToken && p.token != ast.KindNewLineTrivia && p.token != ast.KindEndOfFile {
727 text = append(text, p.scanner.TokenText())
728 p.nextTokenJSDoc() // Couldn't this be nextTokenCommentJSDoc?
729 }
730 var create *ast.Node
731 switch linkType {
732 case "link":
733 create = p.factory.NewJSDocLink(name, text)
734 case "linkcode":
735 create = p.factory.NewJSDocLinkCode(name, text)
736 default:
737 create = p.factory.NewJSDocLinkPlain(name, text)
738 }
739 return p.finishNodeWithEnd(create, start, p.scanner.TokenEnd())
740}
741
742func (p *Parser) parseJSDocLinkName() *ast.Node {
743 if tokenIsIdentifierOrKeyword(p.token) {

Callers 2

parseTagCommentsMethod · 0.95

Calls 13

markMethod · 0.95
parseJSDocLinkPrefixMethod · 0.95
rewindMethod · 0.95
nextTokenJSDocMethod · 0.95
skipWhitespaceMethod · 0.95
parseJSDocLinkNameMethod · 0.95
finishNodeWithEndMethod · 0.95
TokenTextMethod · 0.80
NewJSDocLinkMethod · 0.80
NewJSDocLinkCodeMethod · 0.80
NewJSDocLinkPlainMethod · 0.80
TokenEndMethod · 0.80

Tested by

no test coverage detected