Skip to content

Commit 4d849e3

Browse files
committed
feat(database): add PL/SQL migration actions #80
This commit adds new PL/SQL migration actions to the database module. The actions include generating Java unit tests, generating Java entities, and visualizing PL/SQL code. The commit also includes the necessary changes to the AutoDevBundle properties file to support the new actions.
1 parent 70ca56b commit 4d849e3

File tree

6 files changed

+45
-6
lines changed

6 files changed

+45
-6
lines changed

exts/database/src/main/kotlin/cc/unitmesh/database/actions/GenerateEntityAction.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cc.unitmesh.database.actions
22

33
import cc.unitmesh.database.actions.base.SqlMigrationContext
4+
import cc.unitmesh.devti.AutoDevBundle
45
import cc.unitmesh.devti.gui.sendToChatWindow
56
import cc.unitmesh.devti.intentions.action.base.AbstractChatIntention
67
import cc.unitmesh.devti.provider.ContextPrompter
@@ -16,9 +17,9 @@ class GenerateEntityAction : AbstractChatIntention() {
1617

1718
override fun priority() = 901
1819

19-
override fun getFamilyName(): String = "PL/SQL Migration"
20+
override fun getFamilyName(): String = AutoDevBundle.message("migration.database.plsql")
2021

21-
override fun getText(): String = "Generate Java Entity"
22+
override fun getText(): String = AutoDevBundle.message("migration.database.plsql.generate.entity")
2223

2324
override fun isAvailable(project: Project, editor: Editor?, file: PsiFile?): Boolean {
2425
if (editor == null || file == null) return false

exts/database/src/main/kotlin/cc/unitmesh/database/actions/GenerateFunctionAction.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cc.unitmesh.database.actions
22

33
import cc.unitmesh.database.actions.base.SqlMigrationContext
4+
import cc.unitmesh.devti.AutoDevBundle
45
import cc.unitmesh.devti.gui.sendToChatWindow
56
import cc.unitmesh.devti.intentions.action.base.AbstractChatIntention
67
import cc.unitmesh.devti.provider.ContextPrompter
@@ -14,9 +15,9 @@ import com.intellij.sql.dialects.oracle.OraDialect
1415
class GenerateFunctionAction : AbstractChatIntention() {
1516
override fun priority() = 901
1617

17-
override fun getFamilyName(): String = "PL/SQL Migration"
18+
override fun getFamilyName(): String = AutoDevBundle.message("migration.database.plsql")
1819

19-
override fun getText(): String = "Generate Java Function"
20+
override fun getText(): String = AutoDevBundle.message("migration.database.plsql.generate.function")
2021

2122
val logger = logger<GenerateFunctionAction>()
2223

exts/database/src/main/kotlin/cc/unitmesh/database/actions/GenerateUnittestAction.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cc.unitmesh.database.actions
22

33
import cc.unitmesh.database.actions.base.SqlMigrationContext
4+
import cc.unitmesh.devti.AutoDevBundle
45
import cc.unitmesh.devti.gui.sendToChatWindow
56
import cc.unitmesh.devti.intentions.action.base.AbstractChatIntention
67
import cc.unitmesh.devti.provider.ContextPrompter
@@ -14,9 +15,9 @@ import com.intellij.sql.dialects.oracle.OraDialect
1415
class GenerateUnittestAction : AbstractChatIntention() {
1516
override fun priority(): Int = 899
1617

17-
override fun getFamilyName(): String = "PL/SQL Migration"
18+
override fun getFamilyName(): String = AutoDevBundle.message("migration.database.plsql")
1819

19-
override fun getText(): String = "Generate Java Unit Test"
20+
override fun getText(): String = AutoDevBundle.message("migration.database.plsql.generate.unittest")
2021

2122
override fun isAvailable(project: Project, editor: Editor?, file: PsiFile?): Boolean {
2223
if (editor == null || file == null) return false
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package cc.unitmesh.database.actions
2+
3+
import cc.unitmesh.devti.AutoDevBundle
4+
import com.intellij.codeInsight.intention.IntentionAction
5+
import com.intellij.openapi.editor.Editor
6+
import com.intellij.openapi.project.Project
7+
import com.intellij.psi.PsiFile
8+
9+
class VisualSqlAction : IntentionAction {
10+
override fun startInWriteAction(): Boolean = false
11+
12+
override fun getFamilyName(): String = AutoDevBundle.message("migration.database.plsql")
13+
14+
override fun getText(): String = AutoDevBundle.message("migration.database.plsql.visual")
15+
16+
override fun isAvailable(project: Project, p1: Editor?, p2: PsiFile?): Boolean {
17+
return false
18+
}
19+
20+
override fun invoke(project: Project, p1: Editor?, p2: PsiFile?) {
21+
TODO("Not yet implemented")
22+
}
23+
24+
25+
}

exts/database/src/main/resources/cc.unitmesh.database.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020
<bundleName>messages.AutoDevBundle</bundleName>
2121
<categoryKey>intention.category.llm</categoryKey>
2222
</autoDevIntention>
23+
<autoDevIntention>
24+
<className>cc.unitmesh.database.actions.VisualSqlAction</className>
25+
<bundleName>messages.AutoDevBundle</bundleName>
26+
<categoryKey>intention.category.llm</categoryKey>
27+
</autoDevIntention>
2328

2429
<livingDocumentation
2530
language="SQL"

src/main/resources/messages/AutoDevBundle.properties

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,9 @@ autodev.directory.completion.description=AutoDevCustomPrompts
108108
# Template
109109
action.AutoDev.NewPromptTemplate.text=AutoDev Prompt
110110

111+
#PL/SQL
112+
migration.database.plsql=PL/SQL Migration
113+
migration.database.plsql.generate.function=Generate Function
114+
migration.database.plsql.generate.unittest=Generate Unit Test
115+
migration.database.plsql.generate.entity=Generate Entity
116+
migration.database.plsql.visual=Visualize PL/SQL

0 commit comments

Comments
 (0)