It seems that external annotators for a base language are ignored when another external annotator exists for a more specific flavor. This leads to conflicting behavior in plugins that act as external annotators, such as SonarLint, ESLint, Flow. This is a new behavior in 2016.3, there was no such problem in 2016.2.x and earlier.
For example given this scenario:
This is a regression, because up until 2016.2.5 there was no problem, all annotations were shown from these plugins.
The problem is reproducible by having the ESLint plugin together with a custom plugin registering external annotators:
<externalAnnotator language="Flow JS" implementationClass="..."/>
The annotations by ESLint will not be visible in 2016.3, even though they are visible in 2016.2.5.
I created a ticket for this: https://youtrack.jetbrains.com/issue/WEB-24475
I hope somebody can look at it soon, as not being able to use multiple plugins is hurting the efforts of developers to catch the most number of defects and bad practices, unless they downgrade to 2016.2.x.