Macro definitions are now word and indexed, macro calls reference to definition.
Macro definition refactoring and find usages support. Structural View also shows macro definitions. Missing REPT and ENDR assembler directives added. Changed or added some icons at various places. Reference search for global labels and symbols now uses stub index.
This commit is contained in:
@@ -23,6 +23,11 @@ internal class MacroCallTest : AbstractParsingTest() {
|
||||
testGoodSyntax(testCase, " PUSHM d0/d3/d5-d7/a0-a2/a4-a6 ; save a couple of registers\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun call_with_label(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
testGoodSyntax(testCase, "label FOOBAR narf ; wut?\n")
|
||||
}
|
||||
|
||||
@Test
|
||||
internal fun putmsg_call_with_specially_bracketed_parameters(@MyTestCase testCase: ParsingTestExtension.IParsingTestCase) {
|
||||
// FIXME this doesn't work as intended...
|
||||
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package de.platon42.intellij.plugins.m68k.refs
|
||||
|
||||
import com.intellij.testFramework.fixtures.CodeInsightTestFixture
|
||||
import de.platon42.intellij.jupiter.LightCodeInsightExtension
|
||||
import de.platon42.intellij.jupiter.MyFixture
|
||||
import de.platon42.intellij.jupiter.TestDataPath
|
||||
import de.platon42.intellij.jupiter.TestDataSubPath
|
||||
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
|
||||
|
||||
@TestDataPath("src/test/resources/references")
|
||||
@TestDataSubPath("completion")
|
||||
@ExtendWith(LightCodeInsightExtension::class)
|
||||
internal class M68kMacroCallCompletionContributorTest : AbstractM68kTest() {
|
||||
|
||||
@Test
|
||||
internal fun completion_shows_mnemonics_and_macros(@MyFixture myFixture: CodeInsightTestFixture) {
|
||||
myFixture.configureByText(
|
||||
"completeme.asm", """
|
||||
|
||||
noppy MACRO
|
||||
ENDM
|
||||
|
||||
no<caret>
|
||||
"""
|
||||
)
|
||||
myFixture.completeBasic()
|
||||
assertThat(myFixture.lookupElementStrings).containsExactlyInAnyOrder("nop", "not", "noppy")
|
||||
}
|
||||
}
|
||||
+19
-4
@@ -8,10 +8,7 @@ import de.platon42.intellij.jupiter.MyFixture
|
||||
import de.platon42.intellij.jupiter.TestDataPath
|
||||
import de.platon42.intellij.jupiter.TestDataSubPath
|
||||
import de.platon42.intellij.plugins.m68k.AbstractM68kTest
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kGlobalLabel
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kLocalLabel
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kSymbolDefinition
|
||||
import de.platon42.intellij.plugins.m68k.psi.M68kSymbolReference
|
||||
import de.platon42.intellij.plugins.m68k.psi.*
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
import org.junit.jupiter.api.extension.ExtendWith
|
||||
@@ -71,4 +68,22 @@ internal class M68kReferenceContributorTest : AbstractM68kTest() {
|
||||
|
||||
myFixture.checkResultByFile("symbol_assignment_after_rename.asm")
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestDataSubPath("macros")
|
||||
internal fun reference_to_macro_can_be_renamed(@MyFixture myFixture: CodeInsightTestFixture) {
|
||||
val file = myFixture.configureByFile("macros.asm")
|
||||
val elementAtCaret = myFixture.elementAtCaret
|
||||
assertThat(elementAtCaret).isInstanceOf(M68kMacroDefinition::class.java)
|
||||
val macroDef = elementAtCaret as M68kMacroDefinition
|
||||
assertThat(macroDef.macroNameDefinition.text).isEqualTo("PUTMSG")
|
||||
|
||||
myFixture.renameElementAtCaret("PRINTF")
|
||||
|
||||
val reference = file.findReferenceAt(myFixture.editor.caretModel.offset)!!
|
||||
assertThat(reference).isInstanceOf(M68kMacroReference::class.java)
|
||||
assertThat(reference.variants).isEmpty()
|
||||
|
||||
myFixture.checkResultByFile("macros_after_rename.asm")
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,8 @@ internal class M68kStructureViewTest : AbstractM68kTest() {
|
||||
PIC_WIDTH
|
||||
PIC_HEIGHT
|
||||
DEBUG_LEVEL
|
||||
BLTHOGON
|
||||
BLTHOGOFF
|
||||
entry
|
||||
-init
|
||||
.looph
|
||||
|
||||
Reference in New Issue
Block a user