本文整理汇总了Java中com.intellij.codeInsight.navigation.actions.GotoDeclarationAction类的典型用法代码示例。如果您正苦于以下问题:Java GotoDeclarationAction类的具体用法?Java GotoDeclarationAction怎么用?Java GotoDeclarationAction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
GotoDeclarationAction类属于com.intellij.codeInsight.navigation.actions包,在下文中一共展示了GotoDeclarationAction类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: chooseAmbiguousTargetAndPerform
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
static void chooseAmbiguousTargetAndPerform(@NotNull final Project project,
final Editor editor,
@NotNull PsiElementProcessor<PsiElement> processor) {
if (editor == null) {
Messages.showMessageDialog(project, FindBundle.message("find.no.usages.at.cursor.error"), CommonBundle.getErrorTitle(),
Messages.getErrorIcon());
}
else {
int offset = editor.getCaretModel().getOffset();
boolean chosen = GotoDeclarationAction.chooseAmbiguousTarget(editor, offset, processor, FindBundle.message("find.usages.ambiguous.title"), null);
if (!chosen) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
if (editor.isDisposed() || !editor.getComponent().isShowing()) return;
HintManager.getInstance().showErrorHint(editor, FindBundle.message("find.no.usages.at.cursor.error"));
}
}, project.getDisposed());
}
}
}
示例2: testNavigationToIncluded
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
public void testNavigationToIncluded() throws Throwable {
final MyElement rootElement = createDomFile("a.xml", "<root xmlns:xi=\"http://www.w3.org/2001/XInclude\">" +
"<xi:include href=\"b.xml\" xpointer=\"xpointer(/xxx/*)\"/>" +
"<child ref=\"b\"/>" +
"</root>");
final XmlFile includedFile = (XmlFile) createFile("b.xml", "<xxx><child xxx=\"b\"/></xxx>");
final List<Child> children = rootElement.getChildren();
final MyElement domTarget = children.get(0);
final GenericAttributeValue<Child> ref = children.get(1).getRef();
final MyElement value = ref.getValue();
assertEquals(domTarget, value);
myFixture.configureFromTempProjectFile("a.xml");
final int offset = ref.getXmlAttributeValue().getTextRange().getStartOffset() + 1;
myFixture.getEditor().getCaretModel().moveToOffset(offset);
final PsiElement target = GotoDeclarationAction.findTargetElement(getProject(), myFixture.getEditor(), offset);
PsiElement element = ((DomTarget)((PomTargetPsiElement)target).getTarget()).getNavigationElement();
// assertSame(PomService.convertToPsi(DomTarget.getTarget(domTarget)), target);
assertSame(includedFile.getDocument().getRootTag().getSubTags()[0].getAttributes()[0].getValueElement(), element);
}
示例3: doJavaFileNavigationTest
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
private void doJavaFileNavigationTest(String srcPath, String destPath, int expectedTargets, boolean expectedEnabled,
boolean testGotoDeclaration, Class<? extends PsiElement> targetElementClass) throws IOException {
VirtualFile file = myFixture.copyFileToProject(BASE_PATH + srcPath, destPath);
myFixture.configureFromExistingVirtualFile(file);
// test Ctrl+B
if (testGotoDeclaration) {
PsiElement[] targets = GotoDeclarationAction.findAllTargetElements(getProject(), myFixture.getEditor(), myFixture.getCaretOffset());
assertNotNull(targets);
assertEquals(expectedTargets, targets.length);
for (PsiElement target : targets) {
assertInstanceOf(LazyValueResourceElementWrapper.computeLazyElement(target), targetElementClass);
}
}
}
示例4: testNavigationInPlatformXml1
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
public void testNavigationInPlatformXml1() throws Exception {
final VirtualFile file = LocalFileSystem.getInstance().findFileByPath(
getTestSdkPath() + "/platforms/" + getPlatformDir() + "/data/res/values/resources.xml");
myFixture.configureFromExistingVirtualFile(file);
myFixture.getEditor().getCaretModel().moveToLogicalPosition(new LogicalPosition(16, 43));
PsiElement[] targets =
GotoDeclarationAction.findAllTargetElements(myFixture.getProject(), myFixture.getEditor(), myFixture.getCaretOffset());
assertNotNull(targets);
assertEquals(1, targets.length);
final PsiElement targetElement = LazyValueResourceElementWrapper.computeLazyElement(targets[0]);
assertInstanceOf(targetElement, XmlAttributeValue.class);
final XmlAttributeValue targetAttrValue = (XmlAttributeValue)targetElement;
assertEquals("Theme", targetAttrValue.getValue());
assertEquals("name", ((XmlAttribute)targetAttrValue.getParent()).getName());
assertEquals("style", ((XmlTag)targetAttrValue.getParent().getParent()).getName());
assertEquals(file, targetElement.getContainingFile().getVirtualFile());
}
示例5: testNavigationInPlatformXml2
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
public void testNavigationInPlatformXml2() throws Exception {
final VirtualFile file = LocalFileSystem.getInstance().findFileByPath(
getTestSdkPath() + "/platforms/" + getPlatformDir() + "/data/res/values/resources.xml");
myFixture.configureFromExistingVirtualFile(file);
myFixture.getEditor().getCaretModel().moveToLogicalPosition(new LogicalPosition(19, 17));
PsiElement[] targets =
GotoDeclarationAction.findAllTargetElements(myFixture.getProject(), myFixture.getEditor(), myFixture.getCaretOffset());
assertNotNull(targets);
assertEquals(1, targets.length);
final PsiElement targetElement = LazyValueResourceElementWrapper.computeLazyElement(targets[0]);
assertInstanceOf(targetElement, XmlAttributeValue.class);
final XmlAttributeValue targetAttrValue = (XmlAttributeValue)targetElement;
assertEquals("Theme", targetAttrValue.getValue());
assertEquals("name", ((XmlAttribute)targetAttrValue.getParent()).getName());
assertEquals("style", ((XmlTag)targetAttrValue.getParent().getParent()).getName());
assertEquals(file, targetElement.getContainingFile().getVirtualFile());
}
示例6: testNavigationInPlatformXml3
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
public void testNavigationInPlatformXml3() throws Exception {
final VirtualFile file = LocalFileSystem.getInstance().findFileByPath(
getTestSdkPath() + "/platforms/" + getPlatformDir() + "/data/res/values/resources.xml");
myFixture.configureFromExistingVirtualFile(file);
myFixture.getEditor().getCaretModel().moveToLogicalPosition(new LogicalPosition(5, 44));
PsiElement[] targets =
GotoDeclarationAction.findAllTargetElements(myFixture.getProject(), myFixture.getEditor(), myFixture.getCaretOffset());
assertNotNull(targets);
assertEquals(1, targets.length);
final PsiElement targetElement = LazyValueResourceElementWrapper.computeLazyElement(targets[0]);
assertInstanceOf(targetElement, XmlAttributeValue.class);
final XmlAttributeValue targetAttrValue = (XmlAttributeValue)targetElement;
assertEquals("my_white", targetAttrValue.getValue());
assertEquals("name", ((XmlAttribute)targetAttrValue.getParent()).getName());
assertEquals("color", ((XmlTag)targetAttrValue.getParent().getParent()).getName());
assertEquals(file, targetElement.getContainingFile().getVirtualFile());
}
示例7: testNavigationToSources
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
public void testNavigationToSources() throws Exception {
final String sdkSourcesPath = configureAndroidSdkWithSources(SDK_SOURCES_PATH_PREFIX + "2");
final VirtualFile f = myFixture.copyFileToProject(BASE_PATH + "MyActivity2.java", MODULE_DIR + "/src/p1/p2/MyActivity.java");
myFixture.configureFromExistingVirtualFile(f);
PsiElement element = GotoDeclarationAction.findTargetElement(
myFixture.getProject(), myFixture.getEditor(),
myFixture.getEditor().getCaretModel().getOffset());
assertNotNull(element);
element = element.getNavigationElement();
assertNotNull(element);
final PsiFile activityPsiFile = element.getContainingFile();
assertNotNull(activityPsiFile);
final VirtualFile activityVFile = activityPsiFile.getVirtualFile();
assertNotNull(activityVFile);
final String expectedActivityFilePath = FileUtil.toSystemIndependentName(sdkSourcesPath + "/android/app/Activity.java");
assertTrue("Expected: " + expectedActivityFilePath + "\nActual: " + activityVFile.getPath(),
FileUtil.pathsEqual(expectedActivityFilePath, activityVFile.getPath()));
}
示例8: doTestNavigationToResource
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
private void doTestNavigationToResource(LogicalPosition position, int expectedCount, Class<?> aClass) {
myFixture.allowTreeAccessForAllFiles();
final String sdkSourcesPath = configureMockSdk();
final VirtualFile file = LocalFileSystem.getInstance().findFileByPath(sdkSourcesPath + "/android/app/Activity.java");
myFixture.configureFromExistingVirtualFile(file);
myFixture.getEditor().getCaretModel().moveToLogicalPosition(position);
PsiElement[] elements = GotoDeclarationAction.findAllTargetElements(
myFixture.getProject(), myFixture.getEditor(),
myFixture.getEditor().getCaretModel().getOffset());
assertEquals(expectedCount, elements.length);
for (PsiElement element : elements) {
assertInstanceOf(LazyValueResourceElementWrapper.computeLazyElement(element), aClass);
}
}
示例9: testFindUsagesWorksFromNameString
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
@Test
public void testFindUsagesWorksFromNameString() {
BuildFile targetFile =
createBuildFile(
new WorkspacePath("java/com/google/foo/BUILD"),
"java_library(name = \"tar<caret>get\")");
BuildFile refFile =
createBuildFile(
new WorkspacePath("java/com/google/bar/BUILD"),
"java_library(name = \"ref\", exports = [\"//java/com/google/foo:target\"])");
testFixture.configureFromExistingVirtualFile(targetFile.getVirtualFile());
PsiElement targetElement =
GotoDeclarationAction.findElementToShowUsagesOf(
testFixture.getEditor(), testFixture.getEditor().getCaretModel().getOffset());
PsiReference[] references = FindUsages.findAllReferences(targetElement);
assertThat(references).hasLength(1);
PsiElement ref = references[0].getElement();
assertThat(ref).isInstanceOf(StringLiteral.class);
assertThat(ref.getContainingFile()).isEqualTo(refFile);
}
示例10: chooseAmbiguousTargetAndPerform
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
static void chooseAmbiguousTargetAndPerform(@NotNull final Project project, final Editor editor,
@NotNull PsiElementProcessor<PsiElement> processor) {
if (editor == null) {
Messages.showMessageDialog(project, FindBundle.message("find.no.usages.at.cursor.error"),
CommonBundle.getErrorTitle(), Messages.getErrorIcon());
} else {
int offset = editor.getCaretModel().getOffset();
boolean chosen = GotoDeclarationAction.chooseAmbiguousTarget(editor, offset, processor,
FindBundle.message("find.usages.ambiguous.title", "crap"), null);
if (!chosen) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
if (editor.isDisposed() || !editor.getComponent().isShowing()) return;
HintManager.getInstance()
.showErrorHint(editor, FindBundle.message("find.no.usages.at.cursor.error"));
}
}, project.getDisposed());
}
}
}
示例11: chooseAmbiguousTargetAndPerform
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
static void chooseAmbiguousTargetAndPerform(@Nonnull final Project project, final Editor editor, @Nonnull PsiElementProcessor<PsiElement> processor) {
if (editor == null) {
Messages.showMessageDialog(project, FindBundle.message("find.no.usages.at.cursor.error"), CommonBundle.getErrorTitle(), Messages.getErrorIcon());
}
else {
int offset = editor.getCaretModel().getOffset();
boolean chosen = GotoDeclarationAction.chooseAmbiguousTarget(editor, offset, processor, FindBundle.message("find.usages.ambiguous.title"), null);
if (!chosen) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
if (editor.isDisposed() || !editor.getComponent().isShowing()) return;
HintManager.getInstance().showErrorHint(editor, FindBundle.message("find.no.usages.at.cursor.error"));
}
}, project.getDisposed());
}
}
}
示例12: chooseAmbiguousTargetAndPerform
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
static void chooseAmbiguousTargetAndPerform(@NotNull final Project project,
final Editor editor,
@NotNull PsiElementProcessor<PsiElement> processor) {
if (editor == null) {
Messages.showMessageDialog(project, FindBundle.message("find.no.usages.at.cursor.error"),
CommonBundle.getErrorTitle(), Messages.getErrorIcon());
}
else {
int offset = editor.getCaretModel().getOffset();
boolean chosen = GotoDeclarationAction.chooseAmbiguousTarget(editor, offset, processor,
FindBundle.message("find.usages.ambiguous.title", "crap"), null);
if (!chosen) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
if (editor.isDisposed() || !editor.getComponent().isShowing()) return;
HintManager.getInstance().showErrorHint(editor, FindBundle.message("find.no.usages.at.cursor.error"));
}
}, project.getDisposed());
}
}
}
示例13: performAction
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
private static void performAction() {
PsiElement element = GotoDeclarationAction.findTargetElement(getProject(), getEditor(), getEditor().getCaretModel().getOffset());
assertEquals(getFile(), element.getContainingFile());
getEditor().getCaretModel().moveToOffset(element.getTextOffset());
getEditor().getScrollingModel().scrollToCaret(ScrollType.CENTER);
getEditor().getSelectionModel().removeSelection();
}
示例14: testMultipleConstructors
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
public void testMultipleConstructors() throws Exception {
String name = getTestName(false);
configureByFile("/codeInsight/gotoDeclaration/" + name + ".java");
final int offset = getEditor().getCaretModel().getOffset();
final PsiElement[] elements =
GotoDeclarationAction.findAllTargetElements(getProject(), getEditor(), offset);
assertEquals(Arrays.asList(elements).toString(), 0, elements.length);
final TargetElementUtil elementUtilBase = TargetElementUtil.getInstance();
final PsiReference reference = getFile().findReferenceAt(offset);
assertNotNull(reference);
final Collection<PsiElement> candidates = elementUtilBase.getTargetCandidates(reference);
assertEquals(candidates.toString(), 2, candidates.size());
}
示例15: testIDEA127145
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; //导入依赖的package包/类
public void testIDEA127145() {
PsiFile file = myFixture.addFileToProject("Program.java",
"import java.io.InputStream;\n" +
"import java.util.HashMap;\n" +
"import java.util.Map;\n" +
"\n" +
"class Program {\n" +
" private static InputStream getFile(String name, Map<String, Object> args) {\n" +
" return Program.class.getResourceAsStream(name);\n" +
" }\n" +
"\n" +
" public static void main(String[] args) {\n" +
" // Ctrl + B or Ctrl + Left Mouse Button work correctly for following string:\n" +
" final String name = \"file.sql\";\n" +
" // But it jumps only to folder in following case:\n" +
" final InputStream inputStream = getFile(\"dir/fil<caret>e.sql\", new HashMap<String, Object>());\n" +
" }\n" +
"}");
PsiFile fileSql = myFixture.addFileToProject("dir/file.sql", "select 1;");
myFixture.configureFromExistingVirtualFile(file.getVirtualFile());
Editor editor = myFixture.getEditor();
CodeFoldingManager.getInstance(getProject()).buildInitialFoldings(editor);
FoldingModelEx foldingModel = (FoldingModelEx)editor.getFoldingModel();
foldingModel.rebuild();
myFixture.doHighlighting();
PsiElement element = GotoDeclarationAction.findTargetElement(getProject(), editor, editor.getCaretModel().getOffset());
assertTrue("Should navigate to: file.sql instead of " + element, element != null && element.equals(fileSql));
}