From 55d69d57ca9ad5dbd2a02067a0f87f1955c3fac5 Mon Sep 17 00:00:00 2001 From: John Mai Date: Mon, 27 Jan 2025 22:47:07 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(GoORMHelperSettingForm):=20Add?= =?UTF-8?q?=20tag=20mode=20combo=20box=20for=20setting=20form=20#31?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maiqingqiang/goormhelper/Types.java | 27 ++++++++++++--- .../actions/EditorPasteListener.java | 2 +- .../goormhelper/actions/SQL2StructAction.java | 11 ++++--- .../services/GoORMHelperProjectSettings.java | 5 +++ .../sql2struct/impl/SQL2GoFrameStruct.java | 5 +-- .../sql2struct/impl/SQL2GormStruct.java | 33 ++++++++++++++----- .../sql2struct/impl/SQL2Struct.java | 5 ++- .../sql2struct/impl/SQL2XormStruct.java | 33 +++++++++++++------ .../ui/GoORMHelperSettingForm.java | 9 +++++ .../messages/GoORMHelperBundle.properties | 9 +++-- .../messages/GoORMHelperBundle_ja.properties | 8 +++-- .../messages/GoORMHelperBundle_ko.properties | 8 +++-- .../messages/GoORMHelperBundle_zh.properties | 8 +++-- 13 files changed, 123 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/Types.java b/src/main/java/com/github/maiqingqiang/goormhelper/Types.java index 982b5c6..bd10e8c 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/Types.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/Types.java @@ -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; @@ -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; }; } @@ -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; + } + } } diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/actions/EditorPasteListener.java b/src/main/java/com/github/maiqingqiang/goormhelper/actions/EditorPasteListener.java index bb684b4..8905da6 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/actions/EditorPasteListener.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/actions/EditorPasteListener.java @@ -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; } diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/actions/SQL2StructAction.java b/src/main/java/com/github/maiqingqiang/goormhelper/actions/SQL2StructAction.java index 7f7746d..d6029c1 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/actions/SQL2StructAction.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/actions/SQL2StructAction.java @@ -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; @@ -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(); @@ -44,10 +47,10 @@ 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()); }); diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/services/GoORMHelperProjectSettings.java b/src/main/java/com/github/maiqingqiang/goormhelper/services/GoORMHelperProjectSettings.java index 6670393..540be16 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/services/GoORMHelperProjectSettings.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/services/GoORMHelperProjectSettings.java @@ -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; } @@ -59,6 +63,7 @@ public void setScanPathList(List 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; diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2GoFrameStruct.java b/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2GoFrameStruct.java index cf4efc7..5776651 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2GoFrameStruct.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2GoFrameStruct.java @@ -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 diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2GormStruct.java b/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2GormStruct.java index fa264c9..c11d054 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2GormStruct.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2GormStruct.java @@ -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()) { @@ -31,12 +49,9 @@ protected void generateORMTag(@NotNull StringBuilder stringBuilder, @NotNull SQL if (definition.getDefaultExpr() != null) { String def = Strings.clearSingleQuotn(definition.getDefaultExpr().toString()); - if (!def.isEmpty()) { stringBuilder.append("default:").append(def).append(";"); } } - - stringBuilder.append("\" "); } -} +} \ No newline at end of file diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2Struct.java b/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2Struct.java index 7681638..6dfaa58 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2Struct.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2Struct.java @@ -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; @@ -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() { diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2XormStruct.java b/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2XormStruct.java index ce3fd62..91b7a92 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2XormStruct.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/sql2struct/impl/SQL2XormStruct.java @@ -2,21 +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 SQL2XormStruct extends SQL2Struct { - public SQL2XormStruct(String sql, DbType dbType) { - super(sql, dbType); + public SQL2XormStruct(Project project, String sql, DbType dbType) { + super(project, sql, dbType); } @Override protected void generateORMTag(@NotNull StringBuilder stringBuilder, @NotNull SQLColumnDefinition definition) { - stringBuilder.append("xorm:\""); + GoORMHelperProjectSettings.State state = Objects.requireNonNull(GoORMHelperProjectSettings.getInstance(project).getState()); + + if (state.defaultTagMode == Types.TagMode.Compact || state.defaultTagMode == Types.TagMode.Full) { + stringBuilder.append("xorm:\"") + .append(getDBType(definition)).append(" ") + .append("'").append(getColumn(definition)).append("' "); + } + + if (state.defaultTagMode == Types.TagMode.Full) { + appendOriginalTagAttributes(stringBuilder, definition); + } - stringBuilder.append(getDBType(definition)).append(" "); - stringBuilder.append("'").append(getColumn(definition)).append("' "); + stringBuilder.append("\" "); + } + private void appendOriginalTagAttributes(@NotNull StringBuilder stringBuilder, @NotNull SQLColumnDefinition definition) { String comment = getComment(definition); if (!comment.isEmpty()) { stringBuilder.append("comment('").append(comment).append("') "); @@ -30,18 +46,15 @@ protected void generateORMTag(@NotNull StringBuilder stringBuilder, @NotNull SQL stringBuilder.append("autoincr "); } - if (definition.containsNotNullConstaint()) { + if (definition.containsNotNullConstraint()) { stringBuilder.append("notnull "); } if (definition.getDefaultExpr() != null) { String def = Strings.clearSingleQuotn(definition.getDefaultExpr().toString()); - if (!def.isEmpty()) { stringBuilder.append("default ").append(def).append(" "); } } - - stringBuilder.append("\" "); } -} +} \ No newline at end of file diff --git a/src/main/java/com/github/maiqingqiang/goormhelper/ui/GoORMHelperSettingForm.java b/src/main/java/com/github/maiqingqiang/goormhelper/ui/GoORMHelperSettingForm.java index d9af2de..6cb6fda 100644 --- a/src/main/java/com/github/maiqingqiang/goormhelper/ui/GoORMHelperSettingForm.java +++ b/src/main/java/com/github/maiqingqiang/goormhelper/ui/GoORMHelperSettingForm.java @@ -29,6 +29,8 @@ public class GoORMHelperSettingForm implements ConfigurableUi ormComboBox; private ComboBox databaseComboBox; + private ComboBox tagModeComboBox; + private JCheckBox enableGlobalScanCheckBox; private ListTableModel scanPathListTableModel; // private TextFieldWithBrowseButton sqlPathTextField; @@ -63,6 +65,8 @@ private static FileChooserDescriptor getFileChooserDescriptor(String title) { private void initComponent() { ormComboBox = new ComboBox<>(Types.ORM.values()); databaseComboBox = new ComboBox<>(Types.Database.values()); + tagModeComboBox = new ComboBox<>(Types.TagMode.values()); + enableGlobalScanCheckBox = new JCheckBox(GoORMHelperBundle.message("setting.enableGlobalScanCheckBox.title")); findStructTableNameFuncCheckBox = new JCheckBox(GoORMHelperBundle.message("setting.findStructTableNameFuncCheckBox.title")); @@ -70,6 +74,7 @@ private void initComponent() { .createFormBuilder() .addLabeledComponent(GoORMHelperBundle.message("setting.ormComboBox.title"), ormComboBox) .addLabeledComponent(GoORMHelperBundle.message("setting.databaseComboBox.title"), databaseComboBox) + .addLabeledComponent(GoORMHelperBundle.message("setting.tagModeComboBox.title"), tagModeComboBox) .addComponent(enableGlobalScanCheckBox) .addComponentFillVertically(initScanPathComponent(), 0) .addComponent(new JSeparator()) @@ -134,6 +139,8 @@ private void loadSettings(@NotNull GoORMHelperProjectSettings settings) { ormComboBox.setSelectedItem(state.defaultORM); databaseComboBox.setSelectedItem(state.defaultDatabase); + tagModeComboBox.setSelectedItem(state.defaultTagMode); + // sqlPathTextField.setText(state.sqlPath); enableGlobalScanCheckBox.setSelected(state.enableGlobalScan); findStructTableNameFuncCheckBox.setSelected(state.findStructTableNameFunc); @@ -147,6 +154,7 @@ public boolean isModified(@NotNull GoORMHelperProjectSettings settings) { return !(ormComboBox.getSelectedItem() == state.defaultORM && databaseComboBox.getSelectedItem() == state.defaultDatabase + && tagModeComboBox.getSelectedItem() == state.defaultTagMode // && sqlPathTextField.getText().equals(state.sqlPath) && enableGlobalScanCheckBox.isSelected() == state.enableGlobalScan && findStructTableNameFuncCheckBox.isSelected() == state.findStructTableNameFunc @@ -160,6 +168,7 @@ public void apply(@NotNull GoORMHelperProjectSettings settings) { List oldscanPathList = scanPathListTableModel.getItems(); settings.setDefaultDatabase((Types.Database) databaseComboBox.getSelectedItem()); + settings.setDefaultTagMode((Types.TagMode) tagModeComboBox.getSelectedItem()); settings.setDefaultORM((Types.ORM) ormComboBox.getSelectedItem()); settings.setEnableGlobalScan(enableGlobalScanCheckBox.isSelected()); settings.setFindStructTableNameFunc(findStructTableNameFuncCheckBox.isSelected()); diff --git a/src/main/resources/messages/GoORMHelperBundle.properties b/src/main/resources/messages/GoORMHelperBundle.properties index 02f9552..b5c5c29 100644 --- a/src/main/resources/messages/GoORMHelperBundle.properties +++ b/src/main/resources/messages/GoORMHelperBundle.properties @@ -10,11 +10,13 @@ sql.convert.struct.check=Please check if the SQL is correct. action.GoORMHelper.SQL2StructAction.text=SQL Convert Struct action.GoORMHelper.SQL2StructAction.description=SQL Convert Struct # setting +setting.basic.title=Basic setting.tableview.column.location=Location setting.decorator.title=Scan Path setting.ormComboBox.title=ORM setting.databaseComboBox.title=Database -setting.sqlPathTextField.title=SQL File Path +setting.tagModeComboBox.title=Tag Mode +setting.scanPath.title=SQL File Path setting.enableGlobalScanCheckBox.title=Global Scan setting.findStructTableNameFuncCheckBox.title=Scan Struct Table Name setting.experimental.title=Experimental: @@ -22,4 +24,7 @@ setting.experimental.title=Experimental: database.AskEveryTime=Ask every time # orm orm.AskEveryTime=Ask every time -orm.General=General \ No newline at end of file +orm.General=General +# tag mode +tagMode.Compact=Compact +tagMode.Full=Full \ No newline at end of file diff --git a/src/main/resources/messages/GoORMHelperBundle_ja.properties b/src/main/resources/messages/GoORMHelperBundle_ja.properties index f5560f4..11fbc66 100644 --- a/src/main/resources/messages/GoORMHelperBundle_ja.properties +++ b/src/main/resources/messages/GoORMHelperBundle_ja.properties @@ -14,7 +14,8 @@ setting.tableview.column.location=\u30D1\u30B9 setting.decorator.title=\u30B9\u30AD\u30E3\u30F3\u30D1\u30B9 setting.ormComboBox.title=ORM setting.databaseComboBox.title=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 -setting.sqlPathTextField.title=SQL \u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 +setting.tagModeComboBox.title=Tag Mode +setting.scanPath.title=SQL \u30D5\u30A1\u30A4\u30EB\u30D1\u30B9 setting.enableGlobalScanCheckBox.title=\u30B0\u30ED\u30FC\u30D0\u30EB\u30B9\u30AD\u30E3\u30F3 setting.findStructTableNameFuncCheckBox.title=Struct \u30c6\u30fc\u30d6\u30eb\u540d\u3092\u30b9\u30ad\u30e3\u30f3\u3059\u308b setting.experimental.title=\u5b9f\u9a13\u7684: @@ -22,4 +23,7 @@ setting.experimental.title=\u5b9f\u9a13\u7684: database.AskEveryTime=\u6BCE\u56DE\u306E\u554F\u3044\u5408\u308F\u305B # orm orm.AskEveryTime=\u6BCE\u56DE\u306E\u554F\u3044\u5408\u308F\u305B -orm.General=\u5171\u901A \ No newline at end of file +orm.General=\u5171\u901A +# tag mode +tagMode.Compact=Compact +tagMode.Full=Full \ No newline at end of file diff --git a/src/main/resources/messages/GoORMHelperBundle_ko.properties b/src/main/resources/messages/GoORMHelperBundle_ko.properties index b7fe151..d8f8e32 100644 --- a/src/main/resources/messages/GoORMHelperBundle_ko.properties +++ b/src/main/resources/messages/GoORMHelperBundle_ko.properties @@ -14,7 +14,8 @@ setting.tableview.column.location=\uACBD\uB85C setting.decorator.title=\uC2A4\uCE94 \uACBD\uB85C setting.ormComboBox.title=ORM setting.databaseComboBox.title=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 -setting.sqlPathTextField.title=SQL \uD30C\uC77C \uACBD\uB85C +setting.tagModeComboBox.title=Tag Mode +setting.scanPath.title=SQL \uD30C\uC77C \uACBD\uB85C setting.enableGlobalScanCheckBox.title=\uC804\uC5ED \uAC80\uC0C9 setting.findStructTableNameFuncCheckBox.title=Struct \ud14c\uc774\ube14 \uc774\ub984 \uc2a4\uce94 setting.experimental.title=\uc2e4\ud5d8\uc801: @@ -22,4 +23,7 @@ setting.experimental.title=\uc2e4\ud5d8\uc801: database.AskEveryTime=\uC9C8\uBB38\uB9C8\uB2E4 # orm orm.AskEveryTime=\uC9C8\uBB38\uB9C8\uB2E4 -orm.General=\uACF5\uD1B5 \ No newline at end of file +orm.General=\uACF5\uD1B5 +# tag mode +tagMode.Compact=Compact +tagMode.Full=Full \ No newline at end of file diff --git a/src/main/resources/messages/GoORMHelperBundle_zh.properties b/src/main/resources/messages/GoORMHelperBundle_zh.properties index 824cec7..66fc7f8 100644 --- a/src/main/resources/messages/GoORMHelperBundle_zh.properties +++ b/src/main/resources/messages/GoORMHelperBundle_zh.properties @@ -14,7 +14,8 @@ setting.tableview.column.location=\u8DEF\u5F84 setting.decorator.title=\u626B\u63CF\u8DEF\u5F84 setting.ormComboBox.title=ORM setting.databaseComboBox.title=\u6570\u636E\u5E93 -setting.sqlPathTextField.title=SQL \u6587\u4EF6\u8DEF\u5F84 +setting.tagModeComboBox.title=Tag \u6a21\u5f0f +setting.scanPath.title=SQL \u6587\u4EF6\u8DEF\u5F84 setting.enableGlobalScanCheckBox.title=\u5168\u5C40\u626B\u63CF setting.findStructTableNameFuncCheckBox.title=\u626b\u63cf Struct \u8868\u540d setting.experimental.title=\u5b9e\u9a8c\u6027 @@ -22,4 +23,7 @@ setting.experimental.title=\u5b9e\u9a8c\u6027 database.AskEveryTime=\u6BCF\u6B21\u8BE2\u95EE # orm orm.AskEveryTime=\u6BCF\u6B21\u8BE2\u95EE -orm.General=\u901A\u7528 \ No newline at end of file +orm.General=\u901A\u7528 +# tag mode +tagMode.Compact=\u7b80\u6d01 +tagMode.Full=\u5b8c\u6574 \ No newline at end of file