Initial basic framework.

This commit is contained in:
2021-07-13 12:32:20 +02:00
parent a4ddd6fb51
commit 6d6e411532
15 changed files with 462 additions and 0 deletions
@@ -0,0 +1,31 @@
package de.platon42.intellij.plugins.m68k
import com.intellij.openapi.fileTypes.LanguageFileType
import de.platon42.intellij.plugins.m68k.M68kIcons.FILE
import org.jetbrains.annotations.NonNls
import javax.swing.Icon
@Suppress("unused")
class M68kFileType private constructor() : LanguageFileType(M68kLanguage.INSTANCE, true) {
@NonNls
override fun getName(): String {
return "M68k ASM File"
}
override fun getDescription(): String {
return "M68k assembly language file"
}
@NonNls
override fun getDefaultExtension(): String {
return "asm"
}
override fun getIcon(): Icon {
return FILE
}
companion object {
val INSTANCE = M68kFileType()
}
}
@@ -0,0 +1,7 @@
package de.platon42.intellij.plugins.m68k
import com.intellij.openapi.util.IconLoader
object M68kIcons {
val FILE = IconLoader.getIcon("/icons/FileType_m68k.svg", javaClass)
}
@@ -0,0 +1,9 @@
package de.platon42.intellij.plugins.m68k
import com.intellij.lang.Language
class M68kLanguage private constructor() : Language("M68k") {
companion object {
val INSTANCE = M68kLanguage()
}
}
@@ -0,0 +1,6 @@
package de.platon42.intellij.plugins.m68k.psi
import com.intellij.psi.tree.IElementType
import de.platon42.intellij.plugins.m68k.M68kLanguage.Companion.INSTANCE
class M68kElementType(debugName: String) : IElementType(debugName, INSTANCE)
@@ -0,0 +1,11 @@
package de.platon42.intellij.plugins.m68k.psi
import com.intellij.psi.tree.IElementType
import de.platon42.intellij.plugins.m68k.M68kLanguage.Companion.INSTANCE
import org.jetbrains.annotations.NonNls
class M68kTokenType(@NonNls debugName: String) : IElementType(debugName, INSTANCE) {
override fun toString(): String {
return "M68kTokenType." + super.toString()
}
}
+23
View File
@@ -0,0 +1,23 @@
<idea-plugin>
<id>de.platon42.m68k</id>
<name>MC68000 Assembly Language Support</name>
<vendor email="chrisly@platon42.de" url="https://github.com/chrisly42/mc68000-asm-plugin">Chris 'platon42' Hodges
</vendor>
<description><![CDATA[
MC68000-asm-plugin is a plugin to add language support for Motorola 68000 assembly language files.
<p>
<a href="https://github.com/chrisly42/mc68000-asm-plugin/blob/main/README.md">Full documentation here...</a>
]]></description>
<idea-version since-build="192.4205.45"/>
<depends>com.intellij.modules.lang</depends>
<extensions defaultExtensionNs="com.intellij">
<fileType name="M68k ASM File" implementationClass="de.platon42.intellij.plugins.m68k.M68kFileType"
fieldName="INSTANCE" language="M68k" extensions="asm;ASM;s;S;i"/>
</extensions>
<actions>
</actions>
</idea-plugin>
@@ -0,0 +1,7 @@
<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#40B6E0" fill-opacity=".7" points="1 16 16 16 16 9 1 9"/>
<polygon fill="#9AA7B0" fill-opacity=".8" points="7 1 3 5 7 5"/>
<polygon fill="#9AA7B0" fill-opacity=".8" points="8 1 8 6 3 6 3 8 13 8 13 1"/>
<path fill="#231F20" fill-opacity=".7"
d="M 2.433 12.819 C 2.433 11.779 2.636 10.996 3.043 10.469 C 3.45 9.949 4.053 9.689 4.853 9.689 C 5.12 9.689 5.336 9.712 5.503 9.759 L 5.503 10.279 C 5.323 10.219 5.11 10.189 4.863 10.189 C 4.283 10.189 3.843 10.369 3.543 10.729 C 3.25 11.089 3.086 11.646 3.053 12.399 L 3.103 12.399 C 3.37 11.979 3.79 11.769 4.363 11.769 C 4.843 11.769 5.223 11.916 5.503 12.209 C 5.776 12.496 5.913 12.902 5.913 13.429 C 5.913 13.949 5.763 14.369 5.463 14.689 C 5.156 15.002 4.736 15.159 4.203 15.159 C 3.676 15.159 3.25 14.952 2.923 14.539 C 2.596 14.126 2.433 13.552 2.433 12.819 Z M 5.033 14.319 C 5.22 14.106 5.313 13.806 5.313 13.419 C 5.313 13.032 5.223 12.742 5.043 12.549 C 4.863 12.349 4.6 12.249 4.253 12.249 C 3.933 12.236 3.653 12.336 3.413 12.549 C 3.173 12.756 3.053 12.989 3.053 13.249 C 3.053 13.629 3.166 13.959 3.393 14.239 C 3.613 14.526 3.89 14.662 4.223 14.649 C 4.57 14.649 4.84 14.539 5.033 14.319 ZM 7.256 10.029 C 7.542 9.802 7.926 9.689 8.406 9.689 C 8.892 9.689 9.276 9.802 9.556 10.029 C 9.836 10.256 9.976 10.566 9.976 10.959 C 9.976 11.499 9.636 11.936 8.956 12.269 C 9.382 12.469 9.689 12.686 9.876 12.919 C 10.056 13.152 10.146 13.416 10.146 13.709 C 10.146 14.156 9.996 14.509 9.696 14.769 C 9.389 15.029 8.959 15.159 8.406 15.159 C 7.846 15.159 7.416 15.036 7.116 14.789 C 6.809 14.542 6.656 14.189 6.656 13.729 C 6.656 13.122 7.026 12.649 7.766 12.309 C 7.439 12.122 7.202 11.919 7.056 11.699 C 6.902 11.479 6.826 11.232 6.826 10.959 C 6.826 10.572 6.969 10.262 7.256 10.029 Z M 9.166 11.579 C 9.312 11.406 9.386 11.202 9.386 10.969 C 9.386 10.736 9.299 10.546 9.126 10.399 C 8.946 10.252 8.702 10.179 8.396 10.179 C 8.096 10.179 7.859 10.252 7.686 10.399 C 7.506 10.546 7.416 10.736 7.416 10.969 C 7.416 11.202 7.489 11.399 7.636 11.559 C 7.782 11.719 8.049 11.879 8.436 12.039 C 8.776 11.899 9.019 11.746 9.166 11.579 Z M 7.496 13.069 C 7.329 13.256 7.246 13.489 7.246 13.769 C 7.246 14.042 7.349 14.262 7.556 14.429 C 7.756 14.589 8.039 14.669 8.406 14.669 C 8.766 14.669 9.049 14.586 9.256 14.419 C 9.456 14.252 9.556 14.019 9.556 13.719 C 9.556 13.486 9.459 13.276 9.266 13.089 C 9.079 12.909 8.752 12.732 8.286 12.559 C 7.919 12.712 7.656 12.882 7.496 13.069 ZM 11.888 12.999 L 11.888 15.089 L 11.268 15.089 L 11.268 9.769 L 11.888 9.769 L 11.888 12.409 L 14.308 9.769 L 15.028 9.769 L 12.888 12.079 L 15.108 15.089 L 14.388 15.089 L 12.448 12.509 L 11.888 12.999 Z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@@ -0,0 +1,7 @@
<svg viewBox="0 0 16 16" width="16" height="16" xmlns="http://www.w3.org/2000/svg">
<polygon fill="#40B6E0" fill-opacity=".7" points="1 16 16 16 16 9 1 9"/>
<polygon fill="#9AA7B0" fill-opacity=".8" points="7 1 3 5 7 5"/>
<polygon fill="#9AA7B0" fill-opacity=".8" points="8 1 8 6 3 6 3 8 13 8 13 1"/>
<path fill="#231F20" fill-opacity=".7"
d="M 2.433 12.819 C 2.433 11.779 2.636 10.996 3.043 10.469 C 3.45 9.949 4.053 9.689 4.853 9.689 C 5.12 9.689 5.336 9.712 5.503 9.759 L 5.503 10.279 C 5.323 10.219 5.11 10.189 4.863 10.189 C 4.283 10.189 3.843 10.369 3.543 10.729 C 3.25 11.089 3.086 11.646 3.053 12.399 L 3.103 12.399 C 3.37 11.979 3.79 11.769 4.363 11.769 C 4.843 11.769 5.223 11.916 5.503 12.209 C 5.776 12.496 5.913 12.902 5.913 13.429 C 5.913 13.949 5.763 14.369 5.463 14.689 C 5.156 15.002 4.736 15.159 4.203 15.159 C 3.676 15.159 3.25 14.952 2.923 14.539 C 2.596 14.126 2.433 13.552 2.433 12.819 Z M 5.033 14.319 C 5.22 14.106 5.313 13.806 5.313 13.419 C 5.313 13.032 5.223 12.742 5.043 12.549 C 4.863 12.349 4.6 12.249 4.253 12.249 C 3.933 12.236 3.653 12.336 3.413 12.549 C 3.173 12.756 3.053 12.989 3.053 13.249 C 3.053 13.629 3.166 13.959 3.393 14.239 C 3.613 14.526 3.89 14.662 4.223 14.649 C 4.57 14.649 4.84 14.539 5.033 14.319 ZM 7.256 10.029 C 7.542 9.802 7.926 9.689 8.406 9.689 C 8.892 9.689 9.276 9.802 9.556 10.029 C 9.836 10.256 9.976 10.566 9.976 10.959 C 9.976 11.499 9.636 11.936 8.956 12.269 C 9.382 12.469 9.689 12.686 9.876 12.919 C 10.056 13.152 10.146 13.416 10.146 13.709 C 10.146 14.156 9.996 14.509 9.696 14.769 C 9.389 15.029 8.959 15.159 8.406 15.159 C 7.846 15.159 7.416 15.036 7.116 14.789 C 6.809 14.542 6.656 14.189 6.656 13.729 C 6.656 13.122 7.026 12.649 7.766 12.309 C 7.439 12.122 7.202 11.919 7.056 11.699 C 6.902 11.479 6.826 11.232 6.826 10.959 C 6.826 10.572 6.969 10.262 7.256 10.029 Z M 9.166 11.579 C 9.312 11.406 9.386 11.202 9.386 10.969 C 9.386 10.736 9.299 10.546 9.126 10.399 C 8.946 10.252 8.702 10.179 8.396 10.179 C 8.096 10.179 7.859 10.252 7.686 10.399 C 7.506 10.546 7.416 10.736 7.416 10.969 C 7.416 11.202 7.489 11.399 7.636 11.559 C 7.782 11.719 8.049 11.879 8.436 12.039 C 8.776 11.899 9.019 11.746 9.166 11.579 Z M 7.496 13.069 C 7.329 13.256 7.246 13.489 7.246 13.769 C 7.246 14.042 7.349 14.262 7.556 14.429 C 7.756 14.589 8.039 14.669 8.406 14.669 C 8.766 14.669 9.049 14.586 9.256 14.419 C 9.456 14.252 9.556 14.019 9.556 13.719 C 9.556 13.486 9.459 13.276 9.266 13.089 C 9.079 12.909 8.752 12.732 8.286 12.559 C 7.919 12.712 7.656 12.882 7.496 13.069 ZM 11.888 12.999 L 11.888 15.089 L 11.268 15.089 L 11.268 9.769 L 11.888 9.769 L 11.888 12.409 L 14.308 9.769 L 15.028 9.769 L 12.888 12.079 L 15.108 15.089 L 14.388 15.089 L 12.448 12.509 L 11.888 12.999 Z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB