/// <summary> /// /// </summary> /// <param name="characterString"></param> /// <param name="length"></param> /// <param name="textRunProperties"></param> /// <param name="token"></param> /// <param name="node"></param> /// <exception cref="InvalidOperationException"></exception> public SyntaxTokenTextCharacters(string characterString, int length, TextRunProperties textRunProperties, SyntaxToken token, SyntaxNode node) : base(characterString, 0, length, textRunProperties, token.Span) { Token = token; #if SUPPORTVB Microsoft.CodeAnalysis.VisualBasic.SyntaxKind kind; #endif SyntaxKind csKind; switch (token.Language) { #if SUPPORTVB case LanguageNames.VisualBasic: kind = VisualBasicExtensions.Kind(token); if (kind == Microsoft.CodeAnalysis.VisualBasic.SyntaxKind.None) { throw new AppInvalidOperationException(token.Span.ToString()); } break; #endif case LanguageNames.CSharp: csKind = Token.Kind(); if (csKind == SyntaxKind.None) { throw new InvalidOperationException(token.Span.ToString()); } break; } Node = node; }
public static IMetadataExtractor GetExtractor(string extension) { if (CSharpExtensions.Contains(extension)) { return(new CSharpMetadataExtractor()); } else if (VisualBasicExtensions.Contains(extension)) { throw new Exception($"Visual Basic is not yet supported by {nameof(Skaf)}"); } throw new Exception($"The extension '{extension}' was unrecognized."); }
public static bool HasAutoGeneratedComment(this SyntaxTree tree) { var root = tree.GetRoot(); if (root == null) { return(false); } var isCSharp = root is CompilationUnitSyntax; var firstToken = root.GetFirstToken(); SyntaxTriviaList trivia; if (firstToken == default(SyntaxToken)) { var token = isCSharp ? ((CompilationUnitSyntax)root).EndOfFileToken : ((Microsoft.CodeAnalysis.VisualBasic.Syntax.CompilationUnitSyntax)root).EndOfFileToken; if (!token.HasLeadingTrivia) { return(false); } trivia = token.LeadingTrivia; } else { if (!firstToken.HasLeadingTrivia) { return(false); } trivia = firstToken.LeadingTrivia; } if (isCSharp) { var commentLines = trivia.Where(t => t.IsKind(SyntaxKind.SingleLineCommentTrivia)).Take(2).ToList(); if (commentLines.Count != 2) { return(false); } return(commentLines[1].ToString() == "// <auto-generated>"); } else { var commentLines = trivia.Where(t => VisualBasicExtensions.IsKind(t, Microsoft.CodeAnalysis.VisualBasic.SyntaxKind.CommentTrivia)).Take(2).ToList(); if (commentLines.Count != 2) { return(false); } return(commentLines[1].ToString() == "' <auto-generated>"); } }