Added M68kIncludeFileProvider, but dunno what it's actually for.
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
package de.platon42.intellij.plugins.m68k.scanner
|
||||
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.impl.include.FileIncludeManager
|
||||
import com.intellij.testFramework.fixtures.CodeInsightTestFixture
|
||||
import de.platon42.intellij.jupiter.LightCodeInsightExtension
|
||||
import de.platon42.intellij.jupiter.MyFixture
|
||||
import de.platon42.intellij.plugins.m68k.AbstractM68kTest
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.extension.ExtendWith
|
||||
|
||||
@ExtendWith(LightCodeInsightExtension::class)
|
||||
internal class M68kIncludeFileProviderTest : AbstractM68kTest() {
|
||||
|
||||
@Test
|
||||
internal fun accepts_a_couple_of_include_statements(@MyFixture myFixture: CodeInsightTestFixture) {
|
||||
myFixture.addFileToProject("macros.i", "PUSHM MACRO\n ENDM")
|
||||
myFixture.addFileToProject("exec/execbase.i", "; Commodore include")
|
||||
myFixture.addFileToProject("exec/exec.i", " include execbase.i")
|
||||
myFixture.addFileToProject("includes/hardware/custom.i", "; Another Commodore include")
|
||||
myFixture.addFileToProject("data/ease_x.bin", "binary file")
|
||||
myFixture.addFileToProject("fx/fx_angle_only.S", "; Nosfe!!")
|
||||
myFixture.configureByText(
|
||||
"completeme.asm", """
|
||||
include macros.i
|
||||
include "exec/exec.i"
|
||||
include <../src/includes/hardware/custom.i>
|
||||
incbin "data/ease_x.bin"
|
||||
include fx\fx_angle_only.S
|
||||
"""
|
||||
)
|
||||
val includedFiles = FileIncludeManager.getManager(myFixture.project).getIncludedFiles(myFixture.file.virtualFile, true, true)
|
||||
assertThat(includedFiles).extracting<String>(VirtualFile::getName)
|
||||
.containsExactlyInAnyOrder("completeme.asm", "macros.i", "fx_angle_only.S", "custom.i", "exec.i", "execbase.i")
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,8 @@ Assembly File: a.asm
|
||||
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('foo')
|
||||
PsiElement(M68kTokenType.COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('dc.b')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('dc.b')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.STRINGLIT)(''It could be good!'')
|
||||
|
||||
@@ -2,7 +2,8 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace(' ')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('dc.w')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('dc.w')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.DECIMAL)('0')
|
||||
|
||||
@@ -2,7 +2,8 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace('\t')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('even')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('even')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiComment(M68kTokenType.COMMENT)('; align to even address')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
||||
@@ -2,7 +2,8 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace('\t')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('IFD')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('IFD')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
M68kSymbolReferenceImpl(SYMBOL_REFERENCE)
|
||||
@@ -19,5 +20,6 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace(' ')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('ENDC')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('ENDC')
|
||||
PsiElement(M68kTokenType.EOL)('\n')
|
||||
@@ -2,7 +2,8 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace(' ')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('include')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('include')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.STRINGLIT)('"exec/execbase.i"')
|
||||
|
||||
@@ -4,7 +4,8 @@ Assembly File: a.asm
|
||||
M68kGlobalLabelImpl(GLOBAL_LABEL)
|
||||
PsiElement(M68kTokenType.GLOBAL_LABEL_DEF)('howto')
|
||||
PsiElement(M68kTokenType.COLON)(':')
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('incbin')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('incbin')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.STRINGLIT)('Convertedassets\scroller_howto.raw.BPL')
|
||||
|
||||
@@ -2,7 +2,8 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace(' ')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('include')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('include')
|
||||
PsiWhiteSpace('\t')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.STRINGLIT)('<Engine/A500/System/Copper.i>')
|
||||
@@ -2,7 +2,8 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace(' ')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('opt')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('opt')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kLiteralExprImpl(LITERAL_EXPR)
|
||||
PsiElement(M68kTokenType.STRINGLIT)('o+')
|
||||
|
||||
@@ -2,7 +2,8 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace(' ')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('dc.w')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.DATA_DIRECTIVE)('dc.w')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kBinarySubExprImpl(BINARY_SUB_EXPR)
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
|
||||
@@ -2,7 +2,8 @@ Assembly File: a.asm
|
||||
PsiWhiteSpace(' ')
|
||||
M68kStatementImpl(STATEMENT)
|
||||
M68kPreprocessorDirectiveImpl(PREPROCESSOR_DIRECTIVE)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('IF')
|
||||
M68kPreprocessorKeywordImpl(PREPROCESSOR_KEYWORD)
|
||||
PsiElement(M68kTokenType.OTHER_DIRECTIVE)('IF')
|
||||
PsiWhiteSpace(' ')
|
||||
M68kBinaryCmpEqExprImpl(BINARY_CMP_EQ_EXPR)
|
||||
M68kRefExprImpl(REF_EXPR)
|
||||
|
||||
Reference in New Issue
Block a user