1

カスタムJavascriptのようなカスタム言語プラグインを構築しています。このカスタム言語は、Ecmascript 6/Javascriptに基づいています。 Javascriptの上に特別なカスタムタグとキーワードを追加したいと思います。最も重要なのは、コードシンタックスのハイライトをJavascriptと同じように見せたいと思っています。私はJava言語で構文の強調表示をテストしています。私はこのコンストラクタとハイライトが私のプラグインをデバッグした後に働いた追加私のMyScriptLanguage.javaファイル内IntelliJカスタム言語プラグイン - 言語IDは既に登録されているエラーです

protected MyScriptLanguage() { super(JavaLanguage.INSTANCE, "MyScript", "text/ms", "application/ms"); }

は、その後、私はこのようにJavascriptの言語に切り替える:
protected MyScriptLanguage() { super(JavascriptLanguage.INSTANCE, "MyScript", "text/ms", "application/ms"); }

をへ切り替えた後Javascriptデバッグがいくつかの言語の競合エラーで動作を停止しました

2017-11-14 08:57:56,531 [ 12556] ERROR - llij.ide.plugins.PluginManager - com.intellij.ide.plugins.PluginManager$StartupAbortedException: Fatal error initializing plugin com.ndoubismarck.mytest 
java.lang.RuntimeException: com.intellij.ide.plugins.PluginManager$StartupAbortedException: Fatal error initializing plugin com.ndoubismarck.mytest 
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:210) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.idea.MainImpl$1$1.a(MainImpl.java:64) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) 
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:345) 
    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: com.intellij.ide.plugins.PluginManager$StartupAbortedException: Fatal error initializing plugin com.ndoubismarck.mytest 
    at com.intellij.ide.plugins.PluginManager.handleComponentError(PluginManager.java:272) 
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.initStandardFileTypes(FileTypeManagerImpl.java:310) 
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.<init>(FileTypeManagerImpl.java:267) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.picocontainer.defaults.InstantiatingComponentAdapter.newInstance(InstantiatingComponentAdapter.java:193) 
    at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.doGetComponentInstance(CachingConstructorInjectionComponentAdapter.java:103) 
    at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.instantiateGuarded(CachingConstructorInjectionComponentAdapter.java:80) 
    at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.getComponentInstance(CachingConstructorInjectionComponentAdapter.java:63) 
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstance(ComponentManagerImpl.java:469) 
    at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponents(ComponentManagerImpl.java:118) 
    at com.intellij.openapi.application.impl.ApplicationImpl.a(ApplicationImpl.java:462) 
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:170) 
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:548) 
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493) 
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94) 
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157) 
    at com.intellij.openapi.application.impl.ApplicationImpl.createComponents(ApplicationImpl.java:469) 
    at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:102) 
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:421) 
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:407) 
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:203) 
    ... 20 more 
Caused by: com.intellij.diagnostic.PluginException: [Plugin: com.ndoubismarck.mytest] 
    ... 44 more 
Caused by: java.lang.ExceptionInInitializerError 
    at com.ndoubismarck.mytest.lang.myscript.MyScriptLanguage.<init>(MyScriptLanguage.java:12) 
    at com.ndoubismarck.mytest.lang.myscript.MyScriptLanguage.<clinit>(MyScriptLanguage.java:7) 
    at com.ndoubismarck.mytest.lang.myscript.MyScriptFileType.<init>(MyScriptFileType.java:12) 
    at com.ndoubismarck.mytest.lang.myscript.MyScriptFileType.<clinit>(MyScriptFileType.java:9) 
    at com.ndoubismarck.mytest.lang.myscript.MyScriptFileTypeFactory.createFileTypes(MyScriptFileTypeFactory.java:10) 
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.initStandardFileTypes(FileTypeManagerImpl.java:307) 
    ... 42 more 
Caused by: com.intellij.diagnostic.ImplementationConflictException: Language with ID 'JavaScript' is already registered: class com.intellij.lang.javascript.JavascriptLanguage 
    at com.intellij.lang.Language.<init>(Language.java:89) 
    at com.intellij.lang.Language.<init>(Language.java:73) 
    at com.intellij.lang.javascript.JavascriptLanguage.<init>(JavascriptLanguage.java:26) 
    at com.intellij.lang.javascript.JavascriptLanguage.<clinit>(JavascriptLanguage.java:23) 
    ... 48 more 
2017-11-14 08:57:56,538 [ 12563] ERROR - llij.ide.plugins.PluginManager - IntelliJ IDEA 2017.2.5 Build #IU-172.4343.14 
2017-11-14 08:57:56,538 [ 12563] ERROR - llij.ide.plugins.PluginManager - JDK: 1.8.0_111 
2017-11-14 08:57:56,538 [ 12563] ERROR - llij.ide.plugins.PluginManager - VM: Java HotSpot(TM) 64-Bit Server VM 
2017-11-14 08:57:56,539 [ 12564] ERROR - llij.ide.plugins.PluginManager - Vendor: Oracle Corporation 
2017-11-14 08:57:56,539 [ 12564] ERROR - llij.ide.plugins.PluginManager - OS: Mac OS X 

1のplugin.xml

<idea-plugin> 
    <id>com.ndoubismarck.mytest</id> 
    <name>My Custom Language</name> 
    <version>1.0</version> 
    <vendor email="[email protected]" url="http://www.yourcompany.com">YourCompany</vendor> 

    <description><![CDATA[ 
     My custom language which is extending Javascript, HTML and CSS.<br> 
     <em>Javascript, HTML, CSS</em> 
    ]]></description> 

    <change-notes><![CDATA[ 
     <br> 
     <em></em> 
    ]]> 
    </change-notes> 

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

    <!-- 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> 
    --> 

    <extensions defaultExtensionNs="com.intellij"> 
     <!-- Add your extensions here --> 
     <fileTypeFactory implementation="com.ndoubismarck.mytest.lang.myscript.MyScriptFileTypeFactory"/> 
    </extensions> 

    <actions> 
     <!-- Add your actions here --> 
    </actions> 

</idea-plugin> 



2 MyScriptFileTypeFactory.java

package com.ndoubismarck.mytest.lang.myscript; 

import com.intellij.openapi.fileTypes.FileTypeConsumer; 
import com.intellij.openapi.fileTypes.FileTypeFactory; 
import org.jetbrains.annotations.NotNull; 

public class MyScriptFileTypeFactory extends FileTypeFactory { 
    @Override 
    public void createFileTypes(@NotNull FileTypeConsumer fileTypeConsumer) { 
     fileTypeConsumer.consume(MyScriptFileType.INSTANCE, "ms"); 
    } 
} 



3. MyScriptFileType.java

package com.ndoubismarck.mytest.lang.myscript; 

import com.intellij.lang.Language; 
import com.intellij.lang.javascript.JavascriptLanguage; 

public class MyScriptLanguage extends Language { 
public static final MyScriptLanguage INSTANCE = new MyScriptLanguage(); 

protected MyScriptLanguage() { 
    //super(JavaLanguage.INSTANCE, "MyScript", "text/ms", "application/ms"); 
    super(JavascriptLanguage.INSTANCE, "MyScript", "text/ms", "application/ms"); 
} 

@Override 
public String getDisplayName() { 
    return "MyScript language"; 
} 
} 

誰かが私を助けることができます。私はJavascriptのハイライト機能とオートコンプリート機能を独自のカスタム機能の上に拡張する必要があります。

+0

あなたは、おそらくそれは間違ってやっているベンダータグの後

<depends>JavaScript</depends> 追加してみてください。 – Meo

+0

@Meo-本当ですか?どのようにあなたはそれを理解しましたか... – vikingsteve

答えて

0

これは、plugin.xmlのJavaScriptプラグインに依存していないために発生している可能性があります。

+0

私はそれを追加しました。まだそれは動作しません。 – Bismarck

関連する問題