如何在源文件中找到声明所在的行号?
问问题
928 次
1 回答
7
免责声明:我在 Microsoft 的 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;
从标题看,您似乎是从 a 开始的SyntaxNode
,因此您可以直接使用该Span
属性。
于 2011-10-26T20:02:48.170 回答