Code Completion not working with remote file (with RSE)

Dmitry Ponomarev picture Dmitry Ponomarev · May 5, 2011 · Viewed 8.5k times · Source

What is:

On Host machine:
Windows 7 Eclipse for PHP Developers
Version: Helios Service Release 2

On guest machine: Linux debian squeeze

I want to edit my remote project through SSH in Eclipse by using RSE. All is okay, I do so in Remote System Explorer perspective:

screenshot1

Then I go to PHP perspective. Right click on project->Configure->Add PHP Support. And press Ctrl+Shift+Space or Ctrl+Space. No completions (code assist) available.

screenshot2

Okay I'm found this bug (at 2008) and solution description (at 2009): Bug 251496. I did so:

Here's my solution to the problem: I just deleted the RemoteSystemsTempFiles project in the PHPExplorer View and than recreated it as a PHP Project (New->PHP Project, ofcourse it has to be named again RemoteSystemsTempFiles). This worked for me, now code completion is ok, hope this helps.

screenshot3

It does not solve the problem. Because PHP Language library does not have Core API maybe... Help. Thanks.

Answer

OlivierLarue picture OlivierLarue · Jul 11, 2012

Autocompletion for the PHP project (classes, functions...):

I found that adding the folowing lines to the .project did solve the autocompletion issue for the classes of the PHP project itself but did not work with native PHP functions:

<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>org.eclipse.php.core.PHPNature</nature>

I found a way around it:

Autocompletion for the native PHP functions (print_r()...):

You have to go to your eclipse configuration folder and find the PHP language folder:

In my case: C:\Program Files\EclipseSF2\configuration\org.eclipse.osgi\bundles\276\1\.cp\Resources\language\php5.3

Then you can:

  • right click at the root of your eclipse project,
  • then go to build path
  • link source
  • browse: and link to this folder...

This allows the autocompletion for native PHP function!

Autocompletion for the Symfony framework:

For people using the Symfony framework you can add to your .project file the following lines:

<buildCommand>
        <name>com.dubture.symfony.core.symfonyBuilder</name>
        <arguments>
        </arguments>
</buildCommand>