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