Compatible with old and new versions

This commit is contained in:
林万程
2022-10-27 03:15:33 +08:00
parent 44f024ac21
commit 82d0ade99b
15 changed files with 25 additions and 452 deletions

View File

@@ -25,10 +25,12 @@ intellij {
localPath = "/Applications/IntelliJ IDEA.app"
} else {
version = ideaVersion
// localPath = "D:/Program Files/JetBrains/IntelliJ IDEA 2021.2.2"
}
// see https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#intellij-extension-plugins
plugins = [
'Pythonid:201.6668.121',
// 'Pythonid:212.5284.44',
]
if ('IC' == ideTypeStr || 'IU' == ideTypeStr) {
plugins.add('java')
@@ -38,6 +40,7 @@ intellij {
plugins.add('JavaScript')
plugins.add('com.intellij.database')
plugins.add('org.jetbrains.plugins.go:201.6668.60.126')
// plugins.add('org.jetbrains.plugins.go:212.5284.31')
}
}

View File

@@ -1,5 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<editor.linePainter implementation="io.github.linwancen.plugin.show.lang.CsLineEnd"/>
</extensions>
</idea-plugin>

View File

@@ -1,5 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<editor.linePainter implementation="io.github.linwancen.plugin.show.lang.GoLangDoc"/>
</extensions>
</idea-plugin>

View File

@@ -1,6 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<psi.referenceContributor implementation="io.github.linwancen.plugin.show.java.JsonJumpJava"/>
<editor.linePainter implementation="io.github.linwancen.plugin.show.java.JavaLangDoc"/>
</extensions>
</idea-plugin>

View File

@@ -1,5 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<editor.linePainter implementation="io.github.linwancen.plugin.show.lang.JsLangDoc"/>
</extensions>
</idea-plugin>

View File

@@ -1,5 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<editor.linePainter implementation="io.github.linwancen.plugin.show.java.KotlinLangDoc"/>
</extensions>
</idea-plugin>

View File

@@ -1,132 +0,0 @@
<idea-plugin url="https://plugins.jetbrains.com/plugin/18553-show-comment">
<id>io.github.linwancen.show-comment</id>
<name>Show Comment</name>
<vendor email="1498425439@qq.com" url="https://github.com/LinWanCen/show-comment">林万程</vendor>
<description><![CDATA[
<h2>English Notes:</h2>
<ul>
<li>Show javadoc comments at the Project view Tree structure
<li>Show javadoc comments at the end-of-line
<li>Show javadoc comments at "xx-ClassNameOrSimpleName.json" and jump to field
<li>Show comments from External Conf for folder, resources, COBOL etc.
<li>Config: settings -> Tools -> // Show Comment Global/Project
</ul>
<h3>External Comment:</h3>
<a href="https://github.com/LinWanCen/show-comment/tree/main/src/test/java/io/github/linwancen/plugin/show/demo/ext">Demo(GitHub)</a>
<ul>
<li>Reload: Tools -> 🔄 // Reload External Comment
<li>path/[any][filename.]ext.tree.tsv // file and folder tree comment 📝 📁
<li>path/[any][filename.]ext.key.tsv // line keywords to split and comment
<li>path/[any][filename.]ext.doc.tsv // line words comment
<li>In path, "doc" can replace any, and can use % like in SQL, effect at previous layer when folder named -1
<li>The lines in key.tsv will be concatenated with `|` to regexp; longer str should in front; startWith `?` to exclude
<li>Chang tsv file in find pop window would not reload!
<li>The tsv conf file must could be search in "Go to File"(Ctrl + Shift + N)
</ul>
<h2>中文说明:</h2>
<ul>
<li>在结构树显示 文档注释
<li>在行末尾显示 文档注释
<li>支持 "xx-类全名或简名.json" 文档注释与跳转到字段
<li>支持 从配置文件获取外部注释用于文件夹、资源、COBOL 等
<li>修改配置:设置 -> 工具 -> // Show Comment Global/Project
</ul>
<h3>外部注释:</h3>
<a href="https://gitee.com/LinWanCen/show-comment/tree/main/src/test/java/io/github/linwancen/plugin/show/demo/ext">示例(Gitee)</a>
:比如你要给 .go 的文件配置文件注释可以放在相同目录或父目录的 xxx.go.tree.tsv 中
<ul>
<li>重新加载:工具 -> "🔄 // Reload External Comment"
<li>path/[any][filename.]ext.tree.tsv // 文件(夹)注释 📝 📁
<li>path/[any][filename.]ext.key.tsv // 切割关键字与注释
<li>path/[any][filename.]ext.doc.tsv // 词注释
<li>key.tsv 的每一行将会用`|`连接起来形成正则表达式,较长的关键字应该放在前面,用 `?` 开头排除
<li>doc 文件夹可以替换任何一层文件夹,可以像 SQL 那样用 % 模糊匹配,文件夹名为 -1 时在上一层文件夹生效
<li>在搜索弹出窗中修改 tsv 文件将不会被重加载
<li>tsv 配置文件必须能被搜索(Ctrl + Shift + N)
</ul>
如果对你有所帮助,别忘了给本项目
<a href="https://github.com/LinWanCen/show-comment">GitHub</a>
主页一个 Start您的支持是项目前进的动力。
]]></description>
<!-- please see https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html
on how to target different products -->
<depends optional="true" config-file="java.xml">com.intellij.modules.java</depends>
<depends optional="true" config-file="sql.xml">com.intellij.database</depends>
<depends optional="true" config-file="js.xml">JavaScript</depends>
<depends optional="true" config-file="python.xml">com.intellij.modules.python</depends>
<depends optional="true" config-file="go.xml">org.jetbrains.plugins.go</depends>
<depends optional="true" config-file="kotlin.xml">org.jetbrains.kotlin</depends>
<!--<depends optional="true" config-file="cs.xml">com.intellij.modules.rider</depends>-->
<applicationListeners>
<listener class="io.github.linwancen.plugin.show.ext.conf.ConfFileListener"
topic="com.intellij.openapi.vfs.newvfs.BulkFileListener"/>
<listener class="io.github.linwancen.plugin.show.ext.conf.ConfFileChangeListener"
topic="com.intellij.openapi.fileEditor.FileEditorManagerListener"/>
</applicationListeners>
<projectListeners>
<listener class="io.github.linwancen.plugin.show.ext.conf.ConfFileInitListener"
topic="com.intellij.openapi.project.ProjectManagerListener"/>
</projectListeners>
<extensions defaultExtensionNs="com.intellij">
<editor.linePainter implementation="io.github.linwancen.plugin.show.LineEnd"/>
<projectViewNodeDecorator implementation="io.github.linwancen.plugin.show.Tree"/>
<defaultLiveTemplates file="/liveTemplates/show-comment-doc.xml"/>
<defaultLiveTemplates file="/liveTemplates/show-comment-xml.xml"/>
<applicationConfigurable parentId="tools"
instance="io.github.linwancen.plugin.show.settings.AppSettingsConfigurable"
id="io.github.linwancen.plugin.show.settings.AppSettingsConfigurable"
displayName="// Show Comment Global"/>
<applicationService serviceImplementation="io.github.linwancen.plugin.show.settings.AppSettingsState"/>
<projectConfigurable parentId="tools"
instance="io.github.linwancen.plugin.show.settings.ProjectSettingsConfigurable"
id="io.github.linwancen.plugin.show.settings.ProjectSettingsConfigurable"
displayName="// Show Comment Project"/>
<projectService serviceImplementation="io.github.linwancen.plugin.show.settings.ProjectSettingsState"/>
</extensions>
<actions>
<action
id="io.github.linwancen.plugin.show.ext.conf.ReLoadExtDocAction"
class="io.github.linwancen.plugin.show.ext.conf.ReloadExtDocAction"
text="🔄 // Reload External Comment">
<add-to-group group-id="ToolsMenu"/>
</action>
<action
id="io.github.linwancen.plugin.show.ext.conf.ResetExtDocAction"
class="io.github.linwancen.plugin.show.ext.conf.ResetExtDocAction"
text="🆑 // Clear External Comment">
<add-to-group group-id="ToolsMenu"/>
</action>
<action
id="io.github.linwancen.plugin.show.LineEndCopy"
class="io.github.linwancen.plugin.show.LineEndCopy"
text="// Copy With Line Comment">
<add-to-group group-id="EditorPopupMenu" anchor="after"
relative-to-action="CopyReference"/>
</action>
<action
id="io.github.linwancen.plugin.show.CopyReferenceSimple"
class="io.github.linwancen.plugin.show.CopyReferenceSimple"
text="Copy ClassName.MethodName">
<add-to-group group-id="EditorPopupMenu" anchor="after"
relative-to-action="CopyReference"/>
</action>
<action
id="io.github.linwancen.plugin.show.LineEndAdd"
class="io.github.linwancen.plugin.show.LineEndAdd"
text="// Add Line Comment">
<add-to-group group-id="ProjectViewPopupMenu" anchor="last"/>
</action>
</actions>
</idea-plugin>

View File

@@ -1,12 +0,0 @@
<svg width="50" height="52" xmlns="http://www.w3.org/2000/svg"
xml:space="preserve" overflow="hidden"><defs><clipPath id="clip0"><rect x="171" y="28" width="50" height="52"/></clipPath></defs>
<g clip-path="url(#clip0)" transform="translate(-171 -28)">
<text fill="#629755"
font-family="Microsoft YaHei,Microsoft YaHei_MSFontService,Arial"
font-weight="400"
font-size="24"
transform="translate(185.72 59)">/
<tspan font-size="24" x="10.3333" y="0">/</tspan>
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 540 B

View File

@@ -1,5 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<editor.linePainter implementation="io.github.linwancen.plugin.show.lang.PythonLangDoc"/>
</extensions>
</idea-plugin>

View File

@@ -1,5 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="com.intellij">
<editor.linePainter implementation="io.github.linwancen.plugin.show.lang.SqlLangDoc"/>
</extensions>
</idea-plugin>

View File

@@ -1,254 +0,0 @@
<templateSet group="show-comment-doc">
<template name="doc" value="/** $SELECTION$ */" description="/** one line */" toReformat="false" toShortenFQNames="true">
<context>
<option name="COMPLETION" value="false" />
<option name="ECMAScript6" value="true" />
<option name="ES6_CLASS" value="false" />
<option name="ES6_EXPRESSION" value="false" />
<option name="ES6_STATEMENT" value="false" />
<option name="GROOVY" value="true" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="JAVA_CODE" value="true" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_CONSUMER" value="false" />
<option name="JAVA_ELSE_PLACE" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_SCRIPT" value="true" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="JSX_HTML" value="false" />
<option name="JS_CLASS" value="false" />
<option name="JS_DOT_PROPERTY_ACCESS" value="false" />
<option name="JS_EXPRESSION" value="false" />
<option name="JS_STATEMENT" value="false" />
<option name="KOTLIN" value="true" />
<option name="KOTLIN_CLASS" value="false" />
<option name="KOTLIN_COMMENT" value="false" />
<option name="KOTLIN_EXPRESSION" value="false" />
<option name="KOTLIN_STATEMENT" value="false" />
<option name="TS_CLASS" value="false" />
<option name="TS_EXPRESSION" value="false" />
<option name="TS_STATEMENT" value="false" />
<option name="TypeScript" value="true" />
</context>
</template>
<template name="docc" value="/**&#10; * $SELECTION$&#10; */" description="/** multi line */" toReformat="false" toShortenFQNames="true">
<context>
<option name="COMPLETION" value="false" />
<option name="ECMAScript6" value="true" />
<option name="ES6_CLASS" value="false" />
<option name="ES6_EXPRESSION" value="false" />
<option name="ES6_STATEMENT" value="false" />
<option name="GROOVY" value="true" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="JAVA_CODE" value="true" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_CONSUMER" value="false" />
<option name="JAVA_ELSE_PLACE" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_SCRIPT" value="true" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="JSX_HTML" value="false" />
<option name="JS_CLASS" value="false" />
<option name="JS_DOT_PROPERTY_ACCESS" value="false" />
<option name="JS_EXPRESSION" value="false" />
<option name="JS_STATEMENT" value="false" />
<option name="KOTLIN" value="true" />
<option name="KOTLIN_CLASS" value="false" />
<option name="KOTLIN_COMMENT" value="false" />
<option name="KOTLIN_EXPRESSION" value="false" />
<option name="KOTLIN_STATEMENT" value="false" />
<option name="TS_CLASS" value="false" />
<option name="TS_EXPRESSION" value="false" />
<option name="TS_STATEMENT" value="false" />
<option name="TypeScript" value="true" />
</context>
</template>
<template name="docb" value="/**&#10; * $SELECTION$&#10; * &lt;br&gt;&#10; */" description="/** &lt;br&gt; */" toReformat="false" toShortenFQNames="true">
<context>
<option name="COMPLETION" value="false" />
<option name="ECMAScript6" value="true" />
<option name="ES6_CLASS" value="false" />
<option name="ES6_EXPRESSION" value="false" />
<option name="ES6_STATEMENT" value="false" />
<option name="GROOVY" value="true" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="JAVA_CODE" value="true" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_CONSUMER" value="false" />
<option name="JAVA_ELSE_PLACE" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_SCRIPT" value="true" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="JSX_HTML" value="false" />
<option name="JS_CLASS" value="false" />
<option name="JS_DOT_PROPERTY_ACCESS" value="false" />
<option name="JS_EXPRESSION" value="false" />
<option name="JS_STATEMENT" value="false" />
<option name="KOTLIN" value="true" />
<option name="KOTLIN_CLASS" value="false" />
<option name="KOTLIN_COMMENT" value="false" />
<option name="KOTLIN_EXPRESSION" value="false" />
<option name="KOTLIN_STATEMENT" value="false" />
<option name="TS_CLASS" value="false" />
<option name="TS_EXPRESSION" value="false" />
<option name="TS_STATEMENT" value="false" />
<option name="TypeScript" value="true" />
</context>
</template>
<template name="docl" value="/**&#10; * $SELECTION$&#10; * &lt;ul&gt;&#10; * &lt;li&gt;&#10; * &lt;/ul&gt;&#10; */" description="/** &lt;li&gt; */" toReformat="false" toShortenFQNames="true">
<context>
<option name="COMPLETION" value="false" />
<option name="ECMAScript6" value="true" />
<option name="ES6_CLASS" value="false" />
<option name="ES6_EXPRESSION" value="false" />
<option name="ES6_STATEMENT" value="false" />
<option name="GROOVY" value="true" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="JAVA_CODE" value="true" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_CONSUMER" value="false" />
<option name="JAVA_ELSE_PLACE" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_SCRIPT" value="true" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="JSX_HTML" value="false" />
<option name="JS_CLASS" value="false" />
<option name="JS_DOT_PROPERTY_ACCESS" value="false" />
<option name="JS_EXPRESSION" value="false" />
<option name="JS_STATEMENT" value="false" />
<option name="KOTLIN" value="true" />
<option name="KOTLIN_CLASS" value="false" />
<option name="KOTLIN_COMMENT" value="false" />
<option name="KOTLIN_EXPRESSION" value="false" />
<option name="KOTLIN_STATEMENT" value="false" />
<option name="TS_CLASS" value="false" />
<option name="TS_EXPRESSION" value="false" />
<option name="TS_STATEMENT" value="false" />
<option name="TypeScript" value="true" />
</context>
</template>
<template name="la" value="// language=&quot;$lang$&quot;" description="// language=&quot;&quot;" toReformat="true" toShortenFQNames="true">
<variable name="lang" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="COMPLETION" value="false" />
<option name="ECMAScript6" value="true" />
<option name="ES6_CLASS" value="false" />
<option name="ES6_EXPRESSION" value="false" />
<option name="GROOVY" value="true" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="JAVA_CODE" value="true" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_CONSUMER" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_SCRIPT" value="true" />
<option name="JAVA_STRING" value="false" />
<option name="JSX_HTML" value="false" />
<option name="JS_CLASS" value="false" />
<option name="JS_DOT_PROPERTY_ACCESS" value="false" />
<option name="JS_EXPRESSION" value="false" />
<option name="KOTLIN" value="true" />
<option name="KOTLIN_CLASS" value="false" />
<option name="KOTLIN_COMMENT" value="false" />
<option name="KOTLIN_EXPRESSION" value="false" />
<option name="KOTLIN_TOPLEVEL" value="false" />
<option name="TS_CLASS" value="false" />
<option name="TS_EXPRESSION" value="false" />
<option name="TypeScript" value="true" />
</context>
</template>
<template name="reg" value="// region $comment$" description="// region $comment$" toReformat="true" toShortenFQNames="true">
<variable name="comment" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="COMPLETION" value="false" />
<option name="ECMAScript6" value="true" />
<option name="ES6_CLASS" value="false" />
<option name="ES6_EXPRESSION" value="false" />
<option name="GROOVY" value="true" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="JAVA_CODE" value="true" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_CONSUMER" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_SCRIPT" value="true" />
<option name="JAVA_STRING" value="false" />
<option name="JSX_HTML" value="false" />
<option name="JS_CLASS" value="false" />
<option name="JS_DOT_PROPERTY_ACCESS" value="false" />
<option name="JS_EXPRESSION" value="false" />
<option name="KOTLIN" value="true" />
<option name="KOTLIN_CLASS" value="false" />
<option name="KOTLIN_COMMENT" value="false" />
<option name="KOTLIN_EXPRESSION" value="false" />
<option name="KOTLIN_TOPLEVEL" value="false" />
<option name="TS_CLASS" value="false" />
<option name="TS_EXPRESSION" value="false" />
<option name="TypeScript" value="true" />
</context>
</template>
<template name="end" value="// endregion $comment$" description="// endregion $comment$" toReformat="true" toShortenFQNames="true">
<variable name="comment" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="COMPLETION" value="false" />
<option name="ECMAScript6" value="true" />
<option name="ES6_CLASS" value="false" />
<option name="ES6_EXPRESSION" value="false" />
<option name="GROOVY" value="true" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="JAVA_CODE" value="true" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_CONSUMER" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_SCRIPT" value="true" />
<option name="JAVA_STRING" value="false" />
<option name="JSX_HTML" value="false" />
<option name="JS_CLASS" value="false" />
<option name="JS_DOT_PROPERTY_ACCESS" value="false" />
<option name="JS_EXPRESSION" value="false" />
<option name="KOTLIN" value="true" />
<option name="KOTLIN_CLASS" value="false" />
<option name="KOTLIN_COMMENT" value="false" />
<option name="KOTLIN_EXPRESSION" value="false" />
<option name="KOTLIN_TOPLEVEL" value="false" />
<option name="TS_CLASS" value="false" />
<option name="TS_EXPRESSION" value="false" />
<option name="TypeScript" value="true" />
</context>
</template>
<template name="hr" value="/* ******************* $text$ ******************* */" description="/* ******************* $comm$ ******************* */ 20*" toReformat="false" toShortenFQNames="true">
<variable name="text" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="COMPLETION" value="false" />
<option name="ECMAScript6" value="true" />
<option name="ES6_CLASS" value="false" />
<option name="ES6_EXPRESSION" value="false" />
<option name="GROOVY" value="true" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="JAVA_CODE" value="true" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_CONSUMER" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_SCRIPT" value="true" />
<option name="JAVA_STRING" value="false" />
<option name="JSX_HTML" value="false" />
<option name="JS_CLASS" value="false" />
<option name="JS_DOT_PROPERTY_ACCESS" value="false" />
<option name="JS_EXPRESSION" value="false" />
<option name="KOTLIN" value="true" />
<option name="KOTLIN_CLASS" value="false" />
<option name="KOTLIN_COMMENT" value="false" />
<option name="KOTLIN_EXPRESSION" value="false" />
<option name="KOTLIN_TOPLEVEL" value="false" />
<option name="TS_CLASS" value="false" />
<option name="TS_EXPRESSION" value="false" />
<option name="TypeScript" value="true" />
</context>
</template>
</templateSet>

View File

@@ -1,12 +0,0 @@
<templateSet group="show-comment-xml">
<template name="doc" value=" &lt;!-- $SELECTION$ --&gt;" description="&lt;!-- --&gt;" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML" value="true" />
<option name="HTML_TEXT" value="false" />
<option name="JSP" value="true" />
<option name="MAVEN" value="true" />
<option name="XML" value="true" />
<option name="XSL_TEXT" value="false" />
</context>
</template>
</templateSet>

View File

@@ -7,7 +7,6 @@ import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -22,7 +21,7 @@ public class CopyReferenceSimple extends CopyReferenceAction {
super.update(e);
String tip = IdeBundle.message("copy.reference");
if (tip != null && tip.replace("\u001B", "").equals(e.getPresentation().getText())) {
e.getPresentation().setText("Copy Class.Method/File:Line");
e.getPresentation().setText("Copy Class.Method / File:Line");
}
}
@@ -30,7 +29,9 @@ public class CopyReferenceSimple extends CopyReferenceAction {
@Nullable
@Override
protected String getQualifiedName(@NotNull Editor editor, List<PsiElement> elements) {
protected String getQualifiedName(@NotNull Editor editor, List elements) {
// because 2nd param is List<PsiElement> in 2020.1 and List<? extends PsiElement> in new version
//noinspection unchecked
String qualifiedName = super.getQualifiedName(editor, elements);
if (qualifiedName == null) {
@NotNull Document document = editor.getDocument();

View File

@@ -2,7 +2,6 @@ package io.github.linwancen.plugin.show.lang;
import com.intellij.database.psi.DbElement;
import com.intellij.psi.PsiElement;
import com.intellij.sql.SqlDocumentationProvider;
import com.intellij.sql.psi.SqlLanguage;
import com.intellij.sql.psi.SqlReferenceExpression;
import com.intellij.util.containers.JBIterable;
@@ -13,6 +12,8 @@ import io.github.linwancen.plugin.show.bean.LineInfo;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.lang.reflect.Method;
public class SqlLangDoc extends BaseLangDoc {
static {
@@ -34,8 +35,22 @@ public class SqlLangDoc extends BaseLangDoc {
protected @Nullable <T extends SettingsInfo> String refElementDoc(@NotNull T lineInfo,
@NotNull PsiElement ref) {
JBIterable<DbElement> relatedDbElements;
Class<?> clazz;
try {
relatedDbElements = SqlDocumentationProvider.findRelatedDbElements(ref, false);
// new version new Class
clazz = Class.forName("com.intellij.sql.SqlNavigationUtils");
} catch (Throwable e) {
try {
// old version
clazz = Class.forName("com.intellij.sql.SqlDocumentationProvider");
} catch (Throwable e2) {
return null;
}
}
try {
Method method = clazz.getMethod("findRelatedDbElements", PsiElement.class, boolean.class);
//noinspection unchecked
relatedDbElements = (JBIterable<DbElement>) method.invoke(null, ref, false);
} catch (Throwable e) {
return null;
}

View File

@@ -117,7 +117,7 @@ Show doc comment at the Project view Tree, line End, json etc.
<action
id="io.github.linwancen.plugin.show.CopyReferenceSimple"
class="io.github.linwancen.plugin.show.CopyReferenceSimple"
text="Copy Class.Method/File:Line">
text="Copy Class.Method / File:Line">
<add-to-group group-id="EditorPopupMenu" anchor="after"
relative-to-action="CopyReference"/>
</action>