【问题标题】:Tasks view in Eclipse not showing TODOs?Eclipse 中的任务视图不显示 TODO?
【发布时间】:2014-04-05 12:42:51
【问题描述】:

我正在使用 Nodeclipse 运行 Eclipse Kepler,但无法让 Tasks 视图显示我的标记。

  1. 我已将自己的 FEATURE 标记定义为“文本包含 FEATURE”,但它没有显示出来。

  2. 我无法将我的 node.js 任务限制在我自己的项目中。当我将其设置为“全部显示”时,它会向我显示来自我正在使用的节点模块的数百个任务。当我将其设置为屏幕截图时,它不再向我显示任何任务。

我可以接受 1. 但 2. 对我来说是一个严重的问题...... 这是 Kepler 中的错误还是我有配置错误?

这是我的配置方式:

我的项目在选定的工作集中。任务标签在 Preferences->Javascript 中启用。

更新

事实证明这是几个相关的问题,所以这里尝试整理和总结已经取得的进展:(以下所有内容仅涉及问题的第2点)

  1. 不考虑所选范围的“全部显示”是所需的行为。范围是配置的一部分(UI 通过将它们放在“配置”组窗格中来暗示这一点),“显示全部”设置会绕过它。所以这实际上不是功能错误,只是误导用户界面。我已经提出了这个问题here

  2. 可以通过转到首选项 -> Javascript -> 验证器 -> 任务标签,更改某些内容并应用来解决根本不显示的 Javascript 任务。这会触发重建并合并代码中的任何任务标签。但是,未来的任务不会自动合并。这似乎是一个已知问题。

  3. 节点模块污染任务视图的问题可以通过将文件夹设置为库文件夹而不是源文件夹来解决。见this answer to this question

【问题讨论】:

  • 关于“根本没有显示 Javascript 任务”:对我来说,它是通过“构建”(Ctrl+B)相应的 JavaScript 项目来解决的

标签: eclipse nodeclipse jsdt


【解决方案1】:

Eclipse BugZilla 上的一个向导解释了一个简单的解决方案,显示来自节点模块的 TODO:

node_modules 文件夹必须成为库文件夹。为此,需要转到项目 -> 属性 -> Javascript -> 包含路径,选择“库”选项卡,单击“添加库文件夹...”并将其设置为 node_modules 子文件夹。

就这么简单。

这里是来源:https://bugs.eclipse.org/bugs/show_bug.cgi?id=432231#c4

更新:

Nodeclipse 项目配置将在 0.15 更新以解决该问题

https://github.com/Nodeclipse/nodeclipse-1/issues/143

【讨论】:

  • 在 Eclipse 4.4 Luna (Enide Studio 2014) 上出现错误“无法在 'NodeProject1' 内嵌套 'NodeProject1/node_modules'。启用嵌套从 'NodeProject1' 中排除 'node_modules/'”。无法将 node_modules 添加为库文件夹
  • 我尝试了几乎所有我能找到的开关、对话框和设置来让它工作,其中之一肯定是为什么它对我有用,但对你没用。我猜是这样的:转到 Project->Properties->Javascript->Include Path 并在选项卡“Source”上为 node_modules/**/* 添加排除模式。这样能解决吗?
  • 我还从工作集中排除了node_modules 及其所有子文件夹。
  • 让我们在github.com/Nodeclipse/nodeclipse-1/issues/143 继续,所以不是讨论的好地方。
【解决方案2】:

在屏幕截图上,您的范围是“在工作集上”,而不是“在同一个项目中”。 尽管即使使用该过滤器,它在 Eclipse Luna 4.4.M4 (Enide Studio 2014) 上对我也不起作用

请注意,JavaScript 任务是由 JSDT 添加的,这不是 Node.js 感知的 (所以它不能处理node_modules

https://bugs.eclipse.org/bugs/ 上提出错误(并在此处分享)

更新:

Bug 432231 - Tasks view not working correctly on Javascript projects 读取到当.project 包含它时,TODO 由 JSDT 构建器处理

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>JSDTJavaScriptProject</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
</projectDescription>

而 Nodeclipse .project 模板如下所示(使用 JSHInt 而不是 JSDT Validator)

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>NodeExpressEjsLESS</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>com.eclipsesource.jshint.ui.builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.nodeclipse.ui.NodeNature</nature>
        <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
</projectDescription>

这样做是因为 JSDT 不支持 ECMAScript 5 Bug 223131 - [language support] Add ecmascript4 /JavaScript 2 compiler compliance level 。这可不是小事。

另请参阅How to ignore node shebang error in Eclipse? 回答,了解为什么推荐当前配置。

通过 JSHInt-Eclipse 解析 TODO 是未解决的问题 https://github.com/eclipsesource/jshint-eclipse/issues/68 不过有人说,应该是独立插件比较好。

【讨论】:

  • 我能够让它在一个冗长而烦人的解决方法中显示我的标记(你基本上必须去 Javascript 任务标签首选项更改某些内容并应用以强制完全重建......在这里找到它所以但找不到答案了。)这是错误报告bugs.eclipse.org/bugs/show_bug.cgi?id=432231
猜你喜欢
  • 2012-08-02
  • 1970-01-01
  • 1970-01-01
  • 2010-12-07
  • 2013-03-12
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多