XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.ServerInteractive

[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig

公开
关注 0 Fork 0 Star 0
UTF-8
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Text;

namespace XFEExtension.NetCore.ServerInteractive.SourceGenerator.Models;

/// <summary>
/// 轻量级位置信息,避免在增量生成器缓存中持有SyntaxTree引用
/// </summary>
public readonly struct LocationInfo(string filePath, TextSpan textSpan, LinePositionSpan lineSpan)
{
    public string FilePath { get; } = filePath;
    public TextSpan TextSpan { get; } = textSpan;
    public LinePositionSpan LineSpan { get; } = lineSpan;

    public static LocationInfo From(Location location)
    {
        var mappedSpan = location.GetMappedLineSpan();
        return new LocationInfo(
            mappedSpan.Path,
            location.SourceSpan,
            mappedSpan.Span);
    }

    public Location ToLocation()
    {
        return Location.Create(FilePath, TextSpan, LineSpan);
    }
}