kornilova203 / matlab-intellij-plugin Goto Github PK
View Code? Open in Web Editor NEWMatlab support for IntelliJ IDEs
License: MIT License
Matlab support for IntelliJ IDEs
License: MIT License
The current parser doesn't respect MATLAB comment rules, the block comment delimiters must be alone on their line or they won't be parsed as delimiters by MATLAB.
The current parser detects a comment block delimiter even if the delimiter is not alone on the line.
%{
if ok > 3
var = 4;
end%}
disp(var)
In MATLAB, the disp(var)
statement will be commented out and in the plugin it will not.
One can not plot with the -nodisplay option enabled. It should be possible to plot graphs.
Plugin 'MatlabSupport' failed to initialize and will be disabled. Please restart IntelliJ IDEA.
java.lang.NoSuchFieldError: isUnitTestMode
at com.github.kornilova203.matlab.MatlabUpdateComponent.initComponent(MatlabUpdateComponent.kt:37)
at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstance(ComponentManagerImpl.java:482)
at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponents(ComponentManagerImpl.java:104)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$createComponents$9(ApplicationImpl.java:449)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:164)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:586)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:532)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:86)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:151)
at com.intellij.openapi.application.impl.ApplicationImpl.createComponents(ApplicationImpl.java:473)
at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:88)
at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:407)
at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:393)
at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:208)
at com.intellij.idea.IdeaApplication.lambda$initApplication$0(IdeaApplication.java:74)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
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:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:347)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
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)
Hi, I was having a look at the resolver tests, but many of them were giving me errors of two types.
I would say both errors occur because I am using a different platform (Windows 10) / configuration. I have found a workaround for both, but there are probably better ways of doing it.
In testFunctionInBlockUnresolved
, testFunctionUnresolved
, testVariableUnresolved
and testVarInsideFunctionUnresolved
, I obtain:
java.lang.AssertionError: File accessed outside allowed roots: file://C:/matlab-IntelliJ-plugin/testData/resolve/NameOfTheMatlabFile.m;
Allowed roots: [a list of paths none of which is the one above]
Reading a bit about the error, I found a way to disable that check by setting the environment variable NO_FS_ROOTS_ACCESS_CHECK
to 1
.
The other error occurs in many other tests except a few:
kotlin.TypeCastException: null cannot be cast to non-null type com.github.korniloval.matlab.MatlabReference
at com.github.korniloval.matlab.resolve.ResolveTest.getExpectedDeclaration(ResolveTest.kt:76)
at com.github.korniloval.matlab.resolve.ResolveTest.getExpectedDeclaration(ResolveTest.kt:56)
at com.github.korniloval.matlab.resolve.ResolveTest.doTest(ResolveTest.kt:36)
at com.github.korniloval.matlab.resolve.ResolveTest.testVariableInCatchBlock(ResolveTest.kt:33)
Basically, it cannot find a reference at refOffset. It seems it is because my repo was checked out with Windows line endings (CRLF). If I use LF or CR instead, they all pass.
These three lines are legal syntax but show an error:
[V,~] = eig(S); % at the bracket after the `~`: "'...' or <expression> expected, got ']'"
t = V{:,ii}; % "':' unexpected"
pxsz(end+1:length(v)) = pxsz(end); % at the `+`: "',' or '...' expected, got '+'"
Similarly, in a function definition,
function res = istensor(~)
gives an error for unexpected ~
(it indicates that one input argument is accepted but not used).
In classdef
files,
properties (Access=private)
is parsed correctly, but
properties (Dependent)
shows an error at the closing bracket saying "'=' expected".
The setter function
function img = set.Array(img,data)
shows an error at the dot: "'.' unexpected". The same is true for getter methods, which start with get.
.
When overloading the end
function, the parser also throws a fit:
function ii = end(a,k,n)
It seems that end
is marked as a reserved keyword. It is true that it is not legal to use it as a variable name, but it is OK as a function name because it can be overloaded for custom classes.
Yes, MATLAB syntax is terrible... :)
function res = hello
res = struct()
res.someval = 42
end
hello().someval
res.someval
is reported as unused
Like in other language styles, it would be very useful to be able to fold code blocks (if-else, classdef, try-catch, switch etc).
I've just updated PyCharm Professional Edition to version 2020.2.2
I'm getting IDE Fatal Errors:
stacktrace.txt
`Error during processing of: jack_process.m
java.lang.ClassCastException: class com.github.kornilova203.matlab.psi.impl.MatlabRangeExprImpl cannot be cast to class com.github.kornilova203.matlab.psi.MatlabTypedExpr (com.github.kornilova203.matlab.psi.impl.MatlabRangeExprImpl and com.github.kornilova203.matlab.psi.MatlabTypedExpr are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @cdfb974)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.firstArgument(MatlabFunctionExprMixin.kt:55)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.processDeclarations(MatlabFunctionExprMixin.kt:17)
at com.intellij.psi.util.PsiTreeUtil.treeWalkUp(PsiTreeUtil.java:1162)
at com.github.kornilova203.matlab.MatlabReference.resolveInner(MatlabReference.kt:43)
at com.github.kornilova203.matlab.MatlabReference.access$resolveInner(MatlabReference.kt:19)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:22)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:20)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:155)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:227)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:205)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:155)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:256)
at com.github.kornilova203.matlab.MatlabReference.multiResolve(MatlabReference.kt:33)
at com.intellij.psi.PsiPolyVariantReferenceBase.isReferenceTo(PsiPolyVariantReferenceBase.java:53)
at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:38)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.lambda$execute$0(PsiSearchHelperImpl.java:938)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processTreeUp(LowLevelSearchUtil.java:87)
at com.intellij.psi.impl.search.LowLevelSearchUtil.lambda$processElementsAtOffsets$0(LowLevelSearchUtil.java:178)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processOffsets(LowLevelSearchUtil.java:204)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsAtOffsets(LowLevelSearchUtil.java:177)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.execute(PsiSearchHelperImpl.java:934)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:275)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:266)
at com.intellij.openapi.application.ReadActionProcessor.lambda$process$0(ReadActionProcessor.java:25)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:865)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:25)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processVirtualFile$11(PsiSearchHelperImpl.java:538)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1105)
at com.intellij.openapi.application.ex.ApplicationUtil.tryRunReadAction(ApplicationUtil.java:33)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processVirtualFile(PsiSearchHelperImpl.java:520)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processPsiFileRoots$7(PsiSearchHelperImpl.java:395)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$8(PsiSearchHelperImpl.java:468)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$9(PsiSearchHelperImpl.java:467)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$4(JobLauncherImpl.java:135)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$5(JobLauncherImpl.java:131)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:835)
at com.intellij.concurrency.JobLauncherImpl.processImmediatelyIfTooFew(JobLauncherImpl.java:142)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:40)
at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:49)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processFilesConcurrentlyDespiteWriteActions(PsiSearchHelperImpl.java:484)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processPsiFileRoots(PsiSearchHelperImpl.java:392)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processElementsWithTextInGlobalScope(PsiSearchHelperImpl.java:308)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.bulkProcessElementsWithWord(PsiSearchHelperImpl.java:217)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processSingleRequest(PsiSearchHelperImpl.java:1129)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processGlobalRequestsOptimized(PsiSearchHelperImpl.java:821)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequests(PsiSearchHelperImpl.java:750)
at com.intellij.psi.search.SearchRequestQuery.processResults(SearchRequestQuery.java:24)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.MergeQuery.processResults(MergeQuery.java:26)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.UniqueResultsQuery.processResults(UniqueResultsQuery.java:35)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:88)
at com.intellij.util.AbstractQuery.findAll(AbstractQuery.java:30)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.getReferences(MatlabUnusedVariableInspection.kt:116)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:87)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:83)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.visitAssignExpr(MatlabUnusedVariableInspection.kt:27)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:21)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:25)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$6(LocalInspectionsPass.java:317)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:168)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:110)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$7(LocalInspectionsPass.java:317)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)`
induced.txt
`Following exceptions happened soon after this one, most probably they are induced.
2020-09-24T10:45:52.416
Error during processing of: jack_process.m
java.lang.ClassCastException: class com.github.kornilova203.matlab.psi.impl.MatlabAllItemsRangeImpl cannot be cast to class com.github.kornilova203.matlab.psi.MatlabTypedExpr (com.github.kornilova203.matlab.psi.impl.MatlabAllItemsRangeImpl and com.github.kornilova203.matlab.psi.MatlabTypedExpr are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @cdfb974)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.firstArgument(MatlabFunctionExprMixin.kt:55)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.processDeclarations(MatlabFunctionExprMixin.kt:17)
at com.intellij.psi.util.PsiTreeUtil.treeWalkUp(PsiTreeUtil.java:1162)
at com.github.kornilova203.matlab.MatlabReference.resolveInner(MatlabReference.kt:43)
at com.github.kornilova203.matlab.MatlabReference.access$resolveInner(MatlabReference.kt:19)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:22)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:20)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:155)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:227)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:205)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:155)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:256)
at com.github.kornilova203.matlab.MatlabReference.multiResolve(MatlabReference.kt:33)
at com.intellij.psi.PsiPolyVariantReferenceBase.isReferenceTo(PsiPolyVariantReferenceBase.java:53)
at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:38)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.lambda$execute$0(PsiSearchHelperImpl.java:938)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processTreeUp(LowLevelSearchUtil.java:87)
at com.intellij.psi.impl.search.LowLevelSearchUtil.lambda$processElementsAtOffsets$0(LowLevelSearchUtil.java:178)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processOffsets(LowLevelSearchUtil.java:204)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsAtOffsets(LowLevelSearchUtil.java:177)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.execute(PsiSearchHelperImpl.java:934)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:275)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:266)
at com.intellij.openapi.application.ReadActionProcessor.lambda$process$0(ReadActionProcessor.java:25)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:865)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:25)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processVirtualFile$11(PsiSearchHelperImpl.java:538)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1105)
at com.intellij.openapi.application.ex.ApplicationUtil.tryRunReadAction(ApplicationUtil.java:33)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processVirtualFile(PsiSearchHelperImpl.java:520)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processPsiFileRoots$7(PsiSearchHelperImpl.java:395)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$8(PsiSearchHelperImpl.java:468)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$9(PsiSearchHelperImpl.java:467)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$4(JobLauncherImpl.java:135)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$5(JobLauncherImpl.java:131)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:835)
at com.intellij.concurrency.JobLauncherImpl.processImmediatelyIfTooFew(JobLauncherImpl.java:142)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:40)
at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:49)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processFilesConcurrentlyDespiteWriteActions(PsiSearchHelperImpl.java:484)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processPsiFileRoots(PsiSearchHelperImpl.java:392)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processElementsWithTextInGlobalScope(PsiSearchHelperImpl.java:308)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.bulkProcessElementsWithWord(PsiSearchHelperImpl.java:217)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processSingleRequest(PsiSearchHelperImpl.java:1129)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processGlobalRequestsOptimized(PsiSearchHelperImpl.java:821)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequests(PsiSearchHelperImpl.java:750)
at com.intellij.psi.search.SearchRequestQuery.processResults(SearchRequestQuery.java:24)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.MergeQuery.processResults(MergeQuery.java:26)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.UniqueResultsQuery.processResults(UniqueResultsQuery.java:35)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:88)
at com.intellij.util.AbstractQuery.findAll(AbstractQuery.java:30)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.getReferences(MatlabUnusedVariableInspection.kt:116)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:87)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:83)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.visitAssignExpr(MatlabUnusedVariableInspection.kt:27)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:21)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:25)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$6(LocalInspectionsPass.java:317)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:168)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:110)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$7(LocalInspectionsPass.java:317)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
2020-09-24T10:45:52.421
Error during processing of: jack_process.m
java.lang.ClassCastException: class com.github.kornilova203.matlab.psi.impl.MatlabRangeExprImpl cannot be cast to class com.github.kornilova203.matlab.psi.MatlabTypedExpr (com.github.kornilova203.matlab.psi.impl.MatlabRangeExprImpl and com.github.kornilova203.matlab.psi.MatlabTypedExpr are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @cdfb974)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.firstArgument(MatlabFunctionExprMixin.kt:55)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.processDeclarations(MatlabFunctionExprMixin.kt:17)
at com.intellij.psi.util.PsiTreeUtil.treeWalkUp(PsiTreeUtil.java:1162)
at com.github.kornilova203.matlab.MatlabReference.resolveInner(MatlabReference.kt:43)
at com.github.kornilova203.matlab.MatlabReference.access$resolveInner(MatlabReference.kt:19)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:22)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:20)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:155)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:227)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:205)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:155)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:256)
at com.github.kornilova203.matlab.MatlabReference.multiResolve(MatlabReference.kt:33)
at com.intellij.psi.PsiPolyVariantReferenceBase.isReferenceTo(PsiPolyVariantReferenceBase.java:53)
at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:38)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.lambda$execute$0(PsiSearchHelperImpl.java:938)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processTreeUp(LowLevelSearchUtil.java:87)
at com.intellij.psi.impl.search.LowLevelSearchUtil.lambda$processElementsAtOffsets$0(LowLevelSearchUtil.java:178)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processOffsets(LowLevelSearchUtil.java:204)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsAtOffsets(LowLevelSearchUtil.java:177)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.execute(PsiSearchHelperImpl.java:934)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:275)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:266)
at com.intellij.openapi.application.ReadActionProcessor.lambda$process$0(ReadActionProcessor.java:25)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:865)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:25)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processVirtualFile$11(PsiSearchHelperImpl.java:538)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1105)
at com.intellij.openapi.application.ex.ApplicationUtil.tryRunReadAction(ApplicationUtil.java:33)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processVirtualFile(PsiSearchHelperImpl.java:520)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processPsiFileRoots$7(PsiSearchHelperImpl.java:395)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$8(PsiSearchHelperImpl.java:468)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$9(PsiSearchHelperImpl.java:467)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$4(JobLauncherImpl.java:135)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$5(JobLauncherImpl.java:131)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:835)
at com.intellij.concurrency.JobLauncherImpl.processImmediatelyIfTooFew(JobLauncherImpl.java:142)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:40)
at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:49)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processFilesConcurrentlyDespiteWriteActions(PsiSearchHelperImpl.java:484)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processPsiFileRoots(PsiSearchHelperImpl.java:392)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processElementsWithTextInGlobalScope(PsiSearchHelperImpl.java:308)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.bulkProcessElementsWithWord(PsiSearchHelperImpl.java:217)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processSingleRequest(PsiSearchHelperImpl.java:1129)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processGlobalRequestsOptimized(PsiSearchHelperImpl.java:821)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequests(PsiSearchHelperImpl.java:750)
at com.intellij.psi.search.SearchRequestQuery.processResults(SearchRequestQuery.java:24)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.MergeQuery.processResults(MergeQuery.java:26)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.UniqueResultsQuery.processResults(UniqueResultsQuery.java:35)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:88)
at com.intellij.util.AbstractQuery.findAll(AbstractQuery.java:30)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.getReferences(MatlabUnusedVariableInspection.kt:116)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:87)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:83)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.visitAssignExpr(MatlabUnusedVariableInspection.kt:27)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:21)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:25)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$6(LocalInspectionsPass.java:317)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:168)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:110)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$7(LocalInspectionsPass.java:317)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
2020-09-24T10:45:52.450
Error during processing of: jack_process.m
java.lang.ClassCastException: class com.github.kornilova203.matlab.psi.impl.MatlabRangeExprImpl cannot be cast to class com.github.kornilova203.matlab.psi.MatlabTypedExpr (com.github.kornilova203.matlab.psi.impl.MatlabRangeExprImpl and com.github.kornilova203.matlab.psi.MatlabTypedExpr are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @cdfb974)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.firstArgument(MatlabFunctionExprMixin.kt:55)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.processDeclarations(MatlabFunctionExprMixin.kt:17)
at com.intellij.psi.util.PsiTreeUtil.treeWalkUp(PsiTreeUtil.java:1162)
at com.github.kornilova203.matlab.MatlabReference.resolveInner(MatlabReference.kt:43)
at com.github.kornilova203.matlab.MatlabReference.access$resolveInner(MatlabReference.kt:19)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:22)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:20)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:155)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:227)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:205)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:155)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:256)
at com.github.kornilova203.matlab.MatlabReference.multiResolve(MatlabReference.kt:33)
at com.intellij.psi.PsiPolyVariantReferenceBase.isReferenceTo(PsiPolyVariantReferenceBase.java:53)
at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:38)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.lambda$execute$0(PsiSearchHelperImpl.java:938)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processTreeUp(LowLevelSearchUtil.java:87)
at com.intellij.psi.impl.search.LowLevelSearchUtil.lambda$processElementsAtOffsets$0(LowLevelSearchUtil.java:178)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processOffsets(LowLevelSearchUtil.java:204)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsAtOffsets(LowLevelSearchUtil.java:177)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.execute(PsiSearchHelperImpl.java:934)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:275)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:266)
at com.intellij.openapi.application.ReadActionProcessor.lambda$process$0(ReadActionProcessor.java:25)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:865)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:25)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processVirtualFile$11(PsiSearchHelperImpl.java:538)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1105)
at com.intellij.openapi.application.ex.ApplicationUtil.tryRunReadAction(ApplicationUtil.java:33)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processVirtualFile(PsiSearchHelperImpl.java:520)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processPsiFileRoots$7(PsiSearchHelperImpl.java:395)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$8(PsiSearchHelperImpl.java:468)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$9(PsiSearchHelperImpl.java:467)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$4(JobLauncherImpl.java:135)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$5(JobLauncherImpl.java:131)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:835)
at com.intellij.concurrency.JobLauncherImpl.processImmediatelyIfTooFew(JobLauncherImpl.java:142)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:40)
at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:49)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processFilesConcurrentlyDespiteWriteActions(PsiSearchHelperImpl.java:484)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processPsiFileRoots(PsiSearchHelperImpl.java:392)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processElementsWithTextInGlobalScope(PsiSearchHelperImpl.java:308)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.bulkProcessElementsWithWord(PsiSearchHelperImpl.java:217)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processSingleRequest(PsiSearchHelperImpl.java:1129)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processGlobalRequestsOptimized(PsiSearchHelperImpl.java:821)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequests(PsiSearchHelperImpl.java:750)
at com.intellij.psi.search.SearchRequestQuery.processResults(SearchRequestQuery.java:24)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.MergeQuery.processResults(MergeQuery.java:26)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.UniqueResultsQuery.processResults(UniqueResultsQuery.java:35)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:88)
at com.intellij.util.AbstractQuery.findAll(AbstractQuery.java:30)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.getReferences(MatlabUnusedVariableInspection.kt:116)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:87)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:83)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.visitAssignExpr(MatlabUnusedVariableInspection.kt:27)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:21)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:25)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$6(LocalInspectionsPass.java:317)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:168)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:110)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$7(LocalInspectionsPass.java:317)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
2020-09-24T10:45:52.585
Error during processing of: jack_process.m
java.lang.ClassCastException: class com.github.kornilova203.matlab.psi.impl.MatlabRangeExprImpl cannot be cast to class com.github.kornilova203.matlab.psi.MatlabTypedExpr (com.github.kornilova203.matlab.psi.impl.MatlabRangeExprImpl and com.github.kornilova203.matlab.psi.MatlabTypedExpr are in unnamed module of loader com.intellij.ide.plugins.cl.PluginClassLoader @cdfb974)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.firstArgument(MatlabFunctionExprMixin.kt:55)
at com.github.kornilova203.matlab.psi.MatlabFunctionExprMixin.processDeclarations(MatlabFunctionExprMixin.kt:17)
at com.intellij.psi.util.PsiTreeUtil.treeWalkUp(PsiTreeUtil.java:1162)
at com.github.kornilova203.matlab.MatlabReference.resolveInner(MatlabReference.kt:43)
at com.github.kornilova203.matlab.MatlabReference.access$resolveInner(MatlabReference.kt:19)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:22)
at com.github.kornilova203.matlab.MatlabReference$Companion$RESOLVER$1.resolve(MatlabReference.kt:20)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:155)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$3(ResolveCache.java:227)
at com.intellij.openapi.util.Computable.get(Computable.java:17)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:205)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:155)
at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:256)
at com.github.kornilova203.matlab.MatlabReference.multiResolve(MatlabReference.kt:33)
at com.intellij.psi.PsiPolyVariantReferenceBase.isReferenceTo(PsiPolyVariantReferenceBase.java:53)
at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:38)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.lambda$execute$0(PsiSearchHelperImpl.java:938)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processTreeUp(LowLevelSearchUtil.java:87)
at com.intellij.psi.impl.search.LowLevelSearchUtil.lambda$processElementsAtOffsets$0(LowLevelSearchUtil.java:178)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processOffsets(LowLevelSearchUtil.java:204)
at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsAtOffsets(LowLevelSearchUtil.java:177)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$5.execute(PsiSearchHelperImpl.java:934)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:275)
at com.intellij.psi.impl.search.PsiSearchHelperImpl$2.processInReadAction(PsiSearchHelperImpl.java:266)
at com.intellij.openapi.application.ReadActionProcessor.lambda$process$0(ReadActionProcessor.java:25)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:865)
at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:61)
at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:25)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processVirtualFile$11(PsiSearchHelperImpl.java:538)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1105)
at com.intellij.openapi.application.ex.ApplicationUtil.tryRunReadAction(ApplicationUtil.java:33)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processVirtualFile(PsiSearchHelperImpl.java:520)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processPsiFileRoots$7(PsiSearchHelperImpl.java:395)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$8(PsiSearchHelperImpl.java:468)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.lambda$processFilesConcurrentlyDespiteWriteActions$9(PsiSearchHelperImpl.java:467)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$4(JobLauncherImpl.java:135)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.JobLauncherImpl.lambda$processImmediatelyIfTooFew$5(JobLauncherImpl.java:131)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:835)
at com.intellij.concurrency.JobLauncherImpl.processImmediatelyIfTooFew(JobLauncherImpl.java:142)
at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:40)
at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:49)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processFilesConcurrentlyDespiteWriteActions(PsiSearchHelperImpl.java:484)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processPsiFileRoots(PsiSearchHelperImpl.java:392)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processElementsWithTextInGlobalScope(PsiSearchHelperImpl.java:308)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.bulkProcessElementsWithWord(PsiSearchHelperImpl.java:217)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processSingleRequest(PsiSearchHelperImpl.java:1129)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processGlobalRequestsOptimized(PsiSearchHelperImpl.java:821)
at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequests(PsiSearchHelperImpl.java:750)
at com.intellij.psi.search.SearchRequestQuery.processResults(SearchRequestQuery.java:24)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.MergeQuery.processResults(MergeQuery.java:26)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.delegateProcessResults(AbstractQuery.java:119)
at com.intellij.util.UniqueResultsQuery.processResults(UniqueResultsQuery.java:35)
at com.intellij.util.AbstractQuery.doProcessResults(AbstractQuery.java:96)
at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:88)
at com.intellij.util.AbstractQuery.findAll(AbstractQuery.java:30)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.getReferences(MatlabUnusedVariableInspection.kt:116)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:87)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.registerProblem(MatlabUnusedVariableInspection.kt:83)
at com.github.kornilova203.matlab.inspections.MatlabUnusedVariableInspectionVisitor.visitAssignExpr(MatlabUnusedVariableInspection.kt:27)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:21)
at com.github.kornilova203.matlab.psi.impl.MatlabAssignExprImpl.accept(MatlabAssignExprImpl.java:25)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$6(LocalInspectionsPass.java:317)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:168)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:110)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$7(LocalInspectionsPass.java:317)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)`
Hi,
I have a computer that is not connected to the internet.
how can I download the plugin on another computer,
and then move it and install on the offline computer?
Probably it's possible to specify keywords only in bnf file
Currently global
is parsed as variable reference.
To fix it one needs to:
global
token to MatlabLexer.flexglobal_variable_declaration
rule.Add tab to Preferences | Editor | Code Style
e.g. function
, end
, elseif
, ...
As discussed in #26 , the current block comment editor action will insert the block comment suffix and prefix at the exact beginning and end of the selection.
MATLAB block comments only work when the prefix and suffix are on their respective lines.
The would block comment need to move the selection to select the whole lines of the selection before applying the suffix and prefix.
@kornilova-l found the class SelfManagingCommenter
that could possibly add the action needed.
I installed this plugin and and then react native plugin not working correctly. cli start window opens but run-{platform} command does not execute. then i removed this and then everything working again.
IDE : ultimate 2019.1
Platform : MAC High Sierra , Core i7 16GB
The operator referred to, https://www.mathworks.com/help/matlab/ref/ctranspose.html
The plugin has no problem recognizing .'
, which is the transpose operator. But it has problems with '
.
function f
print("hello")
<type "end"...>
% expected
function f
print("hello")
end
% actual
function f
print("hello")
end
Please add support for '.mlx' files which are the live script files in MATLAB.
Currently plugin contains only lexer
Matlabs try/catch blocks are not recognized and the corresponding "end" confuses all other block statement parsing.
This breaks a lot of the plugins tools in my code.
Seems like it depends on #13 because we need to find end of a statement which can be on different line.
Hi,
Is there a way to open a matlab terminal (running on windows) inside the IDE?
I've tried to set
Tools-> terminal-> application settings -> shell path
to
"MATLABROOT\MATLAB.exe" -nojvm
But it opens a new matlab command window which isn't inside the IDE terminal.
Thanks
In the example below, all except the first fieldname are falsely interpreted as keywords (similiarly to the highlighting parser of github, who apparently gets the "end" wrong). Consequently several syntax errors are reported and all following code is broken.
function test_func()
if condition
s = struct();
s.start = 3.0;
s.end = 10.0;
s.catch = 'Attention!';
s.if = 'Not breaking anything.';
end
end
Keywords that are fieldnames of structs should not be recognized with their keyword meaning.
Example:
Usage of a
on second line should be resolved to the definition global a
global a;
a = 1;
To support actions for global variables such as 'go to declaration' or 'find usages' we need to modify resolve.
There is big article about resolve in IntelliJ IDEs: References and Resolve.
Usually we only need to add mixin for a declaration rule in bnf grammar e.g. mixin for class_declaration
After adding mixin the MatlabResolvingScopeProcessor
will check these declarations during resolve process.
But there is a problem with global variables: one statement may declare multiple variables.
So we need to:
global_variable_declarations
rule in new global_variable_declaration
ruleMatlabDeclarationBase
mixin to global_variable_declaration
(similar to class_declaration
)MatlabBlockMixin
mixin to global_variable_declarations
(it will pass resolve processor to each variable declaration)ResolveTest
)Note: you don't need to resolve references from different files. It's a separate issue #24
Currently after typing letter e
IDE will show multiple completion variants such as else
, end
, while
... even thought this keywords make no sense in given context.
This should be fixed in MatlabCompletionContributor
class similar to PyKeywordCompletionContributor (see class constructor)
... because it closes plots, for example. But I guess it's a minor issue for now.
In class definitions many of the class attributes (or the method attributes or property attributes) are of type logical (true or false) and Mathworks documents a widely used shortcut for their specification, namely omitting the expression and only referencing the attribute name.
To quote directly from the documentation:
Simpler Syntax for true/false Attributes
You can use a simpler syntax for attributes whose values are true or false — the attribute name
alone implies true and adding the not operator (~) to the name implies false. For example:methods (Static)
...
end
Is the same as:methods (Static = true)
...
end
Use the not operator before an attribute name to define it as false:methods (~Static)
...
end
Is the same as:methods (Static = false)
...
end
All attributes that take a logical value (that is, true or false) have a default value of false. Therefore, specify an attribute only if you want to set it to true.
MatlabProgramRunner
can run any run configurations with any executor and it's not the latest extension. This affects every language that does not rely on DefaultProgramRunner
. E.g. https://youtrack.jetbrains.com/issue/GO-7202.
Other affected executors (minimal set of plugins)
I think It should also can recognized matlab commands defined by path variable in matlab. It certainly will add something to it.
Depends on #1
Currently one needs to set executable path in each run configuration.
It should be similar to specifying JDK or Python interpreter
Just need Autocomplete codes Support
The following example of an enumeration class is not recognised and leads to falsely reporting of syntax errors.
classdef TimeUnit < double & Unit
enumeration
millisecond (1/1000)
second (1)
minute (60)
hour (60*60)
day (60*60*24)
week (60*60*24*7)
end
methods
function d = asDuration( self)
d = seconds( self);
end
end
end
Is there an actual reason for this or is it more of a (mis)configuration issue? Anyways, hope it can be resolved.
OSX 10.14.6 in case that matters.
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.