0

我已经定义了一些分析器和代码修复提供程序,并希望在 Visual Basic 中找到死代码来清理我们的源代码。我目前正在努力寻找注释代码并确定它们是否是注释代码(死代码)而不是通常的注释。

典型的函数注释(也可以是多行注释,但在我们的代码库中很少见):

'''' <summary>
'''' This function is unused
'''' </summary>
'''' <returns></returns>
'Public Function IsUnusedFunction() As Boolean

'   ' This function always return true
'   Return True

'End Function

有人用 Roslyn 做到这一点吗?我希望我可以为我们的开发人员提供一些分析器和代码修复。

编辑

这是我现在的 DiagnosticAnalyzer 代码位:

Public Overrides Sub Initialize(pContext As AnalysisContext)

    pContext.RegisterSyntaxTreeAction(AddressOf AnalyzeSyntaxTree)

End Sub

Private Async Sub AnalyzeSyntaxTree(pContext As SyntaxTreeAnalysisContext)

    Dim lRoot As SyntaxNode = Await pContext.Tree.GetRootAsync(pContext.CancellationToken)
    Dim lCommentNodes = lRoot.DescendantTrivia().Where(Function(t) t.IsKind(SyntaxKind.CommentTrivia))

    'TODO: Do some logic here to find consecutives comments (ignoring empty line) to perform action

End Sub
4

0 回答 0