private static void AppendConstantBuffer(this ICollection<SymbolMarkupToken> markup, ConstantBufferSymbol symbol) { markup.AppendPlainText("(constant buffer)"); markup.AppendSpace(); markup.AppendName(SymbolMarkupKind.ConstantBufferVariableName, symbol.Name); }
private static void AppendSemantic(this ICollection<SymbolMarkupToken> markup, SemanticSymbol symbol) { markup.AppendPlainText("(semantic)"); markup.AppendSpace(); markup.AppendName(SymbolMarkupKind.SemanticName, symbol.Name); }
private static void AppendFieldSymbolInfo(this ICollection<SymbolMarkupToken> markup, FieldSymbol symbol) { markup.AppendPlainText("(field)"); markup.AppendSpace(); markup.AppendType(symbol.ValueType, true); markup.AppendSpace(); markup.AppendType((TypeSymbol) symbol.Parent, false); markup.AppendPunctuation("."); markup.AppendName(SymbolMarkupKind.FieldName, symbol.Name); }
private static void AppendVariableSymbolInfo(this ICollection<SymbolMarkupToken> markup, VariableSymbol symbol) { VariableType variableType; if (symbol.Parent == null) variableType = VariableType.Global; else if (symbol.Parent.Kind == SymbolKind.ConstantBuffer) variableType = VariableType.ConstantBuffer; else variableType = VariableType.Local; switch (variableType) { case VariableType.Local: markup.AppendPlainText("(local variable)"); break; case VariableType.ConstantBuffer: markup.AppendPlainText("(constant buffer variable)"); break; case VariableType.Global: markup.AppendPlainText("(global variable)"); break; default: throw new ArgumentOutOfRangeException(); } markup.AppendSpace(); markup.AppendType(symbol.ValueType, true); markup.AppendSpace(); switch (variableType) { case VariableType.Local: markup.AppendName(SymbolMarkupKind.LocalVariableName, symbol.Name); break; case VariableType.ConstantBuffer: markup.AppendName(SymbolMarkupKind.ConstantBufferVariableName, symbol.Name); break; case VariableType.Global: markup.AppendName(SymbolMarkupKind.GlobalVariableName, symbol.Name); break; default: throw new ArgumentOutOfRangeException(); } }
private static void AppendParameterSymbolInfo(this ICollection<SymbolMarkupToken> markup, ParameterSymbol symbol, bool includeInfo) { if (includeInfo) { markup.AppendPlainText("(parameter)"); markup.AppendSpace(); } if (symbol.Direction == ParameterDirection.Inout) { markup.AppendKeyword("inout"); markup.AppendSpace(); } else if (symbol.Direction == ParameterDirection.Out) { markup.AppendKeyword("out"); markup.AppendSpace(); } markup.AppendType(symbol.ValueType, false); markup.AppendSpace(); markup.AppendParameterName(symbol.Name); }