我有带有 PDT 的 Eclipse 3.3.2 进行 PHP 开发。我创建的所有项目,甚至 SVN 项目都有代码完成。现在我刚刚打开了另一个 SVN 项目,它没有代码完成或 PHP 模板(CTRL-space 在该项目中没有任何作用)。但是,我可以打开其他项目和代码完成所有工作。
为什么代码完成和模板仅在一个项目中“关闭”,我该如何重新打开它?
我有带有 PDT 的 Eclipse 3.3.2 进行 PHP 开发。我创建的所有项目,甚至 SVN 项目都有代码完成。现在我刚刚打开了另一个 SVN 项目,它没有代码完成或 PHP 模板(CTRL-space 在该项目中没有任何作用)。但是,我可以打开其他项目和代码完成所有工作。
为什么代码完成和模板仅在一个项目中“关闭”,我该如何重新打开它?
也许 Eclipse 不理解该项目具有“PHP 特性”。尝试比较两个项目的 .project 文件以查找差异。它应该包含以下内容:
<natures>
<nature>org.eclipse.php.core.PHPNature</nature>
</natures>
.project 文件将位于项目目录下的工作区中。
在你的项目中寻找文件 .buildpath ......把这一行放在标签之间:
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
保存并重新启动eclipse。现在一切都应该没问题...这对我有用。:)
谢谢!我花了一整天的时间来弄清楚为什么我没有代码完成......
问题是,如果您创建一个 SVN 项目,.project 是一个没有代码完成参考的基本文件。您必须创建一个基本的 PHP 项目并比较两个文件并替换 SVN 项目中缺少的部分之一。
现在我对项目中的每个文件都有代码完成,即使是 Zend Framework 库
只需在 .project 文件中添加一行,然后重新启动 eclipse 即可获得代码完成:它说的位置
---
<natures>
</natures>
---
改变后必须是
---
<natures>
<nature>org.eclipse.php.core.PHPNature</nature>
</natures>
---
应该这样做。
@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 文件,但您可以手动添加它或使用现有源创建新的 PHP 项目(您可以在向导中选择)。
我有时也有同样的问题。对我来说,它可以使用“Project”->“Clean”重建 PHP 项目。
如果您遇到此问题,请按照以下步骤操作:
就是这样:)我希望它能解决你的问题,我解决了我的问题:)
确保文件使用“PHP 编辑器”打开。右键单击该文件,然后选择打开方式以选择正确的编辑器。
如果事实证明您一直在使用错误的编辑器,您可以在Preferences » General » Content Types下更改关联
右键单击编辑屏幕,转到 Java -> Editor -> Content Assist -> Advanced ...选择相应的提案
注意力
除了已经提到的使整个自动完成帮助工作的解决方案之外,还有另一个怪癖:它可能未启用。
转到 Window > Properties,然后转到 PHP > Editor > Code Assist(JAVA 有类似的选项)并设置“启用自动激活”,最好有一个您认为合适的延迟(0 毫秒)。如果您对程序突然决定在没有提示的情况下为您做事(并且做错了)感到困扰,请取消选择“自动插入单个提案”,您应该会没事的。
我有时注意到,当您在 Eclipse 中从 svn 签出项目时(颠覆或 subscipe“签出项目为”),即使您将其签出为 php 项目,它也会删除 .project 文件,或者它将是一个通用文件项目。我发现只需进入该目录并删除 .project .settings/ 和 .cach/
然后创建一个新的 php 项目并指向您签出文件的目录。你应该有代码完成和 svn 应该链接到你的 repo。
我遇到了构建路径为空的问题,因此我尝试编辑的任何文件都没有代码完成。确保正确设置构建路径,尤其是在从工作区以外的其他位置链接源代码时。
例如 apache htdocs 文件夹。
我通过启用完整的 C/C++ 索引器(Windows-> 属性 -> C/C++ -> 索引器)解决了这个问题,还点击了单选按钮“使用活动按钮配置”。之后清理并构建所有内容。
这适用于 Eclipse CDT 3.4
如果您来这里是在 php eclipse 中寻找代码补全不起作用,请确保您的项目作为 php 项目被支持。右键单击项目,然后转到配置 -> 添加 php 支持。如果您有正确的代码辅助设置,它应该可以立即工作。有时像我这样的新手会调整项目或启动项目时干净而不是 php,所以 eclipse 不知道如何处理项目。
我必须在 PHP Explorer 中右键单击该项目,转到“PHP Build Path”。这是空的。我单击“添加文件夹”,选中项目根文件夹旁边的复选框,然后单击“确定”,然后再次单击“确定”。
在那之后,代码完成似乎工作了。如果你问我,应该开箱即用,但无论如何。
检查项目的库。可能是您包含了两个这样的 jar 文件,其中相同的类可用,或者说代码中的一个类可以在两个 jar 文件中引用。在这种情况下,eclipse 也会停止辅助代码,因为它完全被混淆了。
更好的检查方法是转到辅助不起作用的文件并在其中注释所有导入,而不是逐个添加导入并在每次导入时检查代码辅助是否正常工作。您可以轻松找到具有重复引用的类.
一种解决方案可能是包含一个需要所有 PHP 类的虚拟 php 文件。这样 PHP 解析器也能识别这些类。示例虚拟文件:
if(false) {
require_once 'class/one.php';
require_once 'class/two.php';
require_once 'class/three.php';
}