GithubHelp home page GithubHelp logo

intellij-thrift's Introduction

Build Status

Plugin to support Thrift language in IntelliJ

How to build

JDK 11 or later is required to build from source.

./gradlew :thrift:buildPlugin

How to run locally with new changes

./gradlew :thrift:runIde

intellij-thrift's People

Contributors

ademjensen avatar clatisus avatar fkorotkov avatar groz avatar jcdavis avatar kasecato avatar lukaszwawrzyk avatar luozhenyu avatar mzarnowski avatar okondrashin avatar saturn4er avatar sohamr avatar tpasternak avatar xblackcat avatar xfyre avatar yuokada 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

intellij-thrift's Issues

Angle-brackets code completion annoyance

If I'm typing a struct value or parameter that has angle brackets, typing the closing angle bracket ">" doesn't overwrite the one that was added automatically. That means if I just try to type in the following:

struct Foo {
  1:list<string> abc
}

I actually end up with this instead:

struct Foo {
  1:list<string> bar>
}

In a similar vein, when I type the closing } my code layout preferences are not taken in to account. Other languages will automatically move the } to the start of the line but Thrift will just insert the } at the current cursor position, giving me something like the following:

struct Foo {
  1:list<string> bar
  }

Does intellij-thrift support in class path thrift including

For example, we have A module which has the structure as :
.
├── main
│   ├── java
│   │   └── com
│   │   └── sankuai
│   │   └── App.java
│   └── resources
│   └── thrift
│   └── cross-module.thrift

Here, in another module B which has A module as a maven dependency , we want to include the cross-module.thrift.
It is obviously that if we download this packaged jar of A, extract the cross-module.thrift ,we can achieve the goal. However this can be annoying to handle such a manner since the A module may various and update.
Does intellij-thrift support to include a thrift file in another JAR which it resides in the java class path?

Support dlang namespace

namespace d foo

This is highlighted as an error, because the plugin does not seem to know that d is a valid namespace, which appears in the official thrift tutorial file.

Find Usages doesn't work across modules

If you have a multi-module project, Find Usages should shows me usages of my class in any of the modules, not just the one where thrift files are in.

Find Usages with ordinary Java/Scala ... classes shows matches in all modules.
See for example:

screen shot 2013-11-05 at 9 32 38 am

Worker exited due to exception: com/intellij/util/indexing/IndexId

version: 0.9.7

Each time I use Class search, thrift support plugin make IDE crash. Following is details.

Worker exited due to exception: com/intellij/util/indexing/IndexId
java.lang.NoClassDefFoundError: com/intellij/util/indexing/IndexId
	at com.intellij.plugins.thrift.ThriftClassContributor.getNames(ThriftClassContributor.java:21)
	at com.intellij.ide.util.gotoByName.ContributorsBasedGotoByModel$2.processInReadAction(ContributorsBasedGotoByModel.java:111)
	at com.intellij.ide.util.gotoByName.ContributorsBasedGotoByModel$2.processInReadAction(ContributorsBasedGotoByModel.java:95)
	at com.intellij.openapi.application.ReadActionProcessor$1.compute(ReadActionProcessor.java:32)
	at com.intellij.openapi.application.ReadActionProcessor$1.compute(ReadActionProcessor.java:29)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:895)
	at com.intellij.openapi.application.ReadActionProcessor.process(ReadActionProcessor.java:29)
	at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:123)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1055)
	at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:96)
	at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:568)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:519)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
	at com.intellij.concurrency.ApplierCompleter.b(ApplierCompleter.java:106)
	at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:91)
	at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool.helpComplete(ForkJoinPool.java:1870)
	at java.util.concurrent.ForkJoinPool.externalHelpComplete(ForkJoinPool.java:2467)
	at java.util.concurrent.ForkJoinTask.externalAwaitDone(ForkJoinTask.java:324)
	at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:391)
	at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719)
	at java.util.concurrent.ForkJoinPool.invoke(ForkJoinPool.java:2616)
	at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:61)
	at com.intellij.concurrency.JobLauncher.invokeConcurrentlyUnderProgress(JobLauncher.java:57)
	at com.intellij.ide.util.gotoByName.ContributorsBasedGotoByModel.processNames(ContributorsBasedGotoByModel.java:136)
	at com.intellij.ide.util.gotoByName.DefaultChooseByNameItemProvider.filterElements(DefaultChooseByNameItemProvider.java:77)
	at com.intellij.ide.util.gotoByName.ChooseByNameBase$CalcElementsThread.a(ChooseByNameBase.java:1552)
	at com.intellij.ide.util.gotoByName.ChooseByNameBase$CalcElementsThread.a(ChooseByNameBase.java:1531)
	at com.intellij.ide.util.gotoByName.ChooseByNameBase$CalcElementsThread.a(ChooseByNameBase.java:1513)
	at com.intellij.ide.util.gotoByName.ChooseByNameBase$CalcElementsThread.performInReadAction(ChooseByNameBase.java:1494)
	at com.intellij.ide.util.gotoByName.ChooseByNameBase$CalcElementsThread.a(ChooseByNameBase.java:1485)
	at com.intellij.openapi.project.DumbService$1.run(DumbService.java:94)
	at com.intellij.openapi.project.DumbService$2.compute(DumbService.java:136)
	at com.intellij.openapi.project.DumbService$2.compute(DumbService.java:130)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:899)
	at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:130)
	at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:91)
	at com.intellij.ide.util.gotoByName.ChooseByNameBase$CalcElementsThread.runBackgroundProcess(ChooseByNameBase.java:1485)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.a(ProgressIndicatorUtils.java:221)
	at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:199)
	at com.intellij.openapi.progress.impl.CoreProgressManager$3.run(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:568)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:519)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:164)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:196)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.a(ProgressIndicatorUtils.java:219)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.access$000(ProgressIndicatorUtils.java:44)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils$4.run(ProgressIndicatorUtils.java:179)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.intellij.util.indexing.IndexId PluginClassLoader[com.intellij.plugins.thrift, 0.9.7]
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:65)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 53 more

rename namespace broken

include "ext<caret>ernal.thrift"

Caret is at indicated location. I want to rename "external" namespace, and all references in the current thrift file.

Problems:

  1. The rename dialog has a very confusing summary, seemingly rendering the contents of the included file
  2. Accepting the rename dialog will give an error like shown in the screenshot:
    image

resolve struct literals

Actually I'm not sure what this feature is called according tot the Thrift grammar.
It's like a const map, but it is validated by the Thrift compiler to be conforming to the referenced struct definition.

enum MyEnum {
    FOO,
    BAR,
    BAZ
}

struct SomeFlags {
    1: MyEnum before,
    2: MyEnum now,
    3: MyEnum after,
}

struct Data {
    1: optional SomeFlags someFlags = {"before": MyEnum.BAZ, "after" : MyEnum.BAR}
}

Inside the "Data" definition, I would expect resolving and completion for the following:
1: "before"
2: MyEnum.BAZ
3: "after"
4: MyEnum.BAR

Add support for Go To Declaration

Another wish ...

It would be nice if I can select Go To Declaration in my (java/scala) source and it would take me directly to thrift code.

Right now it takes me to generated java class.

highlighting of hexadecimal numeric literals inconsistent from decimal ones

A herxadecimal literal like 0x7fff is not highlighed the same way as a decimal one.
In the Java editor of IDEA, both types of numeric literals get the same highlighting.
I think it makes sense for numeric literals in the Thrift language to be highlighted the same way.

At the moment, the "0" part is highlighted blue, while the "x7fff" part is highlighted black. In the Java editor, the whole hexadecimal literal has the same highlighting.

find usages support

The main thing I find missing (in version 0.2) is "highlight usages" (Ctrl-Shift-F7).

In a large Thrift file, it would be very convenient to highlight a specific type definition, and see in which structures and service methods it is actually used.

validate member id/name uniqueness for enum/struct/union/exception

For the following top-level types, the members need have unique ids, as well as unique names:

  • enum (as well as the obsolete senum)
  • struct
  • union
  • exception

Non-unique id or name within a top-level type should be marked "red", since this the Thrift compiler will refuse to compile such IDL.

Thrift compiler runs under project JDK

For reasons which I don't understand, the Thrift plugin, when compiling, runs something using the project's JDK version. So for instance, if I have a project that is using JDK 1.7, when I try to compile I get this error from Thrift:

Error:Internal error: (java.lang.UnsupportedClassVersionError) com/intellij/plugins/thrift/jps/ModelSerializerExtension : Unsupported major.minor version 52.0
java.lang.UnsupportedClassVersionError: com/intellij/plugins/thrift/jps/ModelSerializerExtension : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:363)
at java.util.ServiceLoader$1.next(ServiceLoader.java:445)
at com.intellij.util.containers.ContainerUtilRt.copy(ContainerUtilRt.java:179)
at com.intellij.util.containers.ContainerUtilRt.newArrayList(ContainerUtilRt.java:168)
at org.jetbrains.jps.plugin.impl.JpsPluginManagerImpl.loadExtensions(JpsPluginManagerImpl.java:18)
at org.jetbrains.jps.service.impl.JpsServiceManagerImpl.getExtensions(JpsServiceManagerImpl.java:59)
at org.jetbrains.jps.model.serialization.JpsModelSerializerExtension.getExtensions(JpsModelSerializerExtension.java:46)
at org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer.getSdkPropertiesSerializer(JpsSdkTableSerializer.java:205)
at org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer.loadSdk(JpsSdkTableSerializer.java:99)
at org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer.loadSdks(JpsSdkTableSerializer.java:80)
at org.jetbrains.jps.model.serialization.JpsGlobalLoader$SdkTableSerializer.loadExtension(JpsGlobalLoader.java:144)
at org.jetbrains.jps.model.serialization.JpsGlobalLoader$SdkTableSerializer.loadExtension(JpsGlobalLoader.java:137)
at org.jetbrains.jps.model.serialization.JpsLoaderBase.loadComponents(JpsLoaderBase.java:61)
at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadGlobalComponents(JpsGlobalLoader.java:83)
at org.jetbrains.jps.model.serialization.JpsGlobalLoader.load(JpsGlobalLoader.java:73)
at org.jetbrains.jps.model.serialization.JpsGlobalLoader.loadGlobalSettings(JpsGlobalLoader.java:59)
at org.jetbrains.jps.model.serialization.impl.JpsSerializationManagerImpl.loadModel(JpsSerializationManagerImpl.java:38)
at org.jetbrains.jps.cmdline.JpsModelLoaderImpl.loadModel(JpsModelLoaderImpl.java:45)
at org.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:78)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:266)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler$1.run(BuildMain.java:232)
at org.jetbrains.jps.service.impl.SharedThreadPoolImpl$1.run(SharedThreadPoolImpl.java:44)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

If I change the project's JDK to 1.8, this error goes away, but then I have other problems with my 1.7 project. The only solution I have found to this is to disable the thrift plugin.

validate top-level type names for uniqueness

In larger Thrift IDL definitions it happens that you create a top-level type (enum, struct, union, etc) whose name is already used.

The plugin could validate that names of top-level types are unique within the Thrift file.

The Thrift compiler will reject this with an error like the following:

[WARNING:C:/work/plq/src/main/resources/outgoing.thrift:214] Duplicate typename UserProfile found in outgoing
[ERROR:C:/work/plq/src/main/resources/outgoing.thrift:214] (last token was 'service')
Type "UserProfile" is already defined.

Since this breaks compilation, this should be "red".

Favorites Tab broken and causing thrift plugin crash

Trying to open my Favorites Window (Cmd + 2) in PyCharm at first caused a blank view (none of my bookmarked or favorites appeared at all) then triggered the error message below. I bookmark lots of code snippets, and I'd love to have both thrift plugin and bookmarks working.

com/intellij/ide/structureView/impl/java/AccessLevelProvider
java.lang.NoClassDefFoundError: com/intellij/ide/structureView/impl/java/AccessLevelProvider
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
	at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:276)
	at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:272)
	at com.intellij.util.lang.UrlClassLoader._findClass(UrlClassLoader.java:241)
	at com.intellij.ide.plugins.cl.PluginClassLoader.b(PluginClassLoader.java:142)
	at com.intellij.ide.plugins.cl.PluginClassLoader.a(PluginClassLoader.java:74)
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:61)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at com.intellij.plugins.thrift.structure.ThriftStructureViewModel.<init>(ThriftStructureViewModel.java:38)
	at com.intellij.plugins.thrift.structure.ThriftStructureViewFactory$1.createStructureViewModel(ThriftStructureViewFactory.java:36)
	at com.intellij.ide.bookmarks.Bookmark.getQualifiedName(Bookmark.java:303)
	at com.intellij.ide.bookmarks.Bookmark.toString(Bookmark.java:285)
	at com.intellij.ide.bookmarks.BookmarksFavoriteListProvider$1.update(BookmarksFavoriteListProvider.java:104)
	at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:88)
	at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:41)
	at com.intellij.ide.favoritesTreeView.FavoritesTreeNodeDescriptor.update(FavoritesTreeNodeDescriptor.java:50)
	at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:88)
	at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:41)
	at com.intellij.ide.util.treeView.AbstractTreeBuilder.updateNodeDescriptor(AbstractTreeBuilder.java:545)
	at com.intellij.ide.util.treeView.AbstractTreeUi$22.perform(AbstractTreeUi.java:935)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1856)
	at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:931)
	at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:883)
	at com.intellij.ide.util.treeView.AbstractTreeUi.collectNodesToInsert(AbstractTreeUi.java:2255)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$4000(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$29.perform(AbstractTreeUi.java:1392)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.TreeRunnable$TreeConsumer.consume(TreeRunnable.java:50)
	at org.jetbrains.concurrency.DonePromise.done(DonePromise.java:40)
	at com.intellij.ide.util.treeView.AbstractTreeUi.updateNodeChildrenNow(AbstractTreeUi.java:1373)
	at com.intellij.ide.util.treeView.AbstractTreeUi.doUpdateChildren(AbstractTreeUi.java:1281)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$3000(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$25$1.perform(AbstractTreeUi.java:1173)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1856)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$2600(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$25.perform(AbstractTreeUi.java:1170)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.openapi.util.ActionCallback$ExecutedExecutionCallback.doWhenExecuted(ActionCallback.java:177)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.ide.util.treeView.AbstractTreeUi.updateNodeChildren(AbstractTreeUi.java:1165)
	at com.intellij.ide.util.treeView.AbstractTreeUi.updateNodesToInsert(AbstractTreeUi.java:1668)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$4300(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$29.lambda$perform$0(AbstractTreeUi.java:1395)
	at com.intellij.openapi.util.AsyncResult.lambda$doWhenDone$1(AsyncResult.java:77)
	at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:100)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.openapi.util.AsyncResult.doWhenDone(AsyncResult.java:77)
	at com.intellij.ide.util.treeView.AbstractTreeUi$29.perform(AbstractTreeUi.java:1393)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.TreeRunnable$TreeConsumer.consume(TreeRunnable.java:50)
	at org.jetbrains.concurrency.DonePromise.done(DonePromise.java:40)
	at com.intellij.ide.util.treeView.AbstractTreeUi.updateNodeChildrenNow(AbstractTreeUi.java:1373)
	at com.intellij.ide.util.treeView.AbstractTreeUi.doUpdateChildren(AbstractTreeUi.java:1281)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$3000(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$25$1.perform(AbstractTreeUi.java:1173)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1856)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$2600(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$25.perform(AbstractTreeUi.java:1170)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.openapi.util.ActionCallback$ExecutedExecutionCallback.doWhenExecuted(ActionCallback.java:177)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.ide.util.treeView.AbstractTreeUi.updateNodeChildren(AbstractTreeUi.java:1165)
	at com.intellij.ide.util.treeView.AbstractTreeUi.updateSubtreeNow(AbstractTreeUi.java:1070)
	at com.intellij.ide.util.treeView.AbstractTreeUpdater$3.perform(AbstractTreeUpdater.java:262)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.openapi.util.ActionCallback$ExecutedExecutionCallback.doWhenExecuted(ActionCallback.java:177)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.ide.util.treeView.AbstractTreeUpdater.performUpdate(AbstractTreeUpdater.java:257)
	at com.intellij.ide.util.treeView.AbstractTreeUi$13.perform(AbstractTreeUi.java:498)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.openapi.util.ActionCallback$ExecutedExecutionCallback.doWhenExecuted(ActionCallback.java:177)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.ide.util.treeView.AbstractTreeUi.doExpandNodeChildren(AbstractTreeUi.java:490)
	at com.intellij.ide.util.treeView.AbstractTreeBuilder.expandNodeChildren(AbstractTreeBuilder.java:333)
	at com.intellij.ide.projectView.BaseProjectTreeBuilder.expandNodeChildren(BaseProjectTreeBuilder.java:103)
	at com.intellij.ide.util.treeView.AbstractTreeUi$MyExpansionListener.treeExpanded(AbstractTreeUi.java:4788)
	at javax.swing.JTree.fireTreeExpanded(JTree.java:2775)
	at javax.swing.JTree.setExpandedState(JTree.java:3629)
	at javax.swing.JTree.expandPath(JTree.java:2212)
	at com.intellij.ide.util.treeView.AbstractTreeUi$52.perform(AbstractTreeUi.java:3261)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.UpdaterTreeState.process(UpdaterTreeState.java:123)
	at com.intellij.ide.util.treeView.AbstractTreeUi.processInnerChange(AbstractTreeUi.java:3282)
	at com.intellij.ide.util.treeView.AbstractTreeUi.expandPath(AbstractTreeUi.java:3250)
	at com.intellij.ide.util.treeView.AbstractTreeUi.expand(AbstractTreeUi.java:1483)
	at com.intellij.ide.util.treeView.AbstractTreeUi.expand(AbstractTreeUi.java:1471)
	at com.intellij.ide.util.treeView.AbstractTreeUi.access$2100(AbstractTreeUi.java:64)
	at com.intellij.ide.util.treeView.AbstractTreeUi$16.perform(AbstractTreeUi.java:724)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.ide.util.treeView.AbstractTreeUi.initRootNodeNowIfNeeded(AbstractTreeUi.java:761)
	at com.intellij.ide.util.treeView.AbstractTreeUi.updateSubtreeNow(AbstractTreeUi.java:1051)
	at com.intellij.ide.util.treeView.AbstractTreeUpdater$3.perform(AbstractTreeUpdater.java:262)
	at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:36)
	at com.intellij.openapi.util.ActionCallback$ExecutedExecutionCallback.doWhenExecuted(ActionCallback.java:177)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.ide.util.treeView.AbstractTreeUpdater.performUpdate(AbstractTreeUpdater.java:257)
	at com.intellij.ide.util.treeView.AbstractTreeUpdater$2.run(AbstractTreeUpdater.java:218)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:337)
	at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:327)
	at com.intellij.util.ui.update.MergingUpdateQueue.lambda$flush$1(MergingUpdateQueue.java:277)
	at com.intellij.util.ui.UIUtil.invokeAndWaitIfNeeded(UIUtil.java:2781)
	at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:288)
	at com.intellij.util.ui.update.MergingUpdateQueue.showNotify(MergingUpdateQueue.java:223)
	at com.intellij.ide.util.treeView.AbstractTreeUpdater.showNotify(AbstractTreeUpdater.java:361)
	at com.intellij.ide.util.treeView.AbstractTreeUi.activate(AbstractTreeUi.java:394)
	at com.intellij.ide.util.treeView.AbstractTreeUi.initRootNode(AbstractTreeUi.java:657)
	at com.intellij.ide.util.treeView.AbstractTreeBuilder.initRootNode(AbstractTreeBuilder.java:250)
	at com.intellij.ide.favoritesTreeView.FavoritesViewTreeBuilder.<init>(FavoritesViewTreeBuilder.java:118)
	at com.intellij.ide.favoritesTreeView.FavoritesTreeViewPanel.<init>(FavoritesTreeViewPanel.java:114)
	at com.intellij.ide.favoritesTreeView.FavoritesPanel.<init>(FavoritesPanel.java:55)
	at com.intellij.ide.projectView.impl.FavoritesViewToolWindowFactory.createToolWindowContent(FavoritesViewToolWindowFactory.java:36)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.ensureContentInitialized(ToolWindowImpl.java:573)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.getContentManager(ToolWindowImpl.java:407)
	at com.intellij.openapi.wm.impl.commands.RequestFocusInToolWindowCmd.e(RequestFocusInToolWindowCmd.java:73)
	at com.intellij.openapi.wm.impl.commands.RequestFocusInToolWindowCmd.a(RequestFocusInToolWindowCmd.java:61)
	at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:100)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.openapi.wm.impl.commands.RequestFocusInToolWindowCmd.run(RequestFocusInToolWindowCmd.java:61)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.ToolWindowsPane$AddDockedComponentCmd.run(ToolWindowsPane.java:767)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.a(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.a(LaterInvocator.java:424)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
	at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:822)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: com.intellij.ide.structureView.impl.java.AccessLevelProvider PluginClassLoader[com.intellij.plugins.thrift, 0.9.7] com.intellij.ide.plugins.cl.PluginClassLoader@4260680f
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:63)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 198 more

Support includes with "../"

For example:
include "../base.thrift"
Is highlighted with a message:

Unresolved include

And all references to symbols from that include will be marked as:

Unresolved symbol

However this will be compiled successfully by standalone thrift compiler.

support extends

Support "extends" in service declarations:

  • highlight "extends" as keyword
  • suggest "extends" for completion in relevant place
  • resolve super type (should be another service)

No valid translators found

Warning:Thrift compiler: No valid translators found for module ThriftDemo. Check facet configuration.

but when Build/Thrift compiler Test, Apache Thrift Compiler is Found, thrift version 0.10.0

IDEA version: 2016.3.4
Thrift version: 0.10.0
Java version: 1.8.0

Documentation

Is there any documentation available how to use this plug-in ?

I did the installation (IntelliJ IDEA 2017.2.2) and see with new project (except the empty project ?) the following:

image

I also see in the "Project Structure":

image

and

image

Finally in "Default Settings" I have:

image

But I have absolutely no idea how to compile with Thrift or how the formatting of the Thrift file works.

Thanks a lot for any help !!!

resolve enum/constant references

When defining a default value for a parameter, we typically use a specific enum values, or a defined numeric constant.

At the moment such expressions do not resolve to the enum member or the constant definition.

Broken with IDEA 14.1

When I upgrade IDEA to 14.1 - I get tons of errors:

null
java.lang.NullPointerException
    at com.intellij.plugins.thrift.lang.psi.presentation.ThriftTopLevelDeclarationPresentationProvider$1.getLocationString(ThriftTopLevelDeclarationPresentationProvider.java:27)
    at com.intellij.ide.projectView.PresentationData.updateFrom(PresentationData.java:184)
    at com.intellij.ide.util.treeView.smartTree.TreeElementWrapper.update(TreeElementWrapper.java:41)
    at com.intellij.ide.util.treeView.PresentableNodeDescriptor.getUpdatedPresentation(PresentableNodeDescriptor.java:88)
    at com.intellij.ide.util.treeView.PresentableNodeDescriptor.update(PresentableNodeDescriptor.java:41)
    at com.intellij.ide.util.treeView.AbstractTreeBuilder.updateNodeDescriptor(AbstractTreeBuilder.java:588)
    at com.intellij.ide.util.treeView.AbstractTreeUi$22.perform(AbstractTreeUi.java:944)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1830)
    at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:940)
    at com.intellij.ide.util.treeView.AbstractTreeUi.update(AbstractTreeUi.java:892)
    at com.intellij.ide.util.treeView.AbstractTreeUi.processExistingNode(AbstractTreeUi.java:3012)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$5000(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi$33$1.run(AbstractTreeUi.java:1728)
    at com.intellij.ide.util.treeView.AbstractTreeUi$35.perform(AbstractTreeUi.java:1818)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1830)
    at com.intellij.ide.util.treeView.AbstractTreeUi.execute(AbstractTreeUi.java:1815)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$5300(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi$34.perform(AbstractTreeUi.java:1783)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeUi.executeYieldingRequest(AbstractTreeUi.java:2091)
    at com.intellij.ide.util.treeView.AbstractTreeUi.access$5900(AbstractTreeUi.java:62)
    at com.intellij.ide.util.treeView.AbstractTreeUi$38$1.perform(AbstractTreeUi.java:1983)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeBuilder.runOnYeildingDone(AbstractTreeBuilder.java:433)
    at com.intellij.ide.util.treeView.AbstractTreeUi.runOnYieldingDone(AbstractTreeUi.java:2186)
    at com.intellij.ide.util.treeView.AbstractTreeUi$38.perform(AbstractTreeUi.java:1978)
    at com.intellij.ide.util.treeView.TreeRunnable.run(TreeRunnable.java:33)
    at com.intellij.ide.util.treeView.AbstractTreeBuilder$1.process(AbstractTreeBuilder.java:53)
    at com.intellij.ide.util.treeView.AbstractTreeBuilder$1.process(AbstractTreeBuilder.java:50)
    at com.intellij.util.containers.TransferToEDTQueue.processNext(TransferToEDTQueue.java:98)
    at com.intellij.util.containers.TransferToEDTQueue.access$300(TransferToEDTQueue.java:36)
    at com.intellij.util.containers.TransferToEDTQueue$1.run(TransferToEDTQueue.java:57)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:676)
    at java.awt.EventQueue$2.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
    at com.intellij.ide.IdeEventQueue.e(IdeEventQueue.java:734)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:569)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

But all works.

wrong text range for imported references

namespace java com.somecompany

struct SharedData {
  1: i32 id,
  2: binary value
}
namespace java com.somecompany

include "external.thrift"

service Repository {
  void publish(1: external.SharedData data)
}

The second .thrift file is importing the first.
The reference to the imported SharedData structure in the "publish" service method declaration is using the wrong text range.

See the screenshot of Ctrl-Hover - it appears that the text length of the prefix "external." is not taken into account.
image

documentation popup support

Our Thrift files are typically well-commented.

Having convenience Ctrl-Q support in the editor would be a nice improvement.

NoSuchMethodError

com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil.a(CollectHighlightsUtil.java:158)
at com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil.findCommonParent(CollectHighlightsUtil.java:139)
at com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil.getElementsInRange(CollectHighlightsUtil.java:53)
at com.intellij.codeInsight.daemon.impl.CollectHighlightsUtil.getElementsInRange(CollectHighlightsUtil.java:45)
at com.intellij.codeInsight.daemon.impl.LineMarkersPass.collectInformationWithProgress(LineMarkersPass.java:113)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:58)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:62)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1$1.run(PassExecutorService.java:357)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1182)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1.run(PassExecutorService.java:348)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:226)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:345)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:321)
at com.intellij.concurrency.JobLauncherImpl$3.call(JobLauncherImpl.java:145)
at com.intellij.concurrency.JobLauncherImpl$3.call(JobLauncherImpl.java:142)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at com.intellij.concurrency.PrioritizedFutureTask.access$101(PrioritizedFutureTask.java:31)
at com.intellij.concurrency.PrioritizedFutureTask$1.run(PrioritizedFutureTask.java:70)
at com.intellij.concurrency.PrioritizedFutureTask.run(PrioritizedFutureTask.java:113)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

java.lang.NoSuchMethodError: com.intellij.lang.parser.GeneratedParserUtilBase.adapt_builder_(Lcom/intellij/psi/tree/IElementType;Lcom/intellij/lang/PsiBuilder;Lcom/intellij/lang/PsiParser;[Lcom/intellij/psi/tree/TokenSet;)Lcom/intellij/lang/PsiBuilder;
at com.intellij.plugins.thrift.lang.parser.ThriftParser.parse(ThriftParser.java:22)
at com.intellij.psi.tree.ILazyParseableElementType.doParseContents(ILazyParseableElementType.java:64)
at com.intellij.psi.tree.IFileElementType.parseContents(IFileElementType.java:43)
at com.intellij.psi.impl.source.tree.LazyParseableElement.e(LazyParseableElement.java:165)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:209)
at com.intellij.psi.impl.source.tree.LazyParseableElement.getFirstChildNode(LazyParseableElement.java:34)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:44)
at com.intellij.psi.impl.source.PsiFileImpl.getFirstChild(PsiFileImpl.java:746)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:440)
at com.intellij.psi.SingleRootFileViewProvider.findElementAt(SingleRootFileViewProvider.java:397)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.a(InjectedLanguageUtil.java:272)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedElementNoCommit(InjectedLanguageUtil.java:259)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.findInjectedPsiNoCommit(InjectedLanguageUtil.java:166)
at com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(InjectedLanguageUtil.java:139)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$5.mouseMoved(CtrlMouseHandler.java:195)
at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:89)
at com.intellij.util.EventDispatcher.access$100(EventDispatcher.java:34)
at com.intellij.util.EventDispatcher$1.invoke(EventDispatcher.java:66)
at com.sun.proxy.$Proxy23.mouseMoved(Unknown Source)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseMotionListener.mouseMoved(EditorImpl.java:5683)
at java.awt.Component.processMouseMotionEvent(Component.java:6459)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3293)
at java.awt.Component.processEvent(Component.java:6183)
at java.awt.Container.processEvent(Container.java:2084)
at java.awt.Component.dispatchEventImpl(Component.java:4776)
at java.awt.Container.dispatchEventImpl(Container.java:2142)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4292)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4209)
at java.awt.Container.dispatchEventImpl(Container.java:2128)
at java.awt.Window.dispatchEventImpl(Window.java:2492)
at java.awt.Component.dispatchEvent(Component.java:4604)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:717)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:676)
at java.awt.EventQueue$2.run(EventQueue.java:674)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:690)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:687)
at com.intellij.ide.IdeEventQueue.d(IdeEventQueue.java:700)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:521)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:348)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

NoClassDefFoundError in latest version of idea

2017-08-17 13:17:13,430 [ 59263] INFO - s.incremental.java.JavaBuilder - javac 1.8.0_141 was used to compile [entities-api, neochart, calcjob-api, schemagen, cube-api, red, examples, common, zion, core-api, chronos-api, persistlib, msgmapper, spider]
2017-08-17 13:17:13,821 [ 59654] INFO - .incremental.IncProjectBuilder - Module 'wildfire-api' production: java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
org.jetbrains.jps.incremental.ProjectBuildException: Module 'wildfire-api' production: java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils

at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1035)

at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:900)

at org.jetbrains.jps.incremental.IncProjectBuilder.access$500(IncProjectBuilder.java:82)

at org.jetbrains.jps.incremental.IncProjectBuilder$BuildParallelizer.lambda$queueTask$0(IncProjectBuilder.java:871)

at com.intellij.util.concurrency.BoundedTaskExecutor$2.run(BoundedTaskExecutor.java:212)

at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils

at com.intellij.plugins.thrift.jps.ThriftBuilder.build(ThriftBuilder.java:115)

at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1260)

at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:937)

at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1009)

... 10 more

Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 14 more

Strange errors in IDEA 13

When I upgrade IDEA to 13 - I get tons of errors:

Invalid range specified: (7,3); 
java.lang.Throwable
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:113)
    at com.intellij.openapi.util.TextRange.assertProperRange(TextRange.java:199)
    at com.intellij.openapi.util.TextRange.assertProperRange(TextRange.java:194)
    at com.intellij.openapi.util.TextRange.assertProperRange(TextRange.java:190)
    at com.intellij.openapi.util.TextRange.<init>(TextRange.java:43)
    at com.intellij.openapi.util.TextRange.<init>(TextRange.java:32)
    at com.intellij.openapi.util.TextRange.create(TextRange.java:126)
    at com.intellij.plugins.thrift.lang.psi.ThriftTypeReference.<init>(ThriftTypeReference.java:26)
    at com.intellij.plugins.thrift.util.ThriftPsiUtil.getReferences(ThriftPsiUtil.java:62)
    at com.intellij.plugins.thrift.lang.psi.impl.ThriftCustomTypeImpl.getReferences(ThriftCustomTypeImpl.java:28)
    at com.intellij.psi.PsiReferenceServiceImpl.getReferences(PsiReferenceServiceImpl.java:34)
    at com.intellij.psi.search.SingleTargetRequestResultProcessor.processTextOccurrence(SingleTargetRequestResultProcessor.java:42)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$21.execute(PsiSearchHelperImpl.java:866)
    at com.intellij.psi.impl.search.LowLevelSearchUtil.a(LowLevelSearchUtil.java:120)
    at com.intellij.psi.impl.search.LowLevelSearchUtil.processElementsContainingWordInElement(LowLevelSearchUtil.java:169)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$3$1.compute(PsiSearchHelperImpl.java:207)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$3$1.compute(PsiSearchHelperImpl.java:204)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:918)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$3.process(PsiSearchHelperImpl.java:204)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$3.process(PsiSearchHelperImpl.java:201)
    at com.intellij.concurrency.JobLauncherImpl$2.run(JobLauncherImpl.java:133)
    at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
    at com.intellij.concurrency.JobLauncherImpl.invokeConcurrentlyUnderProgress(JobLauncherImpl.java:127)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.a(PsiSearchHelperImpl.java:183)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.a(PsiSearchHelperImpl.java:177)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.b(PsiSearchHelperImpl.java:1042)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.access$600(PsiSearchHelperImpl.java:65)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$19$1$1.process(PsiSearchHelperImpl.java:690)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$19$1$1.process(PsiSearchHelperImpl.java:686)
    at com.intellij.concurrency.Iterate.body(Iterate.java:26)
    at com.intellij.concurrency.DoWhile.getResult(DoWhile.java:29)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$19$1.onSuccess(PsiSearchHelperImpl.java:694)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$19$1.onSuccess(PsiSearchHelperImpl.java:679)
    at com.intellij.concurrency.AsyncFutureResultImpl$1.run(AsyncFutureResultImpl.java:43)
    at com.intellij.concurrency.SameThreadExecutor.execute(SameThreadExecutor.java:29)
    at com.google.common.util.concurrent.ExecutionList$RunnableExecutorPair.execute(ExecutionList.java:150)
    at com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:106)
    at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:170)
    at com.intellij.concurrency.AsyncFutureResultImpl.addConsumer(AsyncFutureResultImpl.java:38)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl$19.body(PsiSearchHelperImpl.java:679)
    at com.intellij.concurrency.DoWhile.getResult(DoWhile.java:29)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequestsAsync(PsiSearchHelperImpl.java:723)
    at com.intellij.psi.impl.search.PsiSearchHelperImpl.processRequests(PsiSearchHelperImpl.java:656)
    at com.intellij.psi.search.SearchRequestQuery.processResults(SearchRequestQuery.java:45)
    at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:77)
    at com.intellij.util.MergeQuery.processSubQuery(MergeQuery.java:84)
    at com.intellij.util.MergeQuery.forEach(MergeQuery.java:56)
    at com.intellij.util.UniqueResultsQuery.process(UniqueResultsQuery.java:66)
    at com.intellij.util.UniqueResultsQuery.forEach(UniqueResultsQuery.java:56)
    at com.intellij.util.UniqueResultsQuery.findAll(UniqueResultsQuery.java:85)
    at com.intellij.find.findUsages.FindUsagesHandler.findReferencesToHighlight(FindUsagesHandler.java:206)
    at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.a(IdentifierHighlighterPass.java:133)
    at com.intellij.codeInsight.daemon.impl.IdentifierHighlighterPass.doCollectInformation(IdentifierHighlighterPass.java:110)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:61)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1$1.run(PassExecutorService.java:380)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1150)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1.run(PassExecutorService.java:371)
    at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:368)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:344)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask.exec(JobLauncherImpl.java:194)
    at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at jsr166e.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:858)
    at jsr166e.ForkJoinPool.scan(ForkJoinPool.java:1687)
    at jsr166e.ForkJoinPool.runWorker(ForkJoinPool.java:1642)
    at jsr166e.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:109)

But everything is works.

Improve Syntax Highlighter

I correctly get syntax highlighting of reserved words and missing types. However, I cannot figure out how to get coloring on type names. From what I can tell, type information is known (otherwise I wouldn't be able to get missing type highlighting) but I have thus far been unable to locate a way to color type names.

typedef string Foo

struct Bar {
    1: required Foo foo
    2: required Zip zip
}

In the above, typedef, string, struct, required are all blue (yay!), Zip is red (yay!), but Foo is black (boo!) in both locations.

struct can be DefinitionType

A struct can be DefinitionType, i.e. it can be used in a typedef.
The following code is "good code red":

namespace java foo.bar.bug

struct StructA {
  1: i32 x = 0
}

typedef StructA StructB

Thirft 0.91 compiler processes this correctly.
It appears that the grammar at http://thrift.apache.org/docs/idl/ is actually wrong.

Support thrift code style and formatting

It appears that there isn't a code style configuration for thrift, and you cannot use "reformat code" function to make thrift code consistent. One inconsistency I'm suffering is our codebase comprised of many different structure definition styles:

// style1
struct Foo {
    1: i32 hello,
    2: i32 world,
}

// style2
struct Bar {
    1: i32 hello;
    2: i32 world;
}

// style3 
struct Baz {
    1: i32 hello
    2: i32 world
}

// style4
struct FooBar {
    1:i32 hello
    2:i32 world
}

and services as well:

service Foo {
    string foo(1:string msg) throws (1:FooException error)
}

service Bar {
    string bar(1: string msg) throws (1: BarException error)
}

service Baz {
    string baz( 1 : string baz, 2 : string foo ) throws ( 1 : BazException error)
}

I wish there was formatting-related feature so that I can just "Reformat Code" to make them all consistent.

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.