/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Workspaces/SharedUtilitiesAndExtensions/Compiler/VisualBasic/Extensions/SyntaxTriviaExtensions.vb
67 строк
3 KB
Manish Vasani
Add IDE analyzer for unnecessary pragma suppressions
04 июн 2020, 16:50
04 июн 2020, 16:50
053d5ac
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports System.Runtime.CompilerServices Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Namespace Microsoft.CodeAnalysis.VisualBasic.Extensions Friend Module SyntaxTriviaExtensions <Extension()> Public Function IsKind(trivia As SyntaxTrivia, kind1 As SyntaxKind, kind2 As SyntaxKind) As Boolean Return trivia.Kind = kind1 OrElse trivia.Kind = kind2 End Function <Extension()> Public Function IsKind(trivia As SyntaxTrivia, kind1 As SyntaxKind, kind2 As SyntaxKind, kind3 As SyntaxKind) As Boolean Return trivia.Kind = kind1 OrElse trivia.Kind = kind2 OrElse trivia.Kind = kind3 End Function <Extension> Public Function IsWhitespaceOrEndOfLine(trivia As SyntaxTrivia) As Boolean Return trivia.IsWhitespace() OrElse trivia.IsEndOfLine() End Function <Extension> Public Function IsWhitespace(trivia As SyntaxTrivia) As Boolean Return trivia.Kind = SyntaxKind.WhitespaceTrivia End Function <Extension> Public Function IsEndOfLine(trivia As SyntaxTrivia) As Boolean Return trivia.Kind = SyntaxKind.EndOfLineTrivia End Function <Extension> Public Function IsRegularOrDocComment(trivia As SyntaxTrivia) As Boolean Return trivia.Kind = SyntaxKind.CommentTrivia OrElse trivia.Kind = SyntaxKind.DocumentationCommentTrivia End Function <Extension()> Public Function IsPragmaDirective(trivia As SyntaxTrivia, ByRef isDisable As Boolean, ByRef isActive As Boolean, ByRef errorCodes As SeparatedSyntaxList(Of SyntaxNode)) As Boolean Select Case trivia.Kind() Case SyntaxKind.DisableWarningDirectiveTrivia Dim pragmaWarning = DirectCast(trivia.GetStructure(), DisableWarningDirectiveTriviaSyntax) errorCodes = pragmaWarning.ErrorCodes isDisable = True isActive = True Return True Case SyntaxKind.EnableWarningDirectiveTrivia Dim pragmaWarning = DirectCast(trivia.GetStructure(), EnableWarningDirectiveTriviaSyntax) errorCodes = pragmaWarning.ErrorCodes isDisable = False isActive = True Return True End Select errorCodes = Nothing isDisable = False isActive = False Return False End Function End Module End Namespace