mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
clickable links in tooltips
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.codeInsight.daemon.impl;
|
||||
|
||||
import com.intellij.codeInsight.highlighting.TooltipLinkHandler;
|
||||
import com.intellij.codeInsight.navigation.NavigationUtil;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.JavaPsiFacade;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Dmitry Avdeev
|
||||
*/
|
||||
public class JavaClassTooltipLinkHandler extends TooltipLinkHandler {
|
||||
|
||||
@Override
|
||||
public boolean handleLink(@NotNull String refSuffix, @NotNull Editor editor) {
|
||||
Project project = editor.getProject();
|
||||
if (project == null) return false;
|
||||
PsiElement aClass = JavaPsiFacade.getInstance(project).findClass(refSuffix, GlobalSearchScope.allScope(project));
|
||||
if (aClass == null) return false;
|
||||
NavigationUtil.activateFileWithPsiElement(aClass);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -181,7 +181,7 @@ public class MarkerType {
|
||||
Arrays.sort(overridings, comparator);
|
||||
|
||||
String start = isAbstract ? DaemonBundle.message("method.is.implemented.header") : DaemonBundle.message("method.is.overriden.header");
|
||||
@NonNls String pattern = " {1}";
|
||||
@NonNls String pattern = " <a href=\"#javaClass/{1}\">{1}</a>";
|
||||
return GutterIconTooltipHelper.composeText(overridings, start, pattern);
|
||||
}
|
||||
|
||||
@@ -273,7 +273,7 @@ public class MarkerType {
|
||||
String start = aClass.isInterface()
|
||||
? DaemonBundle.message("interface.is.implemented.by.header")
|
||||
: DaemonBundle.message("class.is.subclassed.by.header");
|
||||
@NonNls String pattern = " {0}";
|
||||
@NonNls String pattern = " <a href=\"#javaClass/{0}\">{0}</a>";
|
||||
return GutterIconTooltipHelper.composeText(subclasses, start, pattern);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ method.is.overridden.too.many=Is overridden in subclasses
|
||||
interface.is.implemented.too.many=Has implementations
|
||||
class.is.subclassed.too.many=Has subclasses
|
||||
|
||||
method.implements=Implements method in ''{1}''
|
||||
method.implements.in=Implements method ''{0}'' in ''{1}''
|
||||
method.implements=Implements method in <a href="#javaClass/{1}">{1}</a>
|
||||
method.implements.in=Implements method ''{0}'' in <a href="#javaClass/{1}">{1}</a>
|
||||
|
||||
method.overrides=Overrides method in ''{1}''
|
||||
method.overrides.in=Overrides method ''{0}'' in ''{1}''
|
||||
method.overrides=Overrides method in <a href="#javaClass/{1}">{1}</a>
|
||||
method.overrides.in=Overrides method ''{0}'' in <a href="#javaClass/{1}">{1}</a>
|
||||
|
||||
analysis.hasnot.been.run=No analysis has been performed
|
||||
|
||||
|
||||
@@ -1040,6 +1040,7 @@
|
||||
<codeInsight.gotoSuper language="JAVA" implementationClass="com.intellij.codeInsight.navigation.JavaGotoSuperHandler"/>
|
||||
<codeInsight.gotoSuper language="SPI" implementationClass="com.intellij.spi.SPIGotoSuperHandler"/>
|
||||
<codeInsight.lineMarkerProvider language="JAVA" implementationClass="com.intellij.codeInsight.daemon.impl.JavaLineMarkerProvider"/>
|
||||
<codeInsight.linkHandler prefix="#javaClass/" handlerClass="com.intellij.codeInsight.daemon.impl.JavaClassTooltipLinkHandler"/>
|
||||
<codeInsight.lineMarkerProvider language="JAVA" implementationClass="com.intellij.codeInsight.daemon.impl.IconLineMarkerProvider"/>
|
||||
<codeInsight.lineMarkerProvider language="JAVA" implementationClass="com.intellij.codeInsight.daemon.impl.RecursiveCallLineMarkerProvider"/>
|
||||
<colorProvider implementation="com.intellij.codeInsight.daemon.impl.JavaColorProvider" />
|
||||
|
||||
Reference in New Issue
Block a user