in playground/src/SyntaxStyler/DocNodeSyntaxStyler.ts [58:216]
public static _getStylesForDocCommentInternal(
styles: IStyledRange[],
options: IGetStylesForDocCommentInternalOptions
): void {
const { docNode, parserContext, styleTokens, theme }: IGetStylesForDocCommentInternalOptions = options;
if (docNode instanceof tsdoc.DocExcerpt) {
// Match the context against a color (i.e. tsdoc.link.url)
switch (docNode.excerptKind) {
case 'CodeSpan_ClosingDelimiter':
case 'CodeSpan_OpeningDelimiter':
case 'DeclarationReference_ImportHash':
case 'DocMemberSymbol_LeftBracket':
case 'DocMemberSymbol_RightBracket':
case 'FencedCode_ClosingFence':
case 'FencedCode_OpeningFence':
case 'HtmlAttribute_Equals':
case 'HtmlEndTag_ClosingDelimiter':
case 'HtmlEndTag_OpeningDelimiter':
case 'HtmlStartTag_ClosingDelimiter':
case 'HtmlStartTag_OpeningDelimiter':
case 'InlineTag_ClosingDelimiter':
case 'InlineTag_OpeningDelimiter':
case 'LinkTag_Pipe':
case 'MemberIdentifier_LeftQuote':
case 'MemberIdentifier_RightQuote':
case 'MemberReference_Colon':
case 'MemberReference_Dot':
case 'MemberReference_LeftParenthesis':
case 'MemberReference_RightParenthesis':
case 'ParamBlock_Hyphen': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'delimiter']
});
break;
}
case 'InlineTag_TagName':
case 'BlockTag': {
const tagDefinition:
| tsdoc.TSDocTagDefinition
| undefined = parserContext.configuration.tryGetTagDefinition(docNode.content.toString());
DocNodeSyntaxStyler._addStylesForTag(styles, docNode.content, tagDefinition, {
theme,
styleTokens: [...styleTokens, 'tag']
});
break;
}
case 'MemberIdentifier_Identifier': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'member', 'identifier']
});
break;
}
case 'DeclarationReference_PackageName': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'packageName']
});
break;
}
case 'DeclarationReference_ImportPath': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'importPath']
});
break;
}
case 'LinkTag_UrlDestination': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'url']
});
break;
}
case 'CodeSpan_Code':
case 'FencedCode_Code': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'code']
});
break;
}
case 'FencedCode_Language': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'language']
});
break;
}
case 'HtmlEndTag_Name':
case 'HtmlStartTag_Name': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'element', 'name']
});
break;
}
case 'HtmlAttribute_Name': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'element', 'attribute', 'name']
});
break;
}
case 'HtmlAttribute_Value': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'element', 'attribute', 'value']
});
break;
}
case 'ErrorText': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'error']
});
break;
}
case 'EscapedText': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'escaped']
});
break;
}
case 'MemberSelector': {
DocNodeSyntaxStyler._addTokenStyles(styles, docNode.content, {
theme,
styleTokens: [...styleTokens, 'member', 'selector']
});
break;
}
}
}
for (const child of docNode.getChildNodes()) {
DocNodeSyntaxStyler._getStylesForDocCommentInternal(styles, {
...options,
parentNode: docNode,
docNode: child
});
}
}