Roslyn 中的 VisitClassDeclaration 节点.Identifier

发布于 2024-12-12 08:12:21 字数 23 浏览 2 评论 0原文

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

How can I find what line number in the source file the declaration was found on?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魄砕の薆 2024-12-19 08:12:21

免责声明:我在 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;

从标题来看,您似乎是从 SyntaxNode 开始的,因此您可以直接使用 Span 属性。

Disclaimer: I work for Microsoft on the Roslyn team.

You can use the ISyntaxTree.GetLineSpan() method to convert to a line number. For example, given an ISymbol "symbol", you can get the start location of the first definition with:

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

From the title, it looks like you're starting with a SyntaxNode, so you can just use the Span property directly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文