Giter Site home page Giter Site logo

kornilova203 / matlab-intellij-plugin Goto Github PK

View Code? Open in Web Editor NEW
118.0 9.0 16.0 1.39 MB

Matlab support for IntelliJ IDEs

License: MIT License

Kotlin 65.48% Lex 3.82% MATLAB 5.75% Limbo 0.04% M 1.41% Objective-C 0.39% Java 23.03% HTML 0.07% Mercury 0.01%
matlab intellij octave

matlab-intellij-plugin's People

Contributors

dullin avatar fernandreu avatar gt-opalrt avatar guillaumetaffin avatar kornilov-mr avatar kornilova203 avatar unthrottled avatar yapravaatynet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

matlab-intellij-plugin's Issues

Conflicts with React native pluggin

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

Fieldnames of struct arrays are falsely interpreted as keywords

Observation

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

Expected behaviour

Keywords that are fieldnames of structs should not be recognized with their keyword meaning.

Comment block delimiters must be alone on their line

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.

Resolve global variables

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:

  1. wrap each IDENTIFIER from global_variable_declarations rule in new global_variable_declaration rule
  2. add MatlabDeclarationBase mixin to global_variable_declaration (similar to class_declaration)
  3. add MatlabBlockMixin mixin to global_variable_declarations (it will pass resolve processor to each variable declaration)
  4. write resolve tests (see ResolveTest)

Note: you don't need to resolve references from different files. It's a separate issue #24

Enable folding of code blocks

Feature request

Like in other language styles, it would be very useful to be able to fold code blocks (if-else, classdef, try-catch, switch etc).

Errors running resolver tests

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.

Matlab terminal

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

Logical class-/property-/method-attributes can be specified without an expression

Observation

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.

support try/catch blocks

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.

Plugin 'MatlabSupport' failed to initialize and will be disabled. Please restart IntelliJ IDEA.

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)

Exception in plugin Matlab Support (0.8)

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)`

Adding block comments with the editor works only when you select whole lines only.

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.

Some parser errors

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... :)

Support '.mlx' file

Please add support for '.mlx' files which are the live script files in MATLAB.

Enumeration keyword is not recognized

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.