我已经定义了一些分析器和代码修复提供程序,并希望在 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