Skip to content

Commit 478f1d9

Browse files
committed
feat(docs): add basic PL/SQL implementation
- Add `com.intellij.openapi.application.runReadAction` import to `SqlLivingDocumentationProvider.kt` file. - Modify `updateDoc` function in `SqlLivingDocumentationProvider.kt` to use `runReadAction` when getting the containing file. - Add new `livingDocumentation` extension for language "SQL" in `cc.unitmesh.database.xml` file. - Add new `livingDocumentation` extension for language "Oracle" in `cc.unitmesh.database.xml` file. - Add new `blog.pl.sql` test resource file with a procedure `find_blog_by_id`.
1 parent 6e95d47 commit 478f1d9

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

exts/database/src/main/kotlin/cc/unitmesh/database/provider/SqlLivingDocumentationProvider.kt

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

33
import cc.unitmesh.devti.custom.document.LivingDocumentationType
44
import cc.unitmesh.devti.provider.LivingDocumentation
5+
import com.intellij.openapi.application.runReadAction
56
import com.intellij.openapi.command.WriteCommandAction
67
import com.intellij.openapi.editor.Editor
78
import com.intellij.openapi.editor.SelectionModel
@@ -22,7 +23,7 @@ class SqlLivingDocumentationProvider : LivingDocumentation {
2223
override fun updateDoc(target: PsiElement, newDoc: String, type: LivingDocumentationType, editor: Editor) {
2324
val project = target.project
2425
val codeStyleManager = CodeStyleManager.getInstance(project)
25-
val file = target.containingFile
26+
val file = runReadAction { target.containingFile }
2627

2728
val doc = newDoc + "\n"
2829

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@
55
</dependencies>
66

77
<extensions defaultExtensionNs="cc.unitmesh">
8+
<!-- -->
89
<livingDocumentation
910
language="SQL"
1011
implementationClass="cc.unitmesh.database.provider.SqlLivingDocumentationProvider"/>
12+
<livingDocumentation
13+
language="Oracle"
14+
implementationClass="cc.unitmesh.database.provider.SqlLivingDocumentationProvider"/>
1115
</extensions>
1216
</idea-plugin>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
CREATE OR REPLACE PROCEDURE find_blog_by_id(
2+
p_blog_id IN NUMBER,
3+
p_blog_content OUT VARCHAR2
4+
) AS
5+
BEGIN
6+
SELECT blog_content
7+
INTO p_blog_content
8+
FROM blogs
9+
WHERE blog_id = p_blog_id;
10+
11+
EXCEPTION
12+
WHEN NO_DATA_FOUND THEN
13+
p_blog_content := NULL; -- 或者你可以选择处理其他错误
14+
END find_blog_by_id;
15+
/

0 commit comments

Comments
 (0)