metaborg / spoofax-intellij

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Conflicting language extensions cause IDE error

Virtlink opened this issue · comments

A language with extension .ts conflicts with the TS (NaBl&TS) language, and causes an IDE error.

Exception

java.lang.IllegalStateException: Resource intellij:///home/daniel/repos/metaborg-typescript/typescript.test/mytest.ts identifies to multiple languages: language TypeSystemLanguage, language typescript
	at org.metaborg.core.language.LanguageIdentifierService.identifyToResource(LanguageIdentifierService.java:148)
	at org.metaborg.core.language.LanguageIdentifierService.identify(LanguageIdentifierService.java:105)
	at org.metaborg.core.language.LanguageIdentifierService.identify(LanguageIdentifierService.java:73)
	at org.metaborg.core.language.LanguageIdentifierService.identify(LanguageIdentifierService.java:58)
	at org.metaborg.intellij.idea.parsing.SpoofaxSyntaxHighlighterFactory.getSyntaxHighlighter(SpoofaxSyntaxHighlighterFactory.java:84)
	at com.intellij.openapi.fileTypes.SyntaxHighlighterFactory.getSyntaxHighlighter(SyntaxHighlighterFactory.java:39)
	at com.intellij.openapi.fileTypes.LanguageFileTypeHighlighterProvider.create(LanguageFileTypeHighlighterProvider.java:31)
	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.openapi.util.KeyedExtensionFactory.getByKey(KeyedExtensionFactory.java:92)
	at com.intellij.openapi.util.KeyedExtensionFactory.access$000(KeyedExtensionFactory.java:33)
	at com.intellij.openapi.util.KeyedExtensionFactory$1.invoke(KeyedExtensionFactory.java:56)
	at com.sun.proxy.$Proxy117.create(Unknown Source)
	at com.intellij.openapi.fileTypes.SyntaxHighlighterFactory.getSyntaxHighlighter(SyntaxHighlighterFactory.java:54)
	at com.intellij.openapi.fileTypes.FileTypeEditorHighlighterProviders$1.getEditorHighlighter(FileTypeEditorHighlighterProviders.java:51)
	at com.intellij.openapi.editor.highlighter.EditorHighlighterFactoryImpl.createEditorHighlighter(EditorHighlighterFactoryImpl.java:78)
	at com.intellij.openapi.fileEditor.impl.text.TextEditorImpl.loadEditorInBackground(TextEditorImpl.java:66)
	at com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorImpl.loadEditorInBackground(PsiAwareTextEditorImpl.java:50)
	at com.intellij.openapi.fileEditor.impl.text.AsyncEditorLoader$1.lambda$runBackgroundProcess$1(AsyncEditorLoader.java:83)
	at com.intellij.psi.impl.PsiDocumentManagerBase$6.run(PsiDocumentManagerBase.java:477)
	at com.intellij.psi.impl.PsiDocumentManagerBase$7.compute(PsiDocumentManagerBase.java:506)
	at com.intellij.psi.impl.PsiDocumentManagerBase$7.compute(PsiDocumentManagerBase.java:502)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:892)
	at com.intellij.psi.impl.PsiDocumentManagerBase.commitAndRunReadAction(PsiDocumentManagerBase.java:502)
	at com.intellij.psi.impl.PsiDocumentManagerBase.commitAndRunReadAction(PsiDocumentManagerBase.java:474)
	at com.intellij.openapi.fileEditor.impl.text.AsyncEditorLoader$1.runBackgroundProcess(AsyncEditorLoader.java:77)
	at com.intellij.openapi.fileEditor.impl.text.AsyncEditorLoader.lambda$null$0(AsyncEditorLoader.java:135)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$2(ProgressIndicatorUtils.java:135)
	at com.intellij.openapi.progress.impl.CoreProgressManager$3.run(CoreProgressManager.java:179)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(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.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:133)
	at com.intellij.openapi.fileEditor.impl.text.AsyncEditorLoader.lambda$loadImmediately$1(AsyncEditorLoader.java:135)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at com.intellij.util.concurrency.BoundedTaskExecutor$2.run(BoundedTaskExecutor.java:210)
	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)

Spoofax: 2.3.0

When a source file has two or more possible languages, IntelliJ will now show an error balloon and use the plain text parser as fallback.