【问题标题】:Tag @see in PhpStorm在 PhpStorm 中标记@see
【发布时间】:2014-08-20 09:13:51
【问题描述】:

我有以下代码:

class A {

    /**
     * Splitter for words
     *
     * @var null|string
     */
    private $splitter = '-';

    /**
     * Desc...
     *
     * @param null|string $splitter   @see $splitter
     */
    function __construct(
        $splitter = null
    ) {
      // implementation
    }

}

$a = new A();

当在PhpStorm 中使用CTRL+Q 来查看类构造函数的文档时,我会看到:

null|string $splitter @see $splitter

我做错了什么还是应该将 PhpStorm 配置为显示$splitter here 的描述。我希望这里显示Splitter for words 或链接到$splitter 成员,而不仅仅是@see $splitter

正如我所检查的那样,这两个变量具有相同的名称并不重要 - 即使构造函数参数名称为 $s PhpStorm 仍然显示 @see $splitter

【问题讨论】:

  • 首先: 内联时(就像你做的那样)PHPDoc 标签应该被{} 包围,就像这样:null|string $splitter {@see $splitter}其次:它仅在描述中起作用(或单独在单独的行中)。如果它位于 @param@return 描述中,则不会将其解析为标签 - 不确定这是错误还是应该是这种方式(需要检查实际的 PhpDocumentor 行为)。
  • “我希望这里显示Splitter for words——不。 @see 只是指向另一个元素的链接——它不应该以任何方式复制描述——github.com/phpDocumentor/fig-standards/blob/master/proposed/…
  • @LazyOne 好的,但我提到了or link to $splitter member。 PhpStorm 什么都不做,只显示原始文本
  • 你在第一条评论中读过我的“第二次”吗?
  • @LazyOne 是的,但我不知道它可以在这种情况下使用。所以你告诉我我应该这样说:@param null|string $splitter NEW_LINE {@see $splitter}?它似乎确实以这种方式工作 - PhpStorm 创建指向 $splitter 成员的链接

标签: php intellij-idea documentation phpstorm phpdoc


【解决方案1】:

首先:当内联时(就像你做的那样)PHPDoc 标签应该被{}包围,像这样:@param null|string $splitter {@see $splitter}

其次: PhpStorm 不会解析 @param@return 描述中的附加/行内标签——它仅在 @see 位于单独的行或如果在 -列在主要(方法)描述部分。换句话说:@param 描述中的内联将不起作用(非常很遗憾)。

在这方面 PhpStorm 的行为就像 PhpDocumentor 本身(使用版本 2.6.1 检查)。

代码:

<?php

class PHPDoc_See
{

    /**
     * Splitter for words
     *
     * @var null|string
     */
    private $splitter = '-';

    /**
     * Desc...  {@see $splitter}
     *
     * @param null|string $splitter Bla-Bla {@see $splitter}
     */
    function __construct($splitter = null)
    {
        // implementation
    }
}

PhpDocumentor 结果:

在这方面,PhpStorm 的表现要好一些——至少它在主要(方法)描述中解析 @see


唯一可行的解​​决方案(如我所见)是将@see 标签放在单独的行上:

/**
 * Some Description
 *
 * @param null|string $splitter Bla-Bla
 * @see $splitter
 */

当然:你可以随时PhpStorm's Issue Tracker提交功能请求票(我会投赞成票).. 但考虑到 PhpDocumentor 在这方面的表现.. 我非常怀疑 PhpStorm 开发人员是否会很快实现它(他们确实更喜欢遵循与引用工具相同的行为)。

【讨论】:

  • 我会接受你的回答,但还有一件事。如果您将@see $splitter 放在下一行,这将转到此方法文档末尾的See also 部分。但是如果你把{@see $splitter} 放在下一行,PhpStorm 将在描述之后创建指向 $splitter 属性的链接:null|string $splitter Bla-Bla $splitter(最后一个$splitter 是这里的链接)。所以在这种情况下,如果你使用{} 或不包围,会有很大的不同。它也是phpDoc标准吗?但是对我来说很奇怪你必须把它放在下一行才能在文档中创建链接。
  • 很遗憾,我无法就此类行为给您任何权威答案。我很惊讶它的工作原理是这样的,因为从技术上讲,第二行仍然是前一行的一部分(@param 描述的一部分)。在这方面,IDE 的行为与 PhpDocumentor 不同。我可能只建议提交一张票,要求从 IDE 方面获得更好/更完整的行为——至少你会从实际的 PhpStorm 开发人员那里得到官方答复。
  • 我已经为 phpStorm youtrack.jetbrains.com/issue/WI-24525 创建了问题,也许会在那里解释。
  • @LazyOne ha,对不起,我在错误的 SO 票上发表了这条评论>。
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 2012-05-09
  • 2013-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 2023-02-15
相关资源
最近更新 更多