Extension class com.intellij.lang.LanguageExtensionPoint does not implement class com.intellij.lang.LanguageExtensionPoint.

I've been building off the Custom Language Support example for a while now (http://www.jetbrains.org/intellij/sdk/docs/tutorials/custom_language_support_tutorial.html). It had been working but after switching my debugging to Junit Tests and then coming back to set up the actual plugin the plugin.xml file seems to be unrecognized and cause all sorts of errors.

 

Namely, I get an error like: 

Extension class com.intellij.lang.LanguageExtensionPoint does not implement class com.intellij.lang.LanguageExtensionPoint.
Extension class com.knitspeakplugin.KnitSpeakParser.KnitSpeakFileTypeFactory does not implement class com.intellij.openapi.fileTypes.FileTypeFactory.

I'm not quite sure why this is happening all of the sudden. I'm also having problems where the actions I define are not showing up in the menu. What could cause all of this?

<idea-plugin>
<name>Knit Speak Compiler</name>
<version>1.0</version>
<vendor email="hofmann.megan@gmail.com" url="http://www.megankhofmann.com">Megan Hofmann</vendor>

<description><![CDATA[
Enter short description for your plugin here.<br>
<small>most HTML tags may be used</small>
]]></description>

<change-notes><![CDATA[
Add change notes here.<br>
<small>most HTML tags may be used</small>
]]>
</change-notes>

<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
<idea-version since-build="107.105"/>

<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
on how to target different products -->
<!-- uncomment to enable plugin in all products
<depends>com.intellij.modules.lang</depends>
-->

<!--<application-components>-->
<!--&lt;!&ndash; Add your application components here &ndash;&gt;-->
<!--</application-components>-->

<!--<project-components>-->
<!--&lt;!&ndash; Add your project components here &ndash;&gt;-->
<!--</project-components>-->

<actions>
<!-- Add your actions here -->
<group id="knittingmenu" text="_Knitting_Menu" description="Menu of Knitting Commands">
<add-to-group group-id="MainMenu" anchor="last" />
<action class="com.knitspeakplugin.CompilerUI.CompileBySizeAction" id="com.knitspeakcompiler.CompileBySizeAction" text="Compile KnitSpeak By Width" />
<action class="com.knitspeakplugin.CompilerUI.BreakUpCSV" id="com.knitspeakplugin.CompilerUI.BreakUpCSV" text="Break Up CSV" />
</group>
</actions>

<extensions defaultExtensionNs="com.intellij">
<!-- Add your extensions here -->
<fileTypeFactory implementation="com.knitspeakplugin.KnitSpeakParser.KnitSpeakFileTypeFactory"/>
<lang.parserDefinition language="KnitSpeak" implementationClass="com.knitspeakplugin.KnitSpeakParser.KnitSpeakParserDefintion"/>

</extensions>
</idea-plugin>
1
1 comment

You can debug it to find the cause: put a breakpoint in ExtensionPointImpl#registerExtension where the error is logged, and find out why the extension class doesn't implement the expected base class. Most probably it means that the base class was loaded by two different class-loaders, maybe because you added some JARs from the platform to your plugin.

0

Please sign in to leave a comment.