Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [pdt-dev] How to add code-completion for PHP Framework

Hi Roy,

i managed to add existing IMethods to the php code assistance using the completionStrategyFactory.

However, when adding types to ICompletionReporter using reporter.reportXXX(), the type i'm adding
must already exist in the model as far as i've understood.

I have a use case, where variables are added to view templates by the framework, using FrameworkController::set('a', 'b').

So basically this would look like this:

In the Controller:

$myObject = new MyObject();
$this->set('foo', $myObject);

In the view file:

$ | <-- in this completeion context, there should be a variable $foo
$foo-> | << in this context, foo should offer possible completions for the type MyObject.

Do i need to add additional ModelElements using some extensionPoint like PHPMixinVisitor during
the build, so i can add them later in the completionStrategy for this kind of completion?



On 10/29/2009 6:08 AM, Roy Ganor wrote:
Hi Robert,
org.eclipse.php.core.completionStrategyFactories and org.eclipse.php.core.completionContextResolvers are good starting points.

-----Original Message-----
From: pdt-dev-bounces@xxxxxxxxxxx [mailto:pdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Robert Gruendler
Sent: Thursday, October 29, 2009 10:58 PM
To: pdt-dev@xxxxxxxxxxx
Subject: Re: [pdt-dev] How to add code-completion for PHP Framework

Hi again,

one more question regarding code completion extensions:

Some framework classes use "components", which are declared
in a class variable, like this:

$components = array('Foo', 'Bar');

After declaring those components, the fields 'Foo' and 'Bar',
are accessible via $this->Foo and $this->Bar.

Any hint which extension point i should use to add those fields
to the code completion of classes which declare the $components
array ?


On 10/28/2009 7:45 AM, robert@xxxxxxxxxxx wrote:
Hi Michael,

thanks a lot, this got me started, it's working fine now.



On Wed, 28 Oct 2009 13:08:58 +0200, Michael Spector<spektom@xxxxxxxxx>
Hi Robert,

I think goalEvaluatorFactories extension point would be sufficient for
specific purpose.
You just need to add a rule that evaluates structures like:
ClassRegistry::init('MyObject'), and returns type (MyObject) for such
Take a look at

as an example, which evaluates structures like: new MyObject().

Best regards,

On Wed, Oct 28, 2009 at 1:03 PM,<robert@xxxxxxxxxxx>  wrote:

Hi all,

i'm trying to write an eclipse plugin for the Cakephp
framework, and i'd like to start off with some
additional framework-specific code assistance.

The framework uses a central "ClassRegistry" factory
for object instantiation. So, there's no "new" keyword for
some objects, for example:

$myObject = ClassRegistry::init('MyObject');

Basically i would like to give a hint to PDT that
the variable "$myObject" is an instance of the "MyObject"
class, which has already been loaded into the PDT Model,
so i guess i would simply point to the "MyObject" IType in
the Model somehow.

Could anyone give me a hint what would be the best method
to accomplish this? I've already had a look at the extension
points "completionStrategyFactories"/"completionContextResolvers"
and "goalEvaluatorFactories", but i'm not sure what's the best
way to hook into PDT for this kind of thing.



pdt-dev mailing list

pdt-dev mailing list
pdt-dev mailing list
_______________________________________________ pdt-dev mailing list pdt-dev@xxxxxxxxxxx

Back to the top