Skip to content

Commit 6bf3f70

Browse files
committed
✨ feat: Optimize quick document display content
1 parent c7c1858 commit 6bf3f70

File tree

3 files changed

+31
-4
lines changed

3 files changed

+31
-4
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44

55
## [Unreleased]
66

7+
### Added
8+
- Optimize quick document display content
9+
- 优化快速文档展示效果,直接显示sql内容
10+
11+
## [0.4.0] - 2024-04-26
12+
713
### Added
814
- added support for [SqlToy-Plus](https://gitee.com/gzghde/sqltoy-plus);
915
- sqltoy sql xml inspection

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pluginGroup = com.github.imyuyu
44
pluginName = SQLToy Integration
55
pluginRepositoryUrl = https://github.com/imyuyu/sqltoy-idea-plugin
66
# SemVer format -> https://semver.org
7-
pluginVersion = 0.4.0
7+
pluginVersion = 0.4.1
88

99
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
1010
pluginSinceBuild = 222

src/main/kotlin/com/github/imyuyu/sqltoy/provider/SqlIdQuickDoc.kt

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
package com.github.imyuyu.sqltoy.provider
22

3+
import com.github.imyuyu.sqltoy.dom.model.Sql
34
import com.github.imyuyu.sqltoy.util.XmlUtil
5+
import com.intellij.codeInsight.documentation.DocumentationManagerProtocol
6+
import com.intellij.codeInsight.documentation.DocumentationManagerUtil
47
import com.intellij.lang.documentation.AbstractDocumentationProvider
8+
import com.intellij.lang.documentation.DocumentationMarkup
59
import com.intellij.lang.documentation.DocumentationMarkup.DEFINITION_ELEMENT
610
import com.intellij.openapi.util.text.HtmlBuilder
711
import com.intellij.openapi.util.text.HtmlChunk
812
import com.intellij.psi.PsiElement
13+
import com.intellij.psi.util.PsiTreeUtil
14+
import com.intellij.psi.util.PsiUtil
915
import com.intellij.psi.xml.XmlAttributeValue
16+
import com.intellij.psi.xml.XmlTag
17+
import com.intellij.util.xml.DomManager
1018

1119

1220
class SqlIdQuickDoc : AbstractDocumentationProvider() {
@@ -29,12 +37,25 @@ class SqlIdQuickDoc : AbstractDocumentationProvider() {
2937

3038
val id = element.text.replace("\"", "");
3139

32-
// todo 下一步使用HtmlBuilder
40+
//var stringBuilder = StringBuilder()
41+
//DocumentationManagerUtil.createHyperlink(stringBuilder, element, element.toString(), "$id",true);
3342

34-
return "<div class='definition'>" +
43+
val sql = DomManager.getDomManager(element.project)
44+
.getDomElement(PsiTreeUtil.getParentOfType(element, XmlTag::class.java)) as Sql
45+
46+
return HtmlBuilder().append(
47+
HtmlChunk.div().setClass(DocumentationMarkup.CLASS_DEFINITION).children(HtmlChunk.tag("pre")
48+
.addText("SQL ID ")
49+
.child(HtmlChunk.link(DocumentationManagerProtocol.PSI_ELEMENT_PROTOCOL+PsiUtil.getName(element), id))
50+
.addText(" is defined in ")
51+
.child(HtmlChunk.link("psi_element://"+ (PsiUtil.getVirtualFile(element)?.path ?: ""), element.containingFile.name)))
52+
)
53+
.append(HtmlChunk.div().setClass(DocumentationMarkup.CLASS_CONTENT).addText(sql.getSqlValue().getValue()!!)).toString();
54+
55+
/*return "<div class='definition'>" +
3556
"<pre>XML File : <a href=''>" + element.containingFile.name + "</a></pre>" +
3657
"</div>" +
37-
"<div class='content'>SQLToy SqlId : " + id + "</div>"
58+
"<div class='content'>SQLToy SqlId : " + id + "</div>"*/
3859

3960
//return "SQLToy SqlId : "+element.text
4061
}

0 commit comments

Comments
 (0)