nvlad / yii2support

Yii2 Support for PhpStorm / IntelliJ IDEA
https://plugins.jetbrains.com/idea/plugin/9388-yii2-support
Other
294 stars 52 forks source link

Не работают подсказки для "Configuration arrays for object instantiation" #275

Open beeryukov opened 3 years ago

beeryukov commented 3 years ago

What steps will reproduce the problem?

Объявить класс, наследующий yii\base\BaseObject (в котором реализована фича configuration arrays); Вызвать конструктор класса через new; Написать пустые квадратные скобки в вызове конструктора (таким образом начать заполнять configuration array);

What is the expected result?

В качестве ключей массива появляются подсказки с именами свойств класса

What do you get instead?

Подсказки не появляются. Всплывает сообщение "No suggestions"

Additional info

Сам плагин активен и работает. В частности работают подсказки для Model::rules и для Url::to(); Также подсказки работают в конфиге, в контроллере в функции behaviors, например:

'authManager' => [
       'class' => 'yii\rbac\DbManager',
        'defaultRoles' => ['guest', 'user'],
 ]

Также всё ок при использовании CreateObject:

$ojbect = Yii::createObject([
        'class' => 'app\components\SomeClass',
        'someProperty' => 1 // this works
]);

Не работает только в сочетании с new

new SomeClass([
]);

Также, заявленная фича "Go To Declaration, Rename, Find usages and Help popups work whenever code completion works" не работает вообще нигде, даже там, где с автокомплитом всё ок.

Q A
IDE Name PhpStorm
IDE Version 2021.1.2 (Build #PS-211.7142.44, built on April 30, 2021)
Plugin version com.yii2support (0.10.58.37)
Yii App Template basic
iglooom commented 3 years ago

@beeryukov теста ради попробуй вот эту версию, я там правил кучку всяких мелочей Yii2 Support-0.10.58.40.zip Это билд из этого PR https://github.com/nvlad/yii2support/pull/270

beeryukov commented 3 years ago

@iglooom, спасибо, попробовал. Подсказки для new SomeClass([]) появились, уже хорошо :) А вот Go To Declaration, Rename, Find usages не заработало.

gvlasov commented 3 years ago

https://plugins.jetbrains.com/plugin/9388-yii2-support

Calculates return type for Yii::createObject call and one/all method calls of ActiveRecord

@beeryukov По какой-то причине автоподсказки в конструкторе для пропертей создаваемых через new объектов начинаются не с BaseObject, а с ActiveRecord. Причины не понимаю, хотелось бы и для BaseObject это иметь, но раз не сделали, то возможно был веский повод. Хотя тогда странно, что с Yii::createObject работает.

@nvlad, запили пожалуйста, как будет время, мы любим твой плагин!

iglooom commented 3 years ago

@gvlasov а речь про тот билд что я скинул?

gvlasov commented 3 years ago

@iglooom Нет, хочется чтобы автор плагина добавил фичи из того билда в основную ветку

iglooom commented 3 years ago

Да, тоже хотелось бы, я даже на указанное мыло писал уже ему, но пока без ответа.

nssmart commented 2 years ago

@beeryukov теста ради попробуй вот эту версию, я там правил кучку всяких мелочей Yii2 Support-0.10.58.40.zip Это билд из этого PR #270

Большое спасибо, как я устал модели делать вот так $model = new Model(); $model->abc = '';

С этим билдом вновь работает new Model(['...

Спасиииибо!)