Microsoft.CodeAnalysis.Editing.ImportAdderService.AddImportsAsync
方法仅访问非琐事语法节点,因此不会为它们添加命名空间导入。这导致了结果,使用Microsoft.CodeAnalysis.Simplification.Simplifier
时,xml文档注释中的cref无法简化为其短名称。
我遇到的最大问题是简化会导致结果不一致。假设您有多个cref,并且对于一个cref,您有一个名称空间导入(由于另一种类型引入,实际上在非琐事节点中使用)。然后,这一个cref缩短了,而其他的则没有。
澄清。
在应用ImportAdderService
和Simplifier
之前:
namespace Namespace
{
/// <summary>
/// <see cref=""System.Collections.IEnumerable"" />
/// <see cref=""System.Collections.Generic.IEnumerable{T}"" />.
/// </summary>
internal class MyDeclaration
{
System.Collections.IEnumerable Field;
}
}
应用ImportAdderService
和Simplifier
后:
using System.Collections;
namespace Namespace
{
/// <summary>
/// <see cref=""IEnumerable"" />
/// <see cref=""System.Collections.Generic.IEnumerable{T}"" />.
/// </summary>
internal class MyDeclaration
{
IEnumerable Field;
}
}
问题
我可以解决这个问题吗?我们肯定想为cref标签中引用的所有类型添加使用。
或者甚至是设计呢?
我想这确实是一个缺失的功能,告诉ImportAdderService
访问琐事语法节点。