VisitClassDeclaration节点.罗斯林的标识符

本文关键字:标识符 罗斯林 节点 VisitClassDeclaration | 更新日期: 2023-09-27 18:12:24

如何在源文件中找到声明所在的行号?

VisitClassDeclaration节点.罗斯林的标识符

免责声明:我在微软Roslyn团队工作。

可以使用ISyntaxTree.GetLineSpan()方法转换为行号。例如,给定一个ISymbol"符号",您可以使用以下命令获得第一个定义的起始位置:

var loc = symbol.Locations.First();
var lineSpan = loc.SourceTree.GetLineSpan(loc.SourceSpan, 
    usePreprocessorDirectives: false);
var line = lineSpan.StartLinePosition.Line;
var character = lineSpan.StartLinePosition.Character;

从标题来看,看起来你是从SyntaxNode开始的,所以你可以直接使用Span属性。