mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fix quick navigation info for LazyValueResourceElementWrapper
This commit is contained in:
@@ -216,7 +216,9 @@
|
||||
serviceImplementation="org.jetbrains.android.exportSignedPackage.GenerateSignedApkSettings"/>
|
||||
<compilerSettingsFactory implementation="org.jetbrains.android.compiler.AndroidDexCompilerSettingsFactory"/>
|
||||
<problemFileHighlightFilter implementation="org.jetbrains.android.AndroidProblemFileHighlightingFilter"/>
|
||||
|
||||
<lang.documentationProvider language="JAVA" implementationClass="org.jetbrains.android.AndroidDocumentationProvider" order="first"/>
|
||||
<lang.documentationProvider language="XML" implementationClass="org.jetbrains.android.dom.AndroidXmlDocumentationProvider" order="first"/>
|
||||
|
||||
<sdkType implementation="org.jetbrains.android.sdk.AndroidSdkType"/>
|
||||
<gotoDeclarationHandler implementation="org.jetbrains.android.AndroidGotoDeclarationHandler"/>
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package org.jetbrains.android.dom;
|
||||
|
||||
import com.intellij.lang.documentation.DocumentationProvider;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import org.jetbrains.android.dom.wrappers.LazyValueResourceElementWrapper;
|
||||
import org.jetbrains.android.resourceManagers.ValueResourceInfo;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Eugene.Kudelevsky
|
||||
*/
|
||||
public class AndroidXmlDocumentationProvider implements DocumentationProvider {
|
||||
@Override
|
||||
public String getQuickNavigateInfo(PsiElement element, PsiElement originalElement) {
|
||||
if (element instanceof LazyValueResourceElementWrapper) {
|
||||
final ValueResourceInfo info = ((LazyValueResourceElementWrapper)element).getResourceInfo();
|
||||
return "value resource '" + info.getName() + "' [" + info.getContainingFile().getName() + "]";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getUrlFor(PsiElement element, PsiElement originalElement) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generateDoc(PsiElement element, @Nullable PsiElement originalElement) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiElement getDocumentationElementForLookupItem(PsiManager psiManager, Object object, PsiElement element) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiElement getDocumentationElementForLink(PsiManager psiManager, String link, PsiElement context) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
<resources>
|
||||
<string name="myString">Hello</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,3 @@
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:text="@string/myStri<caret>ng"/>
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,21 @@
|
||||
package org.jetbrains.android;
|
||||
|
||||
import com.intellij.codeInsight.navigation.CtrlMouseHandler;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiReference;
|
||||
|
||||
/**
|
||||
* @author Eugene.Kudelevsky
|
||||
*/
|
||||
public class AndroidDocumentationTest extends AndroidTestCase {
|
||||
private static final String BASE_PATH = "documentation/";
|
||||
|
||||
public void testValueResourceReferenceQuickDoc() {
|
||||
myFixture.copyFileToProject(BASE_PATH + "strings.xml", "res/values/strings.xml");
|
||||
final VirtualFile f = myFixture.copyFileToProject(BASE_PATH + getTestName(true) + ".xml", "res/layout/test.xml");
|
||||
myFixture.configureFromExistingVirtualFile(f);
|
||||
final PsiReference ref = myFixture.getFile().findReferenceAt(myFixture.getEditor().getCaretModel().getOffset());
|
||||
assert ref != null;
|
||||
assertEquals("value resource 'myString' [strings.xml]", CtrlMouseHandler.getInfo(ref.resolve(), ref.getElement()));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user