Added M68kIncludeFileProvider, but dunno what it's actually for.

This commit is contained in:
2021-08-06 19:12:54 +02:00
parent ddf78ec210
commit 8d7977927f
24 changed files with 199 additions and 35 deletions
@@ -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)