一部のプロジェクトでEclipseコード補完が機能しないのはなぜですか?

StackOverflow https://stackoverflow.com/questions/177569

質問

PHP開発を行っているPDTを使用したEclipse 3.3.2があります。 私が作成するすべてのプロジェクト、SVNプロジェクトもコード補完があります。 今、別のSVNプロジェクトを開いたところ、コード補完もPHPテンプレートもありません(CTRL-スペースはそのプロジェクトでは何もしません)。 ただし、他のプロジェクトを開いて、すべてのプロジェクトでコード補完を実行できます。

コード補完とテンプレートが<!> quot; off <!> quotになる理由たった1つのプロジェクトで、どのように元に戻すことができますか?

役に立ちましたか?

解決

たぶんEclipseは、プロジェクトに<!> quot; PHPの性質<!> quot;があることを理解していません。 両方のプロジェクトの.projectファイルを比較して、違いを探してください。次のようなものを含める必要があります。

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

.projectファイルは、プロジェクトディレクトリの下のワークスペースにあります。

他のヒント

プロジェクトのファイル.buildパスを探します...タグの間に次の行を挿入します:

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

保存して、Eclipseを再起動します。これですべてが正常になります...これでうまくいきました。 :)

ありがとう! コード補完がなかった理由を突き止めるために一日中過ごしました...

問題は、SVNプロジェクトを作成する場合、.projectはコード補完参照のない基本ファイルであることです。基本的なPHPプロジェクトを作成して、2つのファイルを比較し、SVNプロジェクトの不足している部分を置き換える必要があります。

これで、Zend Frameworkライブラリの場合でも、プロジェクト内のすべてのファイルのコード補完が完了しました

.projectファイルに追加し、Eclipseを再起動してコード補完を取得するのは1行だけです。

---
 <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プロジェクトを作成したりできます(ウィザードで選択できます)。

私は時々同じ問題を抱えています。私にとっては、<!> quot; Project <!> quot;でPHPプロジェクトを再構築するために動作します。 -<!> gt; <!> quot; Clean <!> quot;。

この問題がある場合は、次の手順に従ってください:

  • <!> quot; PHP Include Path <!> quot;を選択します。プロジェクトツリーで
  • 右クリックしてから<!> quot; Build Path <!> gt; Configure Build Path <!> quot;
  • 開始ウィンドウで、ビルドするフォルダーを追加して、コードアシストを実行できるようにします。

それですべて:)それがあなたの問題を解決することを願っています、私は私の問題を解決しました:)

<!> quot; PHPエディター<!> quot;でファイルを開いてください。ファイルを右クリックし、 open with を選択して適切なエディターを選択します。

間違ったエディターを使用していることが判明した場合、 Preferences <!>#187;で関連付けを変更できます。一般<!>#187;コンテンツタイプ

編集画面で右クリックし、Javaに移動します-<!> gt;エディター-<!> gt;コンテンツアシスト-<!> gt;高度...それに応じて提案を選択

注意事項

オートコンプリートのヘルプ全体を機能させるための前述のソリューションに加えて、別の癖があります:有効になっていない可能性があります。

ウィンドウに移動<!> gt;プロパティ、そしてPHP <!> gt;エディター<!> gt;コードアシスト(JAVAにも同様のオプションがあります)を設定し、<!> quot;自動アクティベーションを有効にする<!> quot;を設定します。プログラムが突然プロンプトを出さずに(そして間違ったことをして)あなたに代わってやろうと決めた場合、<!> quot;単一提案を自動的に挿入<!> quot;の選択を解除します。大丈夫です。

Eclipseでsvnからプロジェクトをチェックアウトすると(subversiveまたはsubsclipe <!> quot; checkout as project!<!> quot;)、PHPプロジェクトとしてチェックアウトしても、 .projectファイルを削除しないと、汎用プロジェクトになります。そのディレクトリに移動して.project .settings /と.cach /

を削除することがわかりました

次に、新しいphpプロジェクトを作成し、ファイルをチェックアウトしたディレクトリをポイントします。また、コード補完が必要で、svnがリポジトリにリンクされている必要があります。

ビルドパスが空であるという問題があったため、編集しようとしたファイルのコード補完がありませんでした。特にワークスペース以外の場所からソースをリンクしている場合は、ビルドパスを適切に設定してください。

たとえば、apache htdocsフォルダーのように。

フルC / C ++インデクサー(Windows-<!> gt;プロパティ-<!> gt; C / C ++-<!> gt;インデクサー)を有効にすることでこれを解決し、ラジオボタン<! > quot; Use active button configuration <!> quot;。その後、すべてをクリーンアップしてビルドします。

Eclipse CDT 3.4で機能しました

php eclipseでコード補完が機能しないことを求めてここに来た場合は、プロジェクトがphpプロジェクトとしてサポートされていることを確認してください。プロジェクトを右クリックして、構成に移動します-<!> gt; PHPサポートを追加します。コードアシストの設定が適切であれば、すぐに動作します。私が初心者の場合、プロジェクトを微調整したり、PHPではなくクリーンなプロジェクトを開始したりして、Eclipseがプロジェクトの処理方法を知らないことがあります。

PHPエクスプローラーでプロジェクトを右クリックし、<!> quot; PHPビルドパス<!> quot;に移動する必要がありました。これは空でした。 <!> quot; Add Folder <!> quot;をクリックし、プロジェクトのルートフォルダーの横にあるチェックボックスを選択して、<!> quot; OK <!> quot;をクリックしてから<!> quot; OK <!>をクリックしましたquot;もう一度。

その後、コード補完が機能するように見えました。あなたが私に尋ねるなら、箱から出してすぐに動作するはずですが、何でも。

プロジェクトのライブラリを確認します。同じクラスが使用可能なこのようなjarファイルを2つ含めるか、コード内の1つのクラスを2つのjarファイルで参照できると言う場合があります。そのような場合、完全に混乱しているため、Eclipseはコードの支援を停止します。

これを確認するより良い方法は、アシストが機能していないファイルに移動し、インポートを1つずつ追加し、コードアシストが機能しているかどうかを各インポートで確認するよりも、そこにあるすべてのインポートをコメント化することです。簡単にクラスを見つけることができます二重の参照を使用します。

1つの解決策は、すべてのPHPクラスを必要とするダミーのphpファイルを含めることです。そのため、PHPパーサーはこれらのクラスも認識します。 ダミーファイルの例:

if(false) {
     require_once 'class/one.php';
     require_once 'class/two.php';
     require_once 'class/three.php';
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top