[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 Robert,
org.eclipse.php.core.completionStrategyFactories and org.eclipse.php.core.completionContextResolvers are good starting points.

Roy
-----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 ?


thanks!

-robert
On 10/28/2009 7:45 AM, robert@xxxxxxxxxxx wrote:
> Hi Michael,
>
> thanks a lot, this got me started, it's working fine now.
>
> best
>
> -robert
>
> On Wed, 28 Oct 2009 13:08:58 +0200, Michael Spector<spektom@xxxxxxxxx>
> wrote:
>    
>> Hi Robert,
>>
>> I think goalEvaluatorFactories extension point would be sufficient for
>>      
> this
>    
>> specific purpose.
>> You just need to add a rule that evaluates structures like:
>> ClassRegistry::init('MyObject'), and returns type (MyObject) for such
>> cases.
>> Take a look at
>>
>>      
> org.eclipse.php.internal.core.typeinference.evaluators.InstanceCreationEvaluator
>    
>> as an example, which evaluates structures like: new MyObject().
>>
>> Best regards,
>> Michael
>>
>> 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.
>>>
>>>
>>> Thanks!
>>>
>>> -robert
>>>
>>> _______________________________________________
>>> pdt-dev mailing list
>>> pdt-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>>>
>>>        
> _______________________________________________
> pdt-dev mailing list
> pdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>    

_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/pdt-dev