public WriteIdentifier ( Identifier identifier, object data ) : void | ||
identifier | Identifier | |
data | object | |
return | void |
public string Generate(ISymbol symbol) { if (symbol == null) throw new ArgumentNullException("symbol"); StringWriter writer = new StringWriter(); _writer = new TextWriterTokenWriter(writer); _policy = FormattingOptionsFactory.CreateMono(); TypeSystemAstBuilder astBuilder = CreateAstBuilder(); astBuilder.AlwaysUseShortTypeNames = true; AstNode node = astBuilder.ConvertSymbol(symbol); if (symbol is ITypeDefinition) { WriteTypeDeclarationName((ITypeDefinition)symbol, _writer, _policy); } else if (symbol is IMember) { WriteMemberDeclarationName((IMember)symbol, _writer, _policy); } else { _writer.WriteIdentifier(Identifier.Create(symbol.Name)); } if (HasParameters(symbol)) { _writer.WriteToken(symbol.SymbolKind == SymbolKind.Indexer ? Roles.LBracket : Roles.LPar, symbol.SymbolKind == SymbolKind.Indexer ? "[" : "("); IEnumerable<ParameterDeclaration> parameters = new List<ParameterDeclaration>(node.GetChildrenByRole(Roles.Parameter)); if (symbol is IMethod && ((IMethod)symbol).IsExtensionMethod) { parameters = parameters.Skip(1); } WriteCommaSeparatedList(parameters); _writer.WriteToken(symbol.SymbolKind == SymbolKind.Indexer ? Roles.RBracket : Roles.RPar, symbol.SymbolKind == SymbolKind.Indexer ? "]" : ")"); } if (_includePlaceholders) { _writer.WriteToken(Roles.Text, "$0"); } return writer.ToString(); }