VS Intellisense:在悬停时显示缩进的多行代码示例

VS Intellisense: Show INDENTED multiline code example on hover-over

这样的事情可能吗?如果不清楚我在说什么,这里有一个详细的例子:

使用我几周前写的这个快速实用程序class(详细信息已省略),以及我想分享的示例:

public abstract class CommonOdinAttributesForOwnedType<TProperty, TParent> : OdinAttributeProcessor<TProperty>
{
    //snip
}

//EXAMPLE IMPLEMENTATION (Recommended to be nested inside MyBaseType):
protected class BoolAttributesInsideMyBaseType : CommonOdinAttributesForOwnedType<bool, MyBaseType>
{
    protected override List<Attribute> GetAdditionalAttributes()
    {
        return new List<Attribute>()
        {
            new ToggleLeftAttribute(), //add more desired attributes here
        };
    }
}

我在摘要上面有以下XMLclass:

/// <summary>
/// Gives ALL objects of type TProperty drawn within classes derived from TParent a requested list of 
/// Odin GUI attributes
/// <code>
/// //EXAMPLE IMPLEMENTATION (Recommended to be nested inside MyBaseType):
/// protected class BoolAttributesInsideMyBaseType : CommonOdinAttributesForOwnedType&lt;bool, MyBaseType&gt;
/// {
///     protected override List&lt;Attribute&gt; GetAdditionalAttributes()
///     {
///         return new List&lt;Attribute&gt;()
///         {
///             new ToggleLeftAttribute(), //add more desired attributes here
///         };
///     }
/// }
/// </code>
/// </summary>

现在,我可以发誓,当我最初创建 class 时,工具提示看起来就像我想要的那样......但也许我产生了幻觉。无论如何,在本周的重构期间(在此期间文件是 moved/renamed 并通过 ReSharper 的清理提供),我注意到 Intellisense 工具提示现在看起来像热垃圾:

在每行末尾添加 <br/> 只会有一点帮助:

...而且我一直无法找到一种方法来手动指定缩进,就像 <br/> 指定新行一样。我还尝试了 <remarks><example><para> 的多种组合以及嵌套块的各种方法,但没有任何效果。

所以:有没有办法(理想情况下)让 Visual Studio 2019 实际解析在 XML 文档 <code></code> 块中找到的空白,或者(除非)使用其他一些手动添加缩进的块,我用 <br/> 手动添加新行的方式?我看了又看,也找不到办法。

VS Intellisense: Show INDENTED multiline code example on hover-over

恐怕得不到你想要的

实际上,vs xml文档没有保持代码样式格式的能力。

summary xml node下,不能保持代码格式。您必须手动更改格式。使用一些代码来更改显示的样式。

Is there any way to (ideally) get Visual Studio 2019 to actually parse whitespace found inside an XML documentation <code></code> block

换行可以用<br/><para/>但是无法缩进第一行。 Html格式化方法、间距、空格等都不行。

其实,这是一个缺陷---xmlvs的文档没有缩进行保持代码风格的能力。

到此为止,我们只能做你做的事情了。

此外,如果您仍然想要该功能,您可以在 our User Voice Forumsuggest a feature,团队会仔细考虑您的问题,我希望他们会给您一个满意的答复。

对于它的价值 - 我已经能够通过 copy/pasting Unicode 字符 u2800(盲文模式空白字符)缩进 XML 文档中的源代码(至少在 VS 2022 上)。

其他版本的Visual Studio我还没有试过。 不幸的是,空白字符的宽度与其余等宽字符的宽度不同(至少对于我通常使用的字体,即Office CodePro Light),所以你可以'依靠这个角色来创建漂亮的 ascii-block 图表,在编辑器和 hover-over Intellisense 视图上看起来都不错)

为了方便,字符可以复制到这里(单引号之间):

'⠀'

好的,我想我找到了正确的方法来使用简单的空格来格式化文档中的代码。诀窍在于使用以下 XML 结构:

/// <remarks>
/// <example>
/// <code>
/// private async Task SomeOperationAsync() {
///     // this will be properly indented
///     await DoAsync();
/// }
/// </code>
/// </example>
/// </remarks>

编辑:这似乎是在 Visual Studio 2022 的更新中引入的(可能是 v.17.1)在我的 Visual Studio 2019(上次更新是 16.11.6)上它不起作用。