Javascript 使用显示模块模式时,如何在eclipse中查看大纲?

Javascript 使用显示模块模式时,如何在eclipse中查看大纲?,javascript,eclipse,jsdoc,revealing-module-pattern,Javascript,Eclipse,Jsdoc,Revealing Module Pattern,我目前正在重构一些Javascript代码,除此之外,我还对其进行了修改,以利用显示模块模式。代码看起来更整洁,工作也很好,但是我在outline视图中再也看不到函数了。我将顶级名称空间变量视为一个变量,但您不能扩展它以查看其中的函数 让我们假设过去的代码是这样的: function myFunc1() {} function myFunc2() {} 在本例中,您可以在outline视图中看到这两个函数。但如果您将其更改为: var myNamespace = function() {

我目前正在重构一些Javascript代码,除此之外,我还对其进行了修改,以利用显示模块模式。代码看起来更整洁,工作也很好,但是我在outline视图中再也看不到函数了。我将顶级名称空间变量视为一个变量,但您不能扩展它以查看其中的函数

让我们假设过去的代码是这样的:

function myFunc1() {}
function myFunc2() {}
在本例中,您可以在outline视图中看到这两个函数。但如果您将其更改为:

var myNamespace = function()
{
  function myFunc1() {}
  function myFunc2() {}

  return {
    name: "myNamespace",
    myFunc1: myFunc1,
    myFunc2: myFunc2
  }
}();
然后outline视图只显示myNamespace变量。我已经尝试过查找,但找不到能够正确显示层次结构的视图。是否有人知道查看此内容的方法,或者这是eclipse无法做到的情况?

添加:

/**
 * @memberOf myNamespace
 */
在每个函数定义之前恢复层次结构

您将在此处找到更多有趣的标记来记录您的代码:

一种方法是如下所示调用它。 按原样定义,但不要自行执行。 确保原型是空对象,然后尝试调用它。 它的工作方式相同,但会恢复大纲,您不需要在每个函数前面添加注释

var myNamespace = (function()
{
  function myFunc1() {}
  function myFunc2() {}

  return {
    name: "myNamespace",
    myFunc1: myFunc1,
    myFunc2: myFunc2
  }
});
myNamespace.prototype = {};
myNamespace();
大纲中没有显示myFunc1()等,这似乎是一个在3.2中标记为已修复的错误。但是,它在4.2中没有固定。在处理包含数百个函数的非常大的文件时,这无疑是一个巨大的痛苦,并且只有var名称显示在大纲中。我祈祷它能修好

/** *@memberofmynamespace */ 不适合我。当我在myFunc1()上面添加这个时,它不会显示在大纲中,即使我关闭并打开该文件

有趣的是,我的20个左右的函数中有4个确实出现在大纲中,但是在有效函数和无效函数之间没有区别,除非有效函数中都有这个.xxx(但如果我将这个.dummy添加到不可见函数中,则没有帮助)

这个半成品: myNameSpace.prototype={}; myNameSpace

但是你不能这样调用它的函数:
myNameSpace.myFunc1()

我正在与eclipse/Kepler合作。使用上面的建议,我设法得到了大纲视图。但提案(Ctrl空格)不起作用。一些fn可见,一些不可见。没有要检测的模式


阅读后,我将所有@memberOf替换为@memberOf,现在一切正常('直到下一个问题出现…

非常感谢。两个月后,甚至没有人提出建议,所以这显然是一个棘手的问题。这就是我多年来一直在搜索的内容:)在我的PHP Neon中,默认JS支持似乎没有任何效果。。。还有什么应该知道的吗,启用…?@BurninLeo:看。这是Neon中的一个bug,因为JSDT的核心元素被重写或切换到更易于维护的软件组件。部分功能已经很快恢复,这是非常罕见的,值得一提,但仍然有一些有效的JS结构不能产生令人满意的轮廓。最后,我在我的(Eclipse)项目中安装了NetBeans来编辑JS文件。非常好:)弗朗索瓦的回答很有用。依靠评论有点麻烦,但这是我见过的唯一解决办法。我注意到,如果您键入的@memberof不正确,那么Eclipse大纲将与注释一起出现,而不是与代码一起出现,因此在使用时需要小心。这是一个公平的答案,只是来得有点晚。不过,值得一个noob同事投一票。是的,在Eclipse5.X或任何开普勒版本中,两种建议的方法都不适合我。JSDoc生成漂亮的HTML页面,概述了自调用的对象/名称空间,当您按住ctrl+space键时,Eclipse可以建议/autocomplete,但它拒绝概述对象!:(