private static CompletionItem CreateSymbolCompletion(Symbol symbol, SymbolMarkupToken nameSuffix = null) { var displayText = symbol.Name; var description = symbol.ToMarkup(); var descriptionTokens = description.Tokens; if (nameSuffix != null) { descriptionTokens = descriptionTokens.Add(nameSuffix); } if (!string.IsNullOrEmpty(symbol.Documentation)) { descriptionTokens = descriptionTokens.Add(new SymbolMarkupToken(SymbolMarkupKind.Whitespace, "\n")); descriptionTokens = descriptionTokens.Add(new SymbolMarkupToken(SymbolMarkupKind.PlainText, symbol.Documentation)); } var glyph = symbol.GetGlyph(); return(CommonCompletionItem.Create( displayText, CompletionItemRules.Default, glyph, descriptionTokens)); }
private Inline GetInline(SymbolMarkupToken markupToken) { switch (markupToken.Kind) { case SymbolMarkupKind.Keyword: return(GetClassifiedText(markupToken.Text, _classificationService.Keyword)); case SymbolMarkupKind.Punctuation: return(GetClassifiedText(markupToken.Text, _classificationService.Punctuation)); case SymbolMarkupKind.Whitespace: return(GetClassifiedText(markupToken.Text, _classificationService.WhiteSpace)); case SymbolMarkupKind.TableName: return(GetClassifiedText(markupToken.Text, _classificationService.SchemaTable)); case SymbolMarkupKind.CommonTableExpressionName: return(GetClassifiedText(markupToken.Text, _classificationService.CommonTableExpression)); case SymbolMarkupKind.ColumnName: return(GetClassifiedText(markupToken.Text, _classificationService.Column)); case SymbolMarkupKind.VariableName: return(GetClassifiedText(markupToken.Text, _classificationService.Variable)); case SymbolMarkupKind.ParameterName: return(GetClassifiedText(markupToken.Text, _classificationService.Identifier)); // TODO: Fix this case SymbolMarkupKind.FunctionName: return(GetClassifiedText(markupToken.Text, _classificationService.Function)); case SymbolMarkupKind.AggregateName: return(GetClassifiedText(markupToken.Text, _classificationService.Aggregate)); case SymbolMarkupKind.MethodName: return(GetClassifiedText(markupToken.Text, _classificationService.Method)); case SymbolMarkupKind.PropertyName: return(GetClassifiedText(markupToken.Text, _classificationService.Property)); case SymbolMarkupKind.TypeName: return(GetClassifiedText(markupToken.Text, _classificationService.Identifier)); // TODO: Fix this default: throw ExceptionBuilder.UnexpectedValue(markupToken.Kind); } }
private static void AppendNode(this StringBuilder sb, SymbolMarkupToken token, INQueryClassificationTypes classificationTypes, IHighlightingStyleRegistry highlightingStyleRegistry) { var classificationType = GetClassificationType(token.Kind, classificationTypes); sb.AppendText(token.Text, classificationType, highlightingStyleRegistry); }
private Inline GetInline(SymbolMarkupToken markupToken) { switch (markupToken.Kind) { case SymbolMarkupKind.Keyword: return GetClassifiedText(markupToken.Text, _classificationService.Keyword); case SymbolMarkupKind.Punctuation: return GetClassifiedText(markupToken.Text, _classificationService.Punctuation); case SymbolMarkupKind.Whitespace: return GetClassifiedText(markupToken.Text, _classificationService.WhiteSpace); case SymbolMarkupKind.LocalVariableName: return GetClassifiedText(markupToken.Text, _classificationService.LocalVariableIdentifier); case SymbolMarkupKind.ConstantBufferVariableName: return GetClassifiedText(markupToken.Text, _classificationService.ConstantBufferVariableIdentifier); case SymbolMarkupKind.GlobalVariableName: return GetClassifiedText(markupToken.Text, _classificationService.GlobalVariableIdentifier); case SymbolMarkupKind.ParameterName: return GetClassifiedText(markupToken.Text, _classificationService.ParameterIdentifier); case SymbolMarkupKind.FunctionName: return GetClassifiedText(markupToken.Text, _classificationService.FunctionIdentifier); case SymbolMarkupKind.MethodName: return GetClassifiedText(markupToken.Text, _classificationService.MethodIdentifier); case SymbolMarkupKind.FieldName: return GetClassifiedText(markupToken.Text, _classificationService.FieldIdentifier); case SymbolMarkupKind.IntrinsicTypeName: return GetClassifiedText(markupToken.Text, _classificationService.ClassIdentifier); case SymbolMarkupKind.ClassName: return GetClassifiedText(markupToken.Text, _classificationService.ClassIdentifier); case SymbolMarkupKind.StructName: return GetClassifiedText(markupToken.Text, _classificationService.StructIdentifier); case SymbolMarkupKind.ConstantBufferName: return GetClassifiedText(markupToken.Text, _classificationService.ConstantBufferIdentifier); case SymbolMarkupKind.InterfaceName: return GetClassifiedText(markupToken.Text, _classificationService.InterfaceIdentifier); case SymbolMarkupKind.NamespaceName: return GetClassifiedText(markupToken.Text, _classificationService.Identifier); case SymbolMarkupKind.SemanticName: return GetClassifiedText(markupToken.Text, _classificationService.Semantic); case SymbolMarkupKind.TechniqueName: return GetClassifiedText(markupToken.Text, _classificationService.Identifier); case SymbolMarkupKind.PlainText: return GetClassifiedText(markupToken.Text, _classificationService.Other); default: throw new ArgumentOutOfRangeException(nameof(markupToken.Kind)); } }
private Inline GetInline(SymbolMarkupToken markupToken) { switch (markupToken.Kind) { case SymbolMarkupKind.Keyword: return(GetClassifiedText(markupToken.Text, _classificationService.Keyword)); case SymbolMarkupKind.Punctuation: return(GetClassifiedText(markupToken.Text, _classificationService.Punctuation)); case SymbolMarkupKind.Whitespace: return(GetClassifiedText(markupToken.Text, _classificationService.WhiteSpace)); case SymbolMarkupKind.LocalVariableName: return(GetClassifiedText(markupToken.Text, _classificationService.LocalVariableIdentifier)); case SymbolMarkupKind.ConstantBufferVariableName: return(GetClassifiedText(markupToken.Text, _classificationService.ConstantBufferVariableIdentifier)); case SymbolMarkupKind.GlobalVariableName: return(GetClassifiedText(markupToken.Text, _classificationService.GlobalVariableIdentifier)); case SymbolMarkupKind.ParameterName: return(GetClassifiedText(markupToken.Text, _classificationService.ParameterIdentifier)); case SymbolMarkupKind.FunctionName: return(GetClassifiedText(markupToken.Text, _classificationService.FunctionIdentifier)); case SymbolMarkupKind.MethodName: return(GetClassifiedText(markupToken.Text, _classificationService.MethodIdentifier)); case SymbolMarkupKind.FieldName: return(GetClassifiedText(markupToken.Text, _classificationService.FieldIdentifier)); case SymbolMarkupKind.IntrinsicTypeName: return(GetClassifiedText(markupToken.Text, _classificationService.ClassIdentifier)); case SymbolMarkupKind.ClassName: return(GetClassifiedText(markupToken.Text, _classificationService.ClassIdentifier)); case SymbolMarkupKind.StructName: return(GetClassifiedText(markupToken.Text, _classificationService.StructIdentifier)); case SymbolMarkupKind.ConstantBufferName: return(GetClassifiedText(markupToken.Text, _classificationService.ConstantBufferIdentifier)); case SymbolMarkupKind.InterfaceName: return(GetClassifiedText(markupToken.Text, _classificationService.InterfaceIdentifier)); case SymbolMarkupKind.NamespaceName: return(GetClassifiedText(markupToken.Text, _classificationService.Identifier)); case SymbolMarkupKind.SemanticName: return(GetClassifiedText(markupToken.Text, _classificationService.Semantic)); case SymbolMarkupKind.TechniqueName: return(GetClassifiedText(markupToken.Text, _classificationService.Identifier)); case SymbolMarkupKind.PlainText: return(GetClassifiedText(markupToken.Text, _classificationService.Other)); default: throw new ArgumentOutOfRangeException(nameof(markupToken.Kind)); } }
private static bool IsAsKeyword(SymbolMarkupToken token) { return(token.Kind == SymbolMarkupKind.Keyword && SyntaxFacts.GetKeywordKind(token.Text) == SyntaxKind.AsKeyword); }
private static bool IsCommaToken(SymbolMarkupToken token) { return(token.Kind == SymbolMarkupKind.Punctuation && token.Text == @","); }