为什么Eclipse代码完成不适用于某些项目?

时间:2008-10-07 08:18:52

标签: php eclipse eclipse-pdt eclipse-3.3

我有Eclipse 3.3.2与PDT进行PHP开发。 我创建的所有项目,甚至SVN项目都有代码完成。 现在我刚刚打开了另一个SVN项目,它没有代码完成或PHP模板(CTRL-space在该项目中什么都不做)。 但是,我可以打开其他项目和代码完成所有工作。

为什么代码完成和模板只在一个项目中“关闭”,如何重新打开?

17 个答案:

答案 0 :(得分:42)

也许Eclipse不理解该项目具有“PHP性质”。 尝试比较两个项目上的.project文件以查找差异。它应该包含类似的内容:

 <natures>
  <nature>org.eclipse.php.core.PHPNature</nature>
 </natures>

.project文件将位于项目目录下的工作区中。

答案 1 :(得分:6)

在项目中查找文件.build路径...将此行放在标记之间:

<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>

保存并重启eclipse。现在一切都会好的......这对我有用。 :)

答案 2 :(得分:5)

谢谢! 我花了一整天的时间来弄清楚为什么我没有代码完成...

问题是如果你创建一个SVN项目,.project是一个没有codecompletion引用的基本文件。您必须创建一个基本的PHP项目并比较这两个文件并替换SVN项目中缺少的部分。

现在我对项目中的每个文件都进行了代码完成,即使对于Zend Framework库

也是如此

答案 3 :(得分:5)

只需在.project文件中添加一行,然后重新启动eclipse即可获得代码完成: 在哪里说

---
 <natures>
 </natures>
---

更改后必须

---
 <natures>
  <nature>org.eclipse.php.core.PHPNature</nature>
 </natures>
---

应该这样做。

答案 4 :(得分:4)

@Guido PHPNature无法解决此问题。

@Edward Tanguay是的,那是因为当您创建新的PHP项目时,eclipse会添加.buildpath文件

<?xml version="1.0" encoding="UTF-8"?><buildpath>
<buildpathentry kind="src" path=""/>
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/></buildpath>

当您导入现有项目时,您的eclipse不会生成.buildpath文件,但您可以手动添加它或使用existsin源创建新的PHP项目(您可以在向导中选择)。

答案 5 :(得分:3)

我有时会遇到同样的问题。对我来说,它可以用“Project”重建PHP项目 - &gt; “清洁”。

答案 6 :(得分:2)

如果您遇到此问题,请按以下步骤操作:

  • 在项目树中选择“PHP包含路径”
  • 右键单击它,然后单击“构建路径&gt;配置构建路径”
  • 在打开的窗口中,添加您要构建的文件夹,以便它可以执行代码帮助。

多数民众赞成:)我希望它能解决你的问题,我解决了我的问题:)

答案 7 :(得分:1)

确保使用“PHP编辑器”打开文件。右键单击该文件,然后选择打开以选择正确的编辑器。

如果事实证明您使用了错误的编辑器,则可以在首选项»常规»内容类型

下更改关联

答案 8 :(得分:1)

注意

除了已经提到的使整个自动完成帮助工作的解决方案之外,还有另一个怪癖:它可能没有启用。

转到窗口&gt;属性然后到PHP&gt;编辑&gt;代码辅助(JAVA有类似的选项)并设置“启用自动激活”,最好有一个你觉得舒服的延迟(0ms)。如果您对程序突然决定在没有提示的情况下做出事情(并且做错了)而感到困扰,请取消选择“自动插入单个提案”,您应该没事。

答案 9 :(得分:1)

在编辑屏幕中右键单击,转到Java - &gt;编辑 - &gt;内容辅助 - &gt;高级...相应地选择提案

答案 10 :(得分:0)

我通过启用Full C / C ++索引器(Windows-&gt; properties - &gt; C / C ++ - &gt; Indexer)解决了这个问题,并点击单选按钮“使用活动按钮配置”。在那之后清理,并建立所有。

这适用于Eclipse CDT 3.4

答案 11 :(得分:0)

如果您来到这里寻找php eclipse中的代码完成功能,请确保您的项目作为php项目得到支持。右键单击项目,然后转到配置 - &gt;添加php支持。如果你有正确的代码辅助设置,它应该立即工作。有时作为我的新手调整项目或启动项目干净而不是php所以eclipse不知道如何对待项目。

答案 12 :(得分:0)

我遇到了构建路径为空的问题,因此我尝试编辑的任何文件都没有代码完成。确保正确设置构建路径,尤其是在从工作区以外的其他位置链接源时。

例如,像apache htdocs文件夹一样。

答案 13 :(得分:0)

我有时会注意到你在eclipse中从svn签出一个项目(颠覆或子句“将项目结帐为”),即使你把它作为一个php项目检查出来,它也会删除.project文件或者它会是一个通用项目。我发现只是进入该目录并删除.project .settings /和.cach /

然后创建一个新的php项目并指向您签出文件的目录。你应该完成代码,svn应该链接到你的仓库。

答案 14 :(得分:0)

我必须在PHP资源管理器中右键单击该项目,转到“PHP Build Path”。这是空的。我点击“添加文件夹”,选中项目根文件夹旁边的复选框,然后点击“确定”,再点击“确定”。

之后代码完成似乎有效。如果你问我我应该开箱即用,但无论如何。

答案 15 :(得分:0)

检查项目的lib。可能是您包含两个这样的jar文件,其中相同的类可用,或者说代码中的一个类可以在两个jar文件中引用。在这种情况下,eclipse也会停止协助代码,因为它完全混淆了。

检查这个的更好方法是转到辅助不起作用的文件并在那里注释所有导入,而不是逐个添加导入,并检查每次导入是否代码辅助工作正常。您可以轻松找到该类重复参考。

答案 16 :(得分:-1)

一种解决方案可能是包含一个需要所有PHP类的虚拟php文件。这样PHP解析器也能识别这些类。 示例虚拟文件:

if(false) {
     require_once 'class/one.php';
     require_once 'class/two.php';
     require_once 'class/three.php';
}