mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-10 10:30:13 +08:00
Introduce compiler-common module
This commit is contained in:
parent
287b4b2995
commit
f37f059634
@ -20,6 +20,7 @@ fun includeProject(projectPath: String, path: String? = null) {
|
||||
includeProject(":mirai-console", "backend/mirai-console")
|
||||
includeProject(":mirai-console.codegen", "backend/codegen")
|
||||
includeProject(":mirai-console-pure", "frontend/mirai-console-pure")
|
||||
includeProject(":mirai-console-compiler-common", "tools/compiler-common")
|
||||
includeProject(":mirai-console-intellij", "tools/intellij-plugin")
|
||||
includeProject(":mirai-console-gradle", "tools/gradle-plugin")
|
||||
|
||||
|
5
tools/compiler-common/README.md
Normal file
5
tools/compiler-common/README.md
Normal file
@ -0,0 +1,5 @@
|
||||
# mirai-console-compiler-common
|
||||
|
||||
Mirai Console 编译器后端通用模块.
|
||||
|
||||
##
|
75
tools/compiler-common/build.gradle.kts
Normal file
75
tools/compiler-common/build.gradle.kts
Normal file
@ -0,0 +1,75 @@
|
||||
@file:Suppress("UnusedImport")
|
||||
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
id("java")
|
||||
`maven-publish`
|
||||
id("com.jfrog.bintray")
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven("http://maven.aliyun.com/nexus/content/groups/public/")
|
||||
}
|
||||
|
||||
version = Versions.console
|
||||
description = "Mirai Console compiler common"
|
||||
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile::class.java) {
|
||||
options.encoding = "UTF8"
|
||||
}
|
||||
|
||||
kotlin {
|
||||
sourceSets.all {
|
||||
target.compilations.all {
|
||||
kotlinOptions {
|
||||
jvmTarget = "1.8"
|
||||
freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all"
|
||||
//useIR = true
|
||||
}
|
||||
}
|
||||
languageSettings.apply {
|
||||
progressiveMode = true
|
||||
|
||||
useExperimentalAnnotation("kotlin.Experimental")
|
||||
useExperimentalAnnotation("kotlin.RequiresOptIn")
|
||||
|
||||
useExperimentalAnnotation("net.mamoe.mirai.utils.MiraiInternalAPI")
|
||||
useExperimentalAnnotation("net.mamoe.mirai.utils.MiraiExperimentalAPI")
|
||||
useExperimentalAnnotation("net.mamoe.mirai.console.ConsoleFrontEndImplementation")
|
||||
useExperimentalAnnotation("net.mamoe.mirai.console.util.ConsoleExperimentalApi")
|
||||
useExperimentalAnnotation("kotlin.ExperimentalUnsignedTypes")
|
||||
useExperimentalAnnotation("kotlin.experimental.ExperimentalTypeInference")
|
||||
useExperimentalAnnotation("kotlin.contracts.ExperimentalContracts")
|
||||
useExperimentalAnnotation("kotlinx.serialization.ExperimentalSerializationApi")
|
||||
useExperimentalAnnotation("net.mamoe.mirai.console.util.ConsoleInternalApi")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api("org.jetbrains:annotations:19.0.0")
|
||||
api(kotlinx("coroutines-jdk8", Versions.coroutines))
|
||||
|
||||
compileOnly("org.jetbrains.kotlin:kotlin-compiler:${Versions.kotlinCompiler}")
|
||||
compileOnly("org.jetbrains.kotlin:kotlin-compiler:${Versions.kotlinCompiler}")
|
||||
compileOnly(files("libs/ide-common.jar"))
|
||||
|
||||
testApi(kotlin("test"))
|
||||
testApi(kotlin("test-junit5"))
|
||||
|
||||
testImplementation("org.junit.jupiter:junit-jupiter-api:5.2.0")
|
||||
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.2.0")
|
||||
}
|
||||
|
||||
tasks {
|
||||
"test"(Test::class) {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
}
|
||||
|
||||
// setupPublishing("mirai-console-intellij")
|
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.console.compiler.common.diagnostics;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory1;
|
||||
import org.jetbrains.kotlin.diagnostics.Errors;
|
||||
|
||||
import static org.jetbrains.kotlin.diagnostics.Severity.ERROR;
|
||||
|
||||
public interface MiraiConsoleErrors {
|
||||
DiagnosticFactory1<PsiElement, String> ILLEGAL_PLUGIN_ID = DiagnosticFactory1.create(ERROR);
|
||||
DiagnosticFactory1<PsiElement, String> ILLEGAL_PLUGIN_NAME = DiagnosticFactory1.create(ERROR);
|
||||
|
||||
@Deprecated
|
||||
Object _init = new Object() {
|
||||
{
|
||||
Errors.Initializer.initializeFactoryNamesAndDefaultErrorMessages(
|
||||
MiraiConsoleErrors.class,
|
||||
MiraiConsoleErrorsRendering.INSTANCE
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.console.compiler.common.diagnostics
|
||||
|
||||
import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_PLUGIN_ID
|
||||
import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_PLUGIN_NAME
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.DiagnosticFactoryToRendererMap
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.Renderers
|
||||
|
||||
object MiraiConsoleErrorsRendering : DefaultErrorMessages.Extension {
|
||||
private val MAP = DiagnosticFactoryToRendererMap("MiraiConsole").apply {
|
||||
put(
|
||||
ILLEGAL_PLUGIN_ID,
|
||||
"Illegal plugin id: '{0}'",
|
||||
Renderers.STRING
|
||||
)
|
||||
put(
|
||||
ILLEGAL_PLUGIN_NAME,
|
||||
"Illegal plugin name: '{0}'",
|
||||
Renderers.STRING
|
||||
)
|
||||
}
|
||||
|
||||
override fun getMap() = MAP
|
||||
}
|
2
tools/gradle-plugin/README.md
Normal file
2
tools/gradle-plugin/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
# mirai-console-gradle
|
||||
|
7
tools/intellij-plugin/README.md
Normal file
7
tools/intellij-plugin/README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# mirai-console-intellij
|
||||
|
||||
IntelliJ 平台的 Mirai Console 开发插件
|
||||
|
||||
## 功能
|
||||
|
||||
### 诊断
|
@ -87,6 +87,8 @@ dependencies {
|
||||
api("org.jetbrains:annotations:19.0.0")
|
||||
api(kotlinx("coroutines-jdk8", Versions.coroutines))
|
||||
|
||||
api(project(":mirai-console-compiler-common"))
|
||||
|
||||
compileOnly("org.jetbrains.kotlin:kotlin-compiler:${Versions.kotlinCompiler}")
|
||||
compileOnly("org.jetbrains.kotlin:kotlin-compiler:${Versions.kotlinCompiler}")
|
||||
compileOnly(files("libs/ide-common.jar"))
|
||||
|
Loading…
Reference in New Issue
Block a user