Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next 1.3.0 #39

Merged
merged 27 commits into from
Jan 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ad24ddb
fix JVM toolchain download
jonathanlermitage Aug 20, 2024
6676260
Dependencies (GitHub Actions) - upgrade `gradle/actions/setup-gradle`…
hsz Aug 14, 2024
305bfc8
Upgrade Gradle Wrapper to `8.10`
hsz Aug 14, 2024
8e0270c
README: update tip styling
hsz Aug 14, 2024
d9c5d51
README: update references to IntelliJ Platform Gradle Plugin
hsz Aug 14, 2024
f8a064f
README: update screenshots
hsz Aug 14, 2024
038d00b
Fixed _Run Plugin_ run configuration logs location
hsz Aug 14, 2024
4cf4ef8
README: IntelliJ Platform Icons
hsz Aug 14, 2024
023aa9e
Upgrade Gradle Wrapper to `8.10.1`
YannCebron Sep 11, 2024
b83e18d
Update `platformVersion` to `2023.3.8`
YannCebron Sep 11, 2024
ff48dc7
Provide proper checkout configuration for Qodana needs
hybloid Sep 18, 2024
66a4470
Update Qodana version to latest stable
hybloid Sep 18, 2024
e6049b2
Sources should be fetched with full history before running Qodana
hybloid Sep 18, 2024
1cbcc2c
Upgrade Gradle Wrapper to `8.10.2`
hsz Sep 24, 2024
aeb824b
Dependencies - upgrade `org.jetbrains.intellij.platform` to `2.1.0`
hsz Sep 25, 2024
d0b82ae
Dependencies - upgrade `org.jetbrains.qodana` to `2024.2.3`
hsz Sep 25, 2024
54903fe
README: update references to IntelliJ Platform Gradle Plugin
hsz Oct 2, 2024
f78904a
Fixed `gradle.properties` files mismatch
hsz Oct 2, 2024
98cba4f
2.0.2
hsz Oct 2, 2024
5ab9b3d
Changelog update - v2.0.2 (#481)
github-actions[bot] Nov 12, 2024
9d94fa1
Merge branch 'github-main' into next-1.3.0
johnmai-dev Dec 23, 2024
50772b3
:arrow_up: Upgrade dependencies
johnmai-dev Dec 24, 2024
10e2596
✨ fix(SQL2GormStruct): Correct typo in method name `containsNotNullCo…
johnmai-dev Jan 27, 2025
55d69d5
✨ feat(GoORMHelperSettingForm): Add tag mode combo box for setting fo…
johnmai-dev Jan 27, 2025
2d75ed8
:bug: Fixed java.lang.ClassCastException: class com.alibaba.druid.sql…
johnmai-dev Jan 27, 2025
3b563f8
:arrow_up: ✨ chore(gradle/libs.versions.toml): Update `annotations` t…
johnmai-dev Jan 27, 2025
fd32aa5
✨ chore(gradle-wrapper): Update Gradle version to 8.12.1
johnmai-dev Jan 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .run/Run Plugin.run.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run Plugin" type="GradleRunConfiguration" factoryName="Gradle">
<log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
<log_file alias="IDE logs" path="$PROJECT_DIR$/build/idea-sandbox/*/log/idea.log" show_all="true" />
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
Expand All @@ -19,6 +19,7 @@
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>
</component>
4 changes: 0 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import org.jetbrains.changelog.Changelog
import org.jetbrains.changelog.markdownToHTML
import org.jetbrains.intellij.platform.gradle.TestFrameworkType

plugins {
Expand Down Expand Up @@ -53,9 +52,6 @@ dependencies {
// Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file for plugin from JetBrains Marketplace.
plugins(providers.gradleProperty("platformPlugins").map { it.split(',') })

instrumentationTools()
pluginVerifier()
zipSigner()
testFramework(TestFrameworkType.Platform)
}
}
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ platformPlugins =
platformBundledPlugins = org.jetbrains.plugins.go

# Gradle Releases -> https://github.com/gradle/gradle/releases
gradleVersion = 8.10
gradleVersion = 8.11.1

# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
kotlin.stdlib.default.dependency = false
Expand Down
14 changes: 7 additions & 7 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
[versions]
# libraries
junit = "5.11.0"
lombok = "1.18.34"
guava = "33.3.1-jre"
druid = "1.2.23"
junit = "5.11.4"
lombok = "1.18.36"
guava = "33.4.0-jre"
druid = "1.2.24"
jsqlparser = "5.0"
evoInflector = "1.3"
annotations = "24.1.0"
annotations = "26.0.2"

# plugins
changelog = "2.2.1"
intelliJPlatform = "2.0.1"
intelliJPlatform = "2.2.1"
kotlin = "1.9.25"
kover = "0.8.3"
qodana = "2024.1.9"
qodana = "2024.3.4"

[libraries]
junit = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit" }
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion qodana.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# https://www.jetbrains.com/help/qodana/qodana-yaml.html

version: 1.0
linter: jetbrains/qodana-jvm-community:latest
linter: jetbrains/qodana-jvm-community:2024.2
projectJDK: "17"
profile:
name: qodana.recommended
Expand Down
4 changes: 4 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
rootProject.name = "Go ORM Helper"

plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}
27 changes: 22 additions & 5 deletions src/main/java/com/github/maiqingqiang/goormhelper/Types.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.github.maiqingqiang.goormhelper.sql2struct.impl.SQL2GormStruct;
import com.github.maiqingqiang.goormhelper.sql2struct.impl.SQL2Struct;
import com.github.maiqingqiang.goormhelper.sql2struct.impl.SQL2XormStruct;
import com.intellij.openapi.project.Project;

import java.util.List;
import java.util.regex.Pattern;
Expand Down Expand Up @@ -61,12 +62,12 @@ public String toString() {
return name;
}

public ISQL2Struct sql2Struct(String sql, DbType dbType) {
public ISQL2Struct sql2Struct(Project project, String sql, DbType dbType) {
return switch (this) {
case General -> new SQL2Struct(sql, dbType);
case Gorm -> new SQL2GormStruct(sql, dbType);
case Xorm -> new SQL2XormStruct(sql, dbType);
case GoFrame -> new SQL2GoFrameStruct(sql, dbType);
case General -> new SQL2Struct(project, sql, dbType);
case Gorm -> new SQL2GormStruct(project, sql, dbType);
case Xorm -> new SQL2XormStruct(project, sql, dbType);
case GoFrame -> new SQL2GoFrameStruct(project, sql, dbType);
default -> null;
};
}
Expand Down Expand Up @@ -96,4 +97,20 @@ public String toString() {
return name;
}
}

enum TagMode {
Compact(GoORMHelperBundle.message("tagMode.Compact")),
Full(GoORMHelperBundle.message("tagMode.Full"));

private final String name;

@Override
public String toString() {
return name;
}

TagMode(String name) {
this.name = name;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ protected void doExecute(@NotNull Editor editor, @Nullable Caret caret, DataCont
return;
}

ISQL2Struct sql2Struct = finalSelectedORM.sql2Struct(text, finalSelectedDatabase.toDbType());
ISQL2Struct sql2Struct = finalSelectedORM.sql2Struct(project, text, finalSelectedDatabase.toDbType());
if (sql2Struct == null) {
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.editor.Caret;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;

import java.util.Objects;
Expand All @@ -19,13 +20,15 @@ public class SQL2StructAction extends AnAction {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {

GoORMHelperProjectSettings.State state = Objects.requireNonNull(GoORMHelperProjectSettings.getInstance(Objects.requireNonNull(e.getProject())).getState());
Project project = e.getProject();

GoORMHelperProjectSettings.State state = Objects.requireNonNull(GoORMHelperProjectSettings.getInstance(Objects.requireNonNull(project)).getState());

Types.ORM selectedORM = state.defaultORM;
Types.Database selectedDatabase = state.defaultDatabase;

if (selectedORM == Types.ORM.AskEveryTime || selectedDatabase == Types.Database.AskEveryTime) {
ConvertSettingDialogWrapper wrapper = new ConvertSettingDialogWrapper(e.getProject());
ConvertSettingDialogWrapper wrapper = new ConvertSettingDialogWrapper(project);
if (!wrapper.showAndGet()) return;

selectedORM = (Types.ORM) wrapper.getOrmComponent().getComponent().getSelectedItem();
Expand All @@ -44,12 +47,14 @@ public void actionPerformed(@NotNull AnActionEvent e) {
final Types.ORM finalSelectedORM = selectedORM;
final Types.Database finalSelectedDatabase = selectedDatabase;

WriteCommandAction.runWriteCommandAction(e.getProject(), () -> {
WriteCommandAction.runWriteCommandAction(project, () -> {
if (text == null || text.isEmpty() || finalSelectedORM == null || finalSelectedDatabase == null) return;

ISQL2Struct sql2Struct = finalSelectedORM.sql2Struct(text, finalSelectedDatabase.toDbType());
ISQL2Struct sql2Struct = finalSelectedORM.sql2Struct(project, text, finalSelectedDatabase.toDbType());

editor.getDocument().replaceString(start, end, sql2Struct.convert());
if (sql2Struct != null) {
editor.getDocument().replaceString(start, end, sql2Struct.convert());
}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ public void setDefaultDatabase(Types.Database database) {
state.defaultDatabase = database;
}

public void setDefaultTagMode(Types.TagMode tagMode) {
state.defaultTagMode = tagMode;
}

public void setEnableGlobalScan(boolean enable) {
state.enableGlobalScan = enable;
}
Expand All @@ -59,6 +63,7 @@ public void setScanPathList(List<String> scanPathList) {
public static class State extends SimpleModificationTracker {
public Types.ORM defaultORM = Types.ORM.AskEveryTime;
public Types.Database defaultDatabase = Types.Database.AskEveryTime;
public Types.TagMode defaultTagMode = Types.TagMode.Full;
public boolean enableGlobalScan = true;


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@

import com.alibaba.druid.DbType;
import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;

public class SQL2GoFrameStruct extends SQL2Struct {
public SQL2GoFrameStruct(String sql, DbType dbType) {
super(sql, dbType);
public SQL2GoFrameStruct(Project project, String sql, DbType dbType) {
super(project, sql, dbType);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,37 @@

import com.alibaba.druid.DbType;
import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
import com.github.maiqingqiang.goormhelper.Types;
import com.github.maiqingqiang.goormhelper.services.GoORMHelperProjectSettings;
import com.github.maiqingqiang.goormhelper.utils.Strings;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;

import java.util.Objects;

public class SQL2GormStruct extends SQL2Struct {
public SQL2GormStruct(String sql, DbType dbType) {
super(sql, dbType);
public SQL2GormStruct(Project project, String sql, DbType dbType) {
super(project, sql, dbType);
}

@Override
protected void generateORMTag(@NotNull StringBuilder stringBuilder, @NotNull SQLColumnDefinition definition) {
stringBuilder.append("gorm:\"")
.append("column:").append(getColumn(definition)).append(";")
.append("type:").append(getDBType(definition)).append(";");
GoORMHelperProjectSettings.State state = Objects.requireNonNull(GoORMHelperProjectSettings.getInstance(project).getState());

if (state.defaultTagMode == Types.TagMode.Compact || state.defaultTagMode == Types.TagMode.Full) {
stringBuilder.append("gorm:\"")
.append("column:").append(getColumn(definition)).append(";");
}

if (state.defaultTagMode == Types.TagMode.Full) {
appendOriginalTagAttributes(stringBuilder, definition);
}

stringBuilder.append("\" ");
}

private void appendOriginalTagAttributes(@NotNull StringBuilder stringBuilder, @NotNull SQLColumnDefinition definition) {
stringBuilder.append("type:").append(getDBType(definition)).append(";");

String comment = getComment(definition);
if (!comment.isEmpty()) {
Expand All @@ -25,18 +43,15 @@ protected void generateORMTag(@NotNull StringBuilder stringBuilder, @NotNull SQL
stringBuilder.append("primaryKey;");
}

if (definition.containsNotNullConstaint()) {
if (definition.containsNotNullConstraint()) {
stringBuilder.append("not null;");
}

if (definition.getDefaultExpr() != null) {
String def = Strings.clearSingleQuotn(definition.getDefaultExpr().toString());

if (!def.isEmpty()) {
stringBuilder.append("default:").append(def).append(";");
}
}

stringBuilder.append("\" ");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.github.maiqingqiang.goormhelper.sql2struct.ISQL2Struct;
import com.github.maiqingqiang.goormhelper.utils.Strings;
import com.google.common.base.CaseFormat;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;

import java.util.List;
Expand Down Expand Up @@ -63,11 +64,13 @@ public class SQL2Struct implements ISQL2Struct {
private static final String defaultUnsignedDataType = "uint32";
private final String sql;
private final DbType dbType;
protected final Project project;


public SQL2Struct(String sql, DbType dbType) {
public SQL2Struct(Project project, String sql, DbType dbType) {
this.sql = sql;
this.dbType = dbType;
this.project = project;
}

public String convert() {
Expand All @@ -84,23 +87,23 @@ public String convert() {
}

private void singleConvert(@NotNull StringBuilder stringBuilder, SQLStatement statement) {
SQLCreateTableStatement createTableStatement = (SQLCreateTableStatement) statement;
if (statement instanceof SQLCreateTableStatement createTableStatement) {
String tableName = Strings.clearQuote(createTableStatement.getTableName());
tableName = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, tableName);

String tableName = Strings.clearQuote(createTableStatement.getTableName());
tableName = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, tableName);
stringBuilder.append("type ").append(tableName).append(" struct {\n");

stringBuilder.append("type ").append(tableName).append(" struct {\n");

List<SQLTableElement> tableElementList = createTableStatement.getTableElementList();

List<SQLTableElement> tableElementList = createTableStatement.getTableElementList();

for (SQLTableElement sqlTableElement : tableElementList) {
if (sqlTableElement instanceof SQLColumnDefinition sqlColumnDefinition) {
generateStructField(stringBuilder, sqlColumnDefinition);
for (SQLTableElement sqlTableElement : tableElementList) {
if (sqlTableElement instanceof SQLColumnDefinition sqlColumnDefinition) {
generateStructField(stringBuilder, sqlColumnDefinition);
}
}
}

stringBuilder.append("}\n\n");
stringBuilder.append("}\n\n");
}
}

protected String getGoType(@NotNull SQLColumnDefinition definition) {
Expand Down
Loading