@@ -3,7 +3,10 @@ package com.emberjs.hbs
33import com.emberjs.gts.GjsFileType
44import com.emberjs.gts.GtsFileType
55import com.intellij.codeInsight.daemon.impl.HighlightInfo
6+ import com.intellij.lang.javascript.BasicDialectDetector
7+ import com.intellij.lang.javascript.JavaScriptSupportLoader
68import com.intellij.lang.javascript.inspections.ES6UnusedImportsInspection
9+ import com.intellij.lang.javascript.inspections.JSLastCommaInObjectLiteralInspection
710import com.intellij.lang.javascript.inspections.JSUnusedGlobalSymbolsInspection
811import com.intellij.lang.javascript.inspections.JSUnusedLocalSymbolsInspection
912import com.intellij.lang.javascript.psi.impl.JSFileImpl
@@ -22,6 +25,15 @@ class GtsFileTest : BasePlatformTestCase() {
2225 myFixture.configureByText(GtsFileType .INSTANCE , gts)
2326 (myFixture.file as JSFileImpl ).calcStubTree()
2427 assertNotNull(" should have stub definition" , (myFixture.file as JSFileImpl ).greenStub)
28+
29+ println (" myFixture.file.virtualFile" )
30+ println (myFixture.file.virtualFile.fileType)
31+ println (myFixture.file.virtualFile)
32+ // TestCase.assertEquals(BasicDialectDetector.getLanguageDialect(myFixture.file.virtualFile, myFixture.project) , JavaScriptSupportLoader.TYPESCRIPT )
33+ TestCase .assertEquals(BasicDialectDetector .getJSLanguageFromFileType(myFixture.file.virtualFile) , JavaScriptSupportLoader .TYPESCRIPT )
34+ TestCase .assertEquals(BasicDialectDetector .getLanguageDialectForJSFile(myFixture.file.virtualFile, myFixture.project) , JavaScriptSupportLoader .TYPESCRIPT )
35+ assertTrue(" is typescript" , BasicDialectDetector .getJSLanguageFromFileType(myFixture.file.virtualFile) == JavaScriptSupportLoader .TYPESCRIPT )
36+ assertTrue(" is typescript" , BasicDialectDetector .getLanguageDialectForJSFile(myFixture.file.virtualFile, myFixture.project) == JavaScriptSupportLoader .TYPESCRIPT )
2537 }
2638
2739 @Test
@@ -121,4 +133,27 @@ class GtsFileTest : BasePlatformTestCase() {
121133 TestCase .assertTrue(highlightInfos.first().description.contains(" quux" ))
122134 TestCase .assertTrue(highlightInfos.last().description.contains(" qux" ))
123135 }
136+
137+ @Test
138+ fun testGtsTrailingCommaAllowed () {
139+ val gts = """
140+ const a = {
141+ a: 1,
142+ b: 2,
143+ }
144+ """ .trimIndent()
145+ myFixture.addFileToProject(" main.gts" , gts)
146+ myFixture.configureByFile(" main.gts" )
147+ myFixture.enableInspections(JSLastCommaInObjectLiteralInspection ())
148+ try {
149+ CodeInsightTestFixtureImpl .ensureIndexesUpToDate(project)
150+ } catch (exception: Exception ) {
151+
152+ }
153+
154+ val highlighting = myFixture.doHighlighting()
155+ System .out .println (highlighting)
156+ val noCommaAllowed = highlighting.filter { it.description?.contains(" comma" ) == true }
157+ TestCase .assertEquals(noCommaAllowed.toString(), 0 , noCommaAllowed.size)
158+ }
124159}
0 commit comments