@Override public boolean autoImportReferenceAt(@NotNull Editor editor, @NotNull PsiFile file, int offset) { if (!file.getViewProvider().getLanguages().contains(GoLanguage.INSTANCE)) { return false; } PsiReference reference = file.findReferenceAt(offset); if (reference != null) { return new GoImportPackageQuickFix(reference).doAutoImportOrShowHint(editor, false); } return false; } }
@NotNull private PsiReference findReference(@NotNull PsiFile file, int offset) { if (myReference != null) { fail("only one reference should be declared in a test case, see file: " + file.getName()); } PsiReference result = file.findReferenceAt(offset); if (result == null) { fail("no reference was found at mark in file: " + file.getName() + ", offset: " + offset); } return result; } }
private static void autoImport(@NotNull InsertionContext context, @NotNull GoNamedElement element) { PsiFile file = context.getFile(); boolean vendoringEnabled = GoVendoringUtil.isVendoringEnabled(ModuleUtilCore.findModuleForPsiElement(file)); String importPath = element.getContainingFile().getImportPath(vendoringEnabled); if (StringUtil.isEmpty(importPath)) return; PsiDocumentManager.getInstance(context.getProject()).commitDocument(context.getEditor().getDocument()); PsiReference reference = file.findReferenceAt(context.getStartOffset()); if (reference != null) { PsiElement referenceElement = reference.getElement(); GoImportPackageQuickFix fix = new GoImportPackageQuickFix(referenceElement, importPath); fix.invoke(context.getProject(), file, context.getEditor(), referenceElement, referenceElement); } } }
public void testSdkTestDataDirectory() { myFixture.configureByText("a.go", "package a; import `doc/testdata`; func _() { println(pkg.ExportedConst<caret>ant) } "); PsiReference reference = myFixture.getFile().findReferenceAt(myFixture.getCaretOffset()); PsiElement resolve = reference != null ? reference.resolve() : null; assertNotNull(resolve); assertEquals("pkg.go", resolve.getContainingFile().getName()); assertEmpty(myFixture.findUsages(resolve)); }
@SuppressWarnings("ConstantConditions") public void testDoNotReportNonLastMultiResolvedImport() { myFixture.addFileToProject("root1/src/to_import/unique/foo.go", "package unique; func Foo() {}"); myFixture.addFileToProject("root1/src/to_import/shared/a.go", "package shared"); myFixture.addFileToProject("root2/src/to_import/shared/a.go", "package shared"); GoModuleLibrariesService.getInstance(myFixture.getModule()).setLibraryRootUrls(myFixture.findFileInTempDir("root1").getUrl(), myFixture.findFileInTempDir("root2").getUrl()); doTest(); PsiReference reference = myFixture.getFile().findReferenceAt(myFixture.getCaretOffset()); PsiElement resolve = reference.resolve(); assertInstanceOf(resolve, PsiDirectory.class); assertTrue(((PsiDirectory)resolve).getVirtualFile().getPath().endsWith("root1/src/to_import/shared")); GoModuleLibrariesService.getInstance(myFixture.getModule()).setLibraryRootUrls(myFixture.findFileInTempDir("root2").getUrl(), myFixture.findFileInTempDir("root1").getUrl()); reference = myFixture.getFile().findReferenceAt(myFixture.getCaretOffset()); resolve = reference.resolve(); assertInstanceOf(resolve, PsiDirectory.class); assertTrue(((PsiDirectory)resolve).getVirtualFile().getPath().endsWith("root2/src/to_import/shared")); }
public void testTargetValueMappingReferenceIsEmpty() { String source = String.format( TARGET_VALUE_MAPPING, "" ); myFixture.configureByText( JavaFileType.INSTANCE, source ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testSourceValueMappingReferenceIsNotEnumField() { String source = String.format( SOURCE_VALUE_MAPPING, "DUMMY" ); myFixture.configureByText( JavaFileType.INSTANCE, source ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testTargetValueMappingReferenceIsNotEnumField() { String source = String.format( TARGET_VALUE_MAPPING, "DUMMY" ); myFixture.configureByText( JavaFileType.INSTANCE, source ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testTargetValueMappingNoReturnType() { String source = String.format( TARGET_VALUE_MAPPING, "STANDARD" ); source = source.replace( "ExternalRoofType map", "void map" ); myFixture.configureByText( JavaFileType.INSTANCE, source ); complete(); assertThat( myItems ).isEmpty(); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testTargetValueMappingReturnTypeIsNotEnum() { String source = String.format( TARGET_VALUE_MAPPING, "STANDARD" ); source = source.replace( "ExternalRoofType map", "Integer map" ); myFixture.configureByText( JavaFileType.INSTANCE, source ); complete(); assertThat( myItems ).isEmpty(); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testMethodIsNotValueMapping() { String source = String.format( TARGET_VALUE_MAPPING, "STANDARD" ); source = source.replace( "RoofType type", "" ); myFixture.configureByText( JavaFileType.INSTANCE, source ); complete(); assertThat( myItems ).isEmpty(); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testCarMapperReferenceEmptySourceProperty() { myFixture.configureByFile( "CarMapperReferenceEmptySourceProperty.java" ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testCarMapperReferenceUnknownSourceProperty() { myFixture.configureByFile( "CarMapperReferenceUnknownSourceProperty.java" ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testCarMapperReferenceEmptyTargetProperty() { myFixture.configureByFile( "CarMapperReferenceEmptyTargetProperty.java" ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testCarMapperReferenceUnknownTargetProperty() { myFixture.configureByFile( "CarMapperReferenceUnknownTargetProperty.java" ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testReferenceCarMapperNoSourceClass() { myFixture.configureByFile( "CarMapperNoSourceClass.java" ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testReferenceCarMapperNoTargetClass() { myFixture.configureByFile( "CarMapperNoTargetClass.java" ); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
public void testUnknownNestedTargetProperty() { configureByFile( "DeepNestedUnknownTargetProperty.java" ); assertThat( myItems ).isEmpty(); PsiReference reference = myFixture.getFile().findReferenceAt( myFixture.getCaretOffset() ); assertThat( reference ).isNotNull(); assertThat( reference.resolve() ).isNull(); }
@Test public void testFunctionResolve() throws Exception { String content = "function myFunc {\n echo hi\n}\nmyFunc"; PsiFile file = createTempPsiFile(content); PsiReference reference = file.findReferenceAt(content.indexOf("\nmyFunc") + 2); Assert.assertNotNull(reference); PsiElement target = reference.resolve(); Assert.assertNotNull(target); Assert.assertTrue(target instanceof BashFunctionDef); Assert.assertEquals("myFunc", ((BashFunctionDef) target).getName()); }
@Override public void run() { PsiReference psiReference = myFixture.getFile().findReferenceAt(myFixture.getEditor().getCaretModel().getOffset()); Assert.assertTrue(psiReference.resolve() instanceof BashVarDef); myFixture.renameElementAtCaret("a_renamed"); } }, "source.bash");