nvlad / yii2support Goto Github PK
View Code? Open in Web Editor NEWYii2 Support for PhpStorm / IntelliJ IDEA
Home Page: https://plugins.jetbrains.com/idea/plugin/9388-yii2-support
License: Other
Yii2 Support for PhpStorm / IntelliJ IDEA
Home Page: https://plugins.jetbrains.com/idea/plugin/9388-yii2-support
License: Other
Сделать детектор Yii2
Прежде всего хочу выразить огромную благодарность за данный плагин, особенно фичи новые порадовали.
Баг заключается в том,что получаю ошибку MissedFieldInspection если обработчик события или поведение описываем через конфигурацию.
http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#configuration-format
[
'on search' => function ($event) {
Yii::info("Keyword searched: " . $event->keyword);
},
'as indexer' => [
'class' => 'app\components\IndexerBehavior',
// ... property init values ...
],
]
Yii2 строит доку на основе phpDock, varDoc, для ссылок там используется формат [[ClassName/methodName()/propertyName/fieldName]].
Например:
https://github.com/yiisoft/yii2/blob/master/framework/data/BaseDataProvider.php#L20
https://github.com/yiisoft/yii2/blob/master/framework/data/BaseDataProvider.php#L268
Для упрощения навигации не плохо было бы делать переходы через альт + клик.
Cannot create file '...\frontend\views\catalog-items\picker.php'. File already exists.
com.intellij.util.IncorrectOperationException: Cannot create file '...\frontend\views\catalog-items\picker.php'. File already exists.
at com.intellij.psi.impl.file.PsiDirectoryImpl.checkCreateFile(PsiDirectoryImpl.java:403)
at com.intellij.psi.impl.file.PsiDirectoryImpl.createFile(PsiDirectoryImpl.java:332)
at com.nvlad.yii2support.views.inspections.MissedViewLocalQuickFix.applyFix(MissedViewLocalQuickFix.java:81)
at com.nvlad.yii2support.views.inspections.MissedViewLocalQuickFix.applyFix(MissedViewLocalQuickFix.java:23)
at com.intellij.codeInspection.ex.QuickFixWrapper.invoke(QuickFixWrapper.java:89)
at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.a(ShowIntentionActionsHandler.java:196)
at com.intellij.openapi.application.WriteAction.run(WriteAction.java:91)
at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.a(ShowIntentionActionsHandler.java:198)
at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.a(ShowIntentionActionsHandler.java:186)
at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:86)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:151)
at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.b(ShowIntentionActionsHandler.java:185)
at com.intellij.openapi.command.impl.CoreCommandProcessor.a(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:85)
at com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler.chooseActionAndInvoke(ShowIntentionActionsHandler.java:184)
at com.intellij.codeInsight.intention.impl.IntentionListStep.b(IntentionListStep.java:273)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
at com.intellij.ui.popup.AbstractPopup.a(AbstractPopup.java:1396)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:827)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:655)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
if use render('../profile/sidebar')
and rename file 'sidebar.php' e.g. to '_sidebar.php', in code is replaced render('../profile/sidebar')
as render('_sidebar.php')
.
Must be render('..profile/_sidebar')
В Yii2 зависимость можно внедрить передав конфигурацию класса в сеттер.
https://yiiframework.com.ua/ru/doc/guide/2/concept-di-container/#setter-and-property-injection
На данный момент плагин отлично дополняет конфигурацию класса, в идеале бы дополнять и случай когда зависимость передается через сеттер, ведь в Yii2 много на этом завязано...
Живой пример:
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->setSort([
'defaultOrder' => [
'time' => SORT_DESC,
],
]);
defaultSort
хотелось бы автокомплитом.
Спасибо!
Hi!
Following up my tweet.
Whenever a semicolon is typed, the auto-complete popup is being triggered. These popups at the end of the lines have no purpose!
For yii1 the plugin highlight view name as error(not found).
In example below this is 'category'
$this->render('category');
on delete direcotory with views
Accessing invalid virtual file: .../frontend/views/deals; original:40480; found:-
com.intellij.openapi.vfs.InvalidVirtualFileAccessException: Accessing invalid virtual file: .../frontend/views/deals; original:40480; found:-
at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.a(VirtualDirectoryImpl.java:147)
at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.a(VirtualDirectoryImpl.java:95)
at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.findChild(VirtualDirectoryImpl.java:399)
at com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl.findChild(VirtualDirectoryImpl.java:57)
at com.intellij.psi.impl.file.PsiDirectoryImpl.findFile(PsiDirectoryImpl.java:177)
at com.nvlad.yii2support.views.ViewsUtil.getViewFile(ViewsUtil.java:177)
at com.nvlad.yii2support.views.references.PsiReference.resolve(PsiReference.java:28)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.resolves(PsiMultiReference.java:62)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.access$000(PsiMultiReference.java:37)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference$1.compare(PsiMultiReference.java:46)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference$1.compare(PsiMultiReference.java:38)
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
at java.util.TimSort.sort(TimSort.java:220)
at java.util.Arrays.sort(Arrays.java:1438)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.chooseReference(PsiMultiReference.java:81)
at com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference.getCanonicalText(PsiMultiReference.java:144)
at com.jetbrains.php.codeInsight.PhpTargetElementEvaluator.getElementByReference(PhpTargetElementEvaluator.java:31)
at com.jetbrains.php.codeInsight.PhpTargetElementEvaluator.getElementByReference(PhpTargetElementEvaluator.java:22)
at com.intellij.codeInsight.TargetElementUtil.b(TargetElementUtil.java:386)
at com.intellij.codeInsight.TargetElementUtil.a(TargetElementUtil.java:368)
at com.intellij.codeInsight.TargetElementUtil.a(TargetElementUtil.java:238)
at com.intellij.codeInsight.TargetElementUtil.findTargetElement(TargetElementUtil.java:210)
at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:92)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:440)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1132)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:433)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:587)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.d(PassExecutorService.java:432)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:408)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:241)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:406)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:165)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Exception was thrown during attempt to move about 15 classes to another directory at once.
com.intellij.psi.impl.source.tree.PsiCommentImpl cannot be cast to com.jetbrains.php.lang.psi.elements.StringLiteralExpression
java.lang.ClassCastException: com.intellij.psi.impl.source.tree.PsiCommentImpl cannot be cast to com.jetbrains.php.lang.psi.elements.StringLiteralExpression
at com.yii2support.views.PsiReference.getViewPsiFile(PsiReference.java:43)
at com.yii2support.views.PsiReference.resolve(PsiReference.java:26)
at com.intellij.psi.PsiReferenceBase.isReferenceTo(PsiReferenceBase.java:125)
at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:52)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$8.lambda$execute$0(PsiSearchHelperImpl.java:734)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processTreeUp(LowLevelSearchUtil.java:138)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsAtOffsets(LowLevelSearchUtil.java:224)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsContainingWordInElement(LowLevelSearchUtil.java:183)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processInjectedFile(LowLevelSearchUtil.java:64)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processTreeUp(LowLevelSearchUtil.java:133)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsAtOffsets(LowLevelSearchUtil.java:224)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$8.execute(PsiSearchHelperImpl.java:730)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:232)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:228)
at com.intellij.openapi.application.ReadActionProcessor$1.compute(ReadActionProcessor.java:32)
at com.intellij.openapi.application.ReadActionProcessor$1.compute(ReadActionProcessor.java:29)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:895)
at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:29)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processVirtualFile$4(PsiSearchHelperImpl.java:376)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1061)
at com.intellij.openapi.application.ex.ApplicationUtil.tryRunReadAction(ApplicationUtil.java:46)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processVirtualFile(PsiSearchHelperImpl.java:360)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processPsiFileRoots$2(PsiSearchHelperImpl.java:313)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:123)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:568)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:519)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:106)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:91)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
I have something like
$this->render('@app/views/layouts/json', ...);
PhpStorm plugin says that
View file for "@app/views/layouts/json" not found.
So, Yii2 documentation says that view can be specified in various formats.
подробности в
example 'form.btn.clinic-call.next.type_' . Request::TYPE_HOUSE_CALL => 'Может выехать',
com.jetbrains.php.lang.psi.elements.impl.VariableImpl cannot be cast to com.jetbrains.php.lang.psi.elements.ClassReference
java.lang.ClassCastException: com.jetbrains.php.lang.psi.elements.impl.VariableImpl cannot be cast to com.jetbrains.php.lang.psi.elements.ClassReference
at com.nvlad.yii2support.i18n.CompletionContributor.invokeAutoPopup(CompletionContributor.java:27)
at com.intellij.codeInsight.editorActions.TypedHandler.a(TypedHandler.java:296)
at com.intellij.codeInsight.editorActions.TypedHandler.autoPopupCompletion(TypedHandler.java:278)
at com.intellij.codeInsight.lookup.impl.LookupTypedHandler.a(LookupTypedHandler.java:153)
at com.intellij.codeInsight.lookup.impl.LookupTypedHandler.execute(LookupTypedHandler.java:84)
at TypingHandler.execute(TypingHandler.java:36)
at com.intellij.execution.impl.ConsoleViewImpl$MyTypedHandler.execute(ConsoleViewImpl.java:1155)
at com.intellij.openapi.editor.actionSystem.TypedAction$DefaultRawHandler$1.run(TypedAction.java:171)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1002)
at com.intellij.openapi.editor.actionSystem.TypedAction$DefaultRawHandler.lambda$execute$0(TypedAction.java:165)
at com.intellij.openapi.command.impl.CoreCommandProcessor.a(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.editor.actionSystem.TypedAction$DefaultRawHandler.execute(TypedAction.java:159)
at com.intellij.openapi.editor.impl.EditorFactoryImpl$MyTypedHandler.execute(EditorFactoryImpl.java:287)
at com.intellij.openapi.editor.actionSystem.TypedAction.lambda$actionPerformed$0(TypedAction.java:142)
at com.intellij.reporting.FreezeLoggerImpl.runUnderPerformanceMonitor(FreezeLoggerImpl.java:42)
at com.intellij.openapi.editor.actionSystem.TypedAction.actionPerformed(TypedAction.java:142)
at com.intellij.openapi.editor.impl.EditorImpl.processKeyTypedNormally(EditorImpl.java:1119)
at com.intellij.openapi.editor.impl.EditorImpl.a(EditorImpl.java:1107)
at com.intellij.openapi.editor.impl.EditorImpl.processKeyTyped(EditorImpl.java:3156)
at com.intellij.openapi.editor.impl.EditorImpl$7.keyTyped(EditorImpl.java:942)
at java.awt.AWTEventMulticaster.keyTyped(AWTEventMulticaster.java:239)
at java.awt.Component.processKeyEvent(Component.java:6488)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2832)
at java.awt.Component.processEvent(Component.java:6310)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:27)
at java.awt.Component.dispatchEventImpl(Component.java:4760)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:737)
at java.awt.EventQueue$4.run(EventQueue.java:735)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.c(IdeEventQueue.java:827)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:634)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Когда находимся в массиве который возвращается из метода rules(желательно учитывать, array_merge
, ArrayHelper::merge
, +
) у yii\base\Model
или любого наследника то подхватывать стандартные валидаторы и дополнять из поля:
http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html
So basically, in controllers folder I have some folders for grouping of controllers.
Example: ~/controllers/test/TestController.php, it's views would be located in ~/views/test/test/ directory
This plugin shows me error that it cannot find it, while in controllers that are in /controllers/ folder directly, it can.
Error causes in config file when some event listener is assigned to an event
hello.
If i write statements like this:
$viewFile = 'not-exist';
$this->render($viewFile);
the plugin fail to detect the missing file.
Variables used in closures marked as not used in calling controller
//Controller
return $this->render('history', [
'data' => $data, // Shows this view does not use this parameter
'account_users' => $account_users // Shows this view does not use this parameter
]);
//View
$columns[] = [
'attribute' => 'user_id',
'label' => 'User',
'value' => function ($data) use ($account_users) {
if ($data['user_id'] == Yii::$app->user->id) return 'My';
else return $account_users[$data['user_id']]['username'];
}
];
Hello.
I thing it would be great if this plugin can detect orphan view files, in order to clean up the code base.
Listed in a tool window maybe?! (like find/search result)
Возможно сделать автодополнение в миграциях на основе схемы?
Например для методов dropTable(), dropColumn(), addForeignKey()...
I use .twig as default view extension, so, in my controllers I write view name without extension, But with this plugin i get error notices about not existing Views, because plugin check existing only php files as I think. (When i write full view name with extension, the error not appears) So, i not expect twig support like as in symfony - is difficult work, but keep in mind, that view extension may be not only .php, and also .twig or .tpl for smarty
Хотелось бы иметь переход по клику обратно в места объявления, как минимум соответствующий контроллер .
The error happens when a property of an object accessed via string's complex syntax. Actually regardless of where the object is taken. And a parameter with an empty name is proposed.
<?php
namespace frontend\controllers;
class TestController extends \yii\web\Controller
{
public function actionIndex()
{
return $this->render('index');
}
}
<?php
/* @var $this yii\web\View */
$t = Yii::$app;
echo "{$t->uniqueId}";
Hi! The plugin said that http://joxi.ru/NDrlB4bto39X2P but it is used like http://joxi.ru/XEA44PXc1abWAb Do you have a possible to fix it?
In Yii2 widgets plug-in can not find connected views
ActiveForm::begin(['fieldConfig' => ['template' => "{input}\n{error}"]])
Field 'template' not exists in referenced class \Closure
The plugin stops working for me, I don't know the reason
com.jetbrains.php.lang.psi.elements.impl.MethodImpl cannot be cast to com.jetbrains.php.lang.psi.elements.PhpClass
java.lang.ClassCastException: com.jetbrains.php.lang.psi.elements.impl.MethodImpl cannot be cast to com.jetbrains.php.lang.psi.elements.PhpClass
at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.getClassByInstatiation(ObjectFactoryUtils.java:201)
at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.findClassByArrayCreation(ObjectFactoryUtils.java:151)
at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.getPhpClassByHash(ObjectFactoryUtils.java:173)
at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.findClassByArrayCreation(ObjectFactoryUtils.java:163)
at com.nvlad.yii2support.objectfactory.ObjectFactoryMissedFieldInspection$1.visitPhpArrayCreationExpression(ObjectFactoryMissedFieldInspection.java:33)
at com.jetbrains.php.lang.psi.elements.impl.ArrayCreationExpressionImpl.accept(ArrayCreationExpressionImpl.java:24)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:81)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:304)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:123)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:212)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:141)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:212)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:141)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:212)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:141)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1055)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:96)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:568)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:519)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:106)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:91)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.pollAndExecCC(ForkJoinPool.java:1190)
at java.util.concurrent.ForkJoinPool.helpComplete(ForkJoinPool.java:1879)
at java.util.concurrent.ForkJoinPool.awaitJoin(ForkJoinPool.java:2045)
at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:390)
at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719)
at java.util.concurrent.ForkJoinPool.invoke(ForkJoinPool.java:2616)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:61)
at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:57)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:315)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:225)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:131)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:82)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:433)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1061)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:426)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:568)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:519)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:425)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:405)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:155)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
On rename DealPayment class to DealPaymentValidator
com.jetbrains.php.lang.psi.elements.impl.PhpClassImpl cannot be cast to com.intellij.psi.PsiFile
java.lang.ClassCastException: com.jetbrains.php.lang.psi.elements.impl.PhpClassImpl cannot be cast to com.intellij.psi.PsiFile
at com.nvlad.yii2support.views.refactor.RenameViewProcessor.prepareRenaming(RenameViewProcessor.java:47)
at com.intellij.refactoring.rename.RenameProcessor.prepareRenaming(RenameProcessor.java:130)
at com.intellij.refactoring.rename.RenameProcessor.doRun(RenameProcessor.java:120)
at com.intellij.refactoring.rename.inplace.MemberInplaceRenamer$MyRenameProcessor.doRun(MemberInplaceRenamer.java:319)
at com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider.disableChecksDuring(NonProjectFileWritingAccessProvider.java:181)
at com.intellij.refactoring.BaseRefactoringProcessor.run(BaseRefactoringProcessor.java:562)
at com.intellij.refactoring.rename.inplace.MemberInplaceRenamer.performRenameInner(MemberInplaceRenamer.java:249)
at com.intellij.refactoring.rename.inplace.MemberInplaceRenamer.a(MemberInplaceRenamer.java:218)
at com.intellij.openapi.command.impl.CoreCommandProcessor.a(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:85)
at com.intellij.refactoring.rename.inplace.MemberInplaceRenamer.a(MemberInplaceRenamer.java:217)
at com.intellij.openapi.application.TransactionGuardImpl.a(TransactionGuardImpl.java:89)
at com.intellij.openapi.application.TransactionGuardImpl.access$300(TransactionGuardImpl.java:39)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:114)
at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:124)
at com.intellij.openapi.application.TransactionGuardImpl$5.run(TransactionGuardImpl.java:270)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.a(LaterInvocator.java:410)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.h(IdeEventQueue.java:827)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:655)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Are there settings to specify the path to the views in the themes?
Yii has its own documentation tool which supports extended phpdoc for cross-referencing classes and methods. Would be great to add navigation for these. Here's description: https://github.com/yiisoft/yii2/blob/master/docs/internals/core-code-style.md#markdown
PhpStorm 2017.1
Build #PS-171.3780.104, built on March 21, 2017
JRE: 1.8.0_112-release-736-b13 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.4.0-70-generic
Kubuntu 16.04 Plasma
null java.lang.NullPointerException at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.getPhpClassInWidget(ObjectFactoryUtils.java:100) at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.findClassByArrayCreation(ObjectFactoryUtils.java:157) at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.getPhpClassByHash(ObjectFactoryUtils.java:173) at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.findClassByArrayCreation(ObjectFactoryUtils.java:163) at com.nvlad.yii2support.objectfactory.ObjectFactoryMissedFieldInspection$1.visitPhpArrayCreationExpression(ObjectFactoryMissedFieldInspection.java:33) at com.jetbrains.php.lang.psi.elements.impl.ArrayCreationExpressionImpl.accept(ArrayCreationExpressionImpl.java:24) at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:81) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:305) at com.intellij.concurrency.ApplierCompleter.d(ApplierCompleter.java:133) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1147) at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:105) at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:556) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66) at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:116) at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:96) at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142) at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:242) at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96) at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.pollAndExecCC(ForkJoinPool.java:1190) at java.util.concurrent.ForkJoinPool.helpComplete(ForkJoinPool.java:1879) at java.util.concurrent.ForkJoinPool.awaitJoin(ForkJoinPool.java:2045) at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:390) at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719) at java.util.concurrent.ForkJoinPool.invoke(ForkJoinPool.java:2616) at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:63) at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:57) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:316) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:226) at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:132) at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:83) at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:438) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1153) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:431) at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:556) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.d(PassExecutorService.java:430) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:406) at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142) at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:242) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:404) at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:165) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Hi!
In my view used a static variable from class instance, e.g:
$modelPayment::$typeDefault => 'Use as my mailing address'
But around "render" method call in my controller I see error "View require typeDefault parameter".
Thanx!
Hi.
I just opened PhpStorm 2017 and get this:
null
java.lang.NullPointerException
at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.getPhpClassInWidget(ObjectFactoryUtils.java:100)
at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.findClassByArrayCreation(ObjectFactoryUtils.java:157)
at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.getPhpClassByHash(ObjectFactoryUtils.java:173)
at com.nvlad.yii2support.objectfactory.ObjectFactoryUtils.findClassByArrayCreation(ObjectFactoryUtils.java:163)
at com.nvlad.yii2support.objectfactory.ObjectFactoryMissedFieldInspection$1.visitPhpArrayCreationExpression(ObjectFactoryMissedFieldInspection.java:33)
at com.jetbrains.php.lang.psi.elements.impl.ArrayCreationExpressionImpl.accept(ArrayCreationExpressionImpl.java:24)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:81)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:305)
at com.intellij.concurrency.ApplierCompleter.d(ApplierCompleter.java:133)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1153)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:556)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:116)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:242)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
hello.
the plugin shows error, if i write statements like this:
$viewParam = ['var1' => 1, 'var2' => 2];
$this->render('view-file', $viewParam);
but this one is not:
$this->render('view-file', ['var1' => 1, 'var2' => 2]);
16:45 AbstractMethodError: Method com/nvlad/yii2support/views/inspections/UnusedParametersLocalQuickFix.getName()Ljava/lang/String; is abstract
Method com/nvlad/yii2support/views/inspections/UnusedParametersLocalQuickFix.getName()Ljava/lang/String; is abstract java.lang.AbstractMethodError: Method com/nvlad/yii2support/views/inspections/UnusedParametersLocalQuickFix.getName()Ljava/lang/String; is abstract at com.nvlad.yii2support.views.inspections.UnusedParametersLocalQuickFix.getName(UnusedParametersLocalQuickFix.java) at com.intellij.codeInspection.ex.QuickFixWrapper.getFamilyName(QuickFixWrapper.java:67) at com.intellij.codeInsight.intention.impl.config.IntentionManagerSettings.isShowLightBulb(IntentionManagerSettings.java:92) at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.a(ShowIntentionsPass.java:236) at com.intellij.util.containers.ContainerUtil.or(ContainerUtil.java:2033) at com.intellij.util.containers.ContainerUtil.exists(ContainerUtil.java:2022) at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.a(ShowIntentionsPass.java:235) at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.doCollectInformation(ShowIntentionsPass.java:198) at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:434) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1026) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:427) at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:494) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:443) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:426) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:402) at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:154) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
I have this fatal errors: Method com/nvlad/yii2support/views/inspections/UnusedParametersLocalQuickFix.getName()Ljava/lang/String; is abstract Method com/nvlad/yii2support/views/inspections/UnusedParametersLocalQuickFix.getName()Ljava/lang/String; is abstract java.lang.AbstractMethodError: Method com/nvlad/yii2support/views/inspections/UnusedParametersLocalQuickFix.getName()Ljava/lang/String; is abstract at com.nvlad.yii2support.views.inspections.UnusedParametersLocalQuickFix.getName(UnusedParametersLocalQuickFix.java) at com.intellij.codeInspection.ex.QuickFixWrapper.getFamilyName(QuickFixWrapper.java:67) at com.intellij.codeInsight.intention.impl.config.IntentionManagerSettings.isShowLightBulb(IntentionManagerSettings.java:92) at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.a(ShowIntentionsPass.java:236) at com.intellij.util.containers.ContainerUtil.or(ContainerUtil.java:2033) at com.intellij.util.containers.ContainerUtil.exists(ContainerUtil.java:2022) at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.a(ShowIntentionsPass.java:235) at com.intellij.codeInsight.daemon.impl.ShowIntentionsPass.doCollectInformation(ShowIntentionsPass.java:198) at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:434) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1026) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:427) at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:494) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:443) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:426) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:402) at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:154) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Сейчас это делается подменой Yii.php файла и описанием phpDoc https://github.com/samdark/yii2-cookbook/blob/master/book/ide-autocompletion.md
null
java.lang.NullPointerException
at com.nvlad.yii2support.views.ViewsUtil.findDirectory(ViewsUtil.java:232)
at com.nvlad.yii2support.views.ViewsUtil.getContextDirectory(ViewsUtil.java:219)
at com.nvlad.yii2support.views.ViewsUtil.getViewFile(ViewsUtil.java:152)
at com.nvlad.yii2support.views.inspections.RequireParameterInspection$1.visitPhpMethodReference(RequireParameterInspection.java:48)
at com.jetbrains.php.lang.psi.elements.impl.MethodReferenceImpl.accept(MethodReferenceImpl.java:29)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:81)
at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:69)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:704)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:334)
at com.intellij.concurrency.ApplierCompleter.d(ApplierCompleter.java:133)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1153)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:556)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:116)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:242)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
String index out of range: -1
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1967)
at com.nvlad.yii2support.common.ClassUtils.getPhpClassByCallChain(ClassUtils.java:109)
at com.nvlad.yii2support.views.ViewsUtil.isValidRenderMethod(ViewsUtil.java:308)
at com.nvlad.yii2support.views.inspections.MissedViewInspection$1.visitPhpMethodReference(MissedViewInspection.java:31)
at com.jetbrains.php.lang.psi.elements.impl.MethodReferenceImpl.accept(MethodReferenceImpl.java:30)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:81)
at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:69)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:282)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.a(LocalInspectionsPass.java:250)
at com.intellij.concurrency.ApplierCompleter.c(ApplierCompleter.java:133)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1153)
at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:556)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:116)
at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:242)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Hi!
Is there a plan to OpenSource the plugin code?
I think it would be useful functionality to have code completion in Yii configuration arrays that creates objects.
I have stated to search possibility to make contribution, so if you have not time so probably it will do it.
Get error marking if my template gets data directly from $_GET, $_POST, $_REQUEST and so on.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.