@NotNull private ConfigurationContext createConfigurationContext() { PsiElement at = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); assertNotNull(at); return new ConfigurationContext(at); }
private void doTest(@NotNull String expressionText, @NotNull ReadWriteAccessDetector.Access expectedAccess) { myFixture.configureByText("a.go", "package main; func _() {\n" + expressionText + "\n}"); PsiElement element = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); GoReferenceExpression expression = PsiTreeUtil.getNonStrictParentOfType(element, GoReferenceExpression.class); assertNotNull(expression); assertEquals(expectedAccess, expression.getReadWriteAccess()); } }
@Override protected void doTest() { PsiFile file = myFixture.configureByText("a.go", "package main\n func foo(i interface{}, j interface{}){}\n" + vars + "\n func _(){\n fo<caret>o(" + left + ", " + right + ")\n}"); myFixture.checkHighlighting(); GoCallExpr call = PsiTreeUtil.getParentOfType(file.findElementAt(myFixture.getCaretOffset()), GoCallExpr.class); assert call != null; List<GoExpression> expressions = call.getArgumentList().getExpressionList(); assertTrue(left + " should " + (ok ? "" : "not ") + "be identical " + right, ok == GoExpressionUtil.identical(expressions.get(0), expressions.get(1))); } }
public void testPackage_test() { PsiFile file = myFixture.addFileToProject("import/path/package_test.go", "package ma<caret>in; import `gopkg.in/check.v1`"); myFixture.configureFromExistingVirtualFile(file.getVirtualFile()); doTestProducedConfigurations(myFixture.getFile().findElementAt(myFixture.getCaretOffset())); }
public void testGoIndexOrSliceExprGetIndices() { PsiFile file = myFixture.configureByText("a.go", "package main\n var a []int\n var b = a<caret>[1]"); GoIndexOrSliceExpr index = PsiTreeUtil.getParentOfType(file.findElementAt(myFixture.getCaretOffset()), GoIndexOrSliceExpr.class); assertNotNull(index); assertEquals("1", index.getIndices().first.getText()); }
public void testCallDefinitionClauseCallWhileImportModule() { myFixture.configureByFiles("import_module.ex", "imported.ex"); PsiElement elementAtCaret = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); assertNotNull(elementAtCaret); PsiElement maybeCall = elementAtCaret.getParent().getParent(); assertInstanceOf(maybeCall, Call.class); Call call = (Call) maybeCall; assertTrue(Import.is(call)); final ArrayList<Call> importedCallList = new ArrayList<>(); Import.callDefinitionClauseCallWhile(call, call1 -> { importedCallList.add(call1); return true; }); assertEquals(3, importedCallList.size()); }
protected void doTestProducedConfigurations() { VirtualFile file = myFixture.copyFileToProject(getTestName(true) + ".go", "import/path/" + getTestName(true) + ".go"); myFixture.configureFromExistingVirtualFile(file); doTestProducedConfigurations(myFixture.getFile().findElementAt(myFixture.getCaretOffset())); }
private boolean isLBraceTokenBrace() { int offset = myFixture.getCaretOffset(); Editor editor = myFixture.getEditor(); CharSequence text = editor.getDocument().getCharsSequence(); FileType fileType = ElixirFileType.INSTANCE; HighlighterIterator iterator = ((EditorEx) editor).getHighlighter().createIterator(offset); return BraceMatchingUtil.isLBraceToken(iterator, text, fileType); } }
public void testCallDefinitionClauseCallWhileImportModuleOnlyNameArity() { myFixture.configureByFiles("import_module_only_name_arity.ex", "imported.ex"); PsiElement elementAtCaret = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); assertNotNull(elementAtCaret); PsiElement maybeCall = elementAtCaret.getParent().getParent(); assertInstanceOf(maybeCall, Call.class); Call call = (Call) maybeCall; assertTrue(Import.is(call)); final ArrayList<Call> importedCallList = new ArrayList<>(); Import.callDefinitionClauseCallWhile(call, call1 -> { importedCallList.add(call1); return true; }); assertEquals(1, importedCallList.size()); Call importedCall = importedCallList.get(0); assertEquals(new NameArityRange("imported", new IntRange(0, 0)), nameArityRange(importedCall)); }
private LookupElement lookupElement(@NotNull String name) { myFixture.configureByFile("issue_457.ex"); PsiElement elementAtCaret = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); assertNotNull(elementAtCaret); PsiElement maybeDefElement = elementAtCaret.getParent().getParent(); assertInstanceOf(maybeDefElement, Call.class); Call maybeDefCall = (Call) maybeDefElement; assertTrue(org.elixir_lang.psi.CallDefinitionClause.is(maybeDefCall)); return org.elixir_lang.code_insight.lookup.element.CallDefinitionClause.createWithSmartPointer( name, maybeDefElement ); } }
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)); }
public void testFieldInInitializer() { myFixture.configureByText("a.go", "package main\n" + "type aStruct struct {\n" + "\taField string\n" + "}\n" + "func newStruct() aStruct {\n" + "\treturn aStruct{\n" + "\t\taFie<caret>ld: \"a value\",\n" + "\t}\n" + "}"); PsiElement element = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); GoFieldName goFieldName = PsiTreeUtil.getNonStrictParentOfType(element, GoFieldName.class); assertNotNull(goFieldName); //noinspection ConstantConditions assertEquals(Write, ReadWriteAccessDetector.findDetector(goFieldName.getReference().resolve()).getExpressionAccess(goFieldName)); }
@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 testSameRunFileConfigurationOnFile() { PsiFile file = myFixture.configureByText("a.go", "package main; <caret>\nfunc main() {}"); PsiElement at = file.findElementAt(myFixture.getCaretOffset()); assertNotNull(at); ConfigurationContext configurationContext = new ConfigurationContext(at); GoRunFileConfigurationProducer producer = new GoRunFileConfigurationProducer(); GoRunFileConfiguration runConfiguration = createFileConfiguration(file.getVirtualFile().getPath()); assertTrue(producer.isConfigurationFromContext(runConfiguration, configurationContext)); runConfiguration = createFileConfiguration(file.getVirtualFile().getPath() + "_vl"); assertFalse(producer.isConfigurationFromContext(runConfiguration, configurationContext)); }
public void testSameRunApplicationConfigurationOnFile() { PsiFile file = myFixture.configureByText("a.go", "package main; <caret>\nfunc main() {}"); PsiElement at = file.findElementAt(myFixture.getCaretOffset()); assertNotNull(at); ConfigurationContext configurationContext = new ConfigurationContext(at); GoRunFileConfigurationProducer producer = new GoRunFileConfigurationProducer(); GoRunFileConfiguration runConfiguration = createFileConfiguration(file.getVirtualFile().getPath()); assertTrue(producer.isConfigurationFromContext(runConfiguration, configurationContext)); runConfiguration = createFileConfiguration(file.getVirtualFile().getPath() + "_vl"); assertFalse(producer.isConfigurationFromContext(runConfiguration, configurationContext)); }
public void testCompletion() { myFixture.configureByFiles("completion.ex", "suffix.ex", "nested.ex"); myFixture.complete(CompletionType.BASIC, 1); List<String> strings = myFixture.getLookupElementStrings(); assertNull("Completion lookup shown", strings); PsiElement autoInsertedLeafElement = myFixture.getFile().findElementAt(myFixture.getCaretOffset() - 1); assertNotNull(autoInsertedLeafElement); assertInstanceOf(autoInsertedLeafElement, LeafPsiElement.class); PsiElement autoInsertedCompositeElement = autoInsertedLeafElement.getParent(); assertInstanceOf(autoInsertedCompositeElement, ElixirAlias.class); assertEquals(autoInsertedCompositeElement.getText(), "Nested"); }
public void testSameRunApplicationConfigurationOnPackage() { PsiFile file = myFixture.configureByText("a.go", "package main; <caret>\nfunc main() {}"); PsiElement at = file.findElementAt(myFixture.getCaretOffset()); assertNotNull(at); ConfigurationContext configurationContext = new ConfigurationContext(at); GoApplicationRunConfigurationProducer producer = new GoApplicationRunConfigurationProducer(); GoApplicationConfiguration runConfiguration = createRunAppFileConfiguration(file.getVirtualFile().getPath()); assertTrue(producer.isConfigurationFromContext(runConfiguration, configurationContext)); runConfiguration = createRunAppFileConfiguration(file.getVirtualFile().getPath() + "_vl"); assertFalse(producer.isConfigurationFromContext(runConfiguration, configurationContext)); }
public void testPrimaryArgumentsWithZeroOperands() { myFixture.configureByFile("zero_operands.ex"); PsiElement elementAt = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); assertNotNull(elementAt); PsiElement parent = elementAt.getParent(); assertInstanceOf(parent, Operator.class); PsiElement grandParent = parent.getParent(); assertInstanceOf(grandParent, Prefix.class); assertInstanceOf(grandParent, Call.class); Call grandParentPrefixCall = (Call) grandParent; PsiElement[] primaryArguments = grandParentPrefixCall.primaryArguments(); assertNotNull(primaryArguments); assertEquals(1, primaryArguments.length); assertNull(primaryArguments[0]); }
public void testImportModuleExceptNameArity() { myFixture.configureByFiles("import_module_except_name_arity.ex", "imported.ex"); PsiElement elementAtCaret = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); assertNotNull(elementAtCaret); PsiElement maybeCall = elementAtCaret.getParent().getParent(); assertInstanceOf(maybeCall, Call.class); Call call = (Call) maybeCall; assertEquals("imported", call.functionName()); assertEquals(0, call.resolvedFinalArity()); PsiReference reference = call.getReference(); assertNotNull(reference); assertInstanceOf(reference, PsiPolyVariantReference.class); PsiPolyVariantReference polyVariantReference = (PsiPolyVariantReference) reference; ResolveResult[] resolveResults = polyVariantReference.multiResolve(false); assertEquals(2, resolveResults.length); }
public void testImportModuleOnlyNameArity() { myFixture.configureByFiles("import_module_only_name_arity.ex", "imported.ex"); PsiElement elementAtCaret = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); assertNotNull(elementAtCaret); PsiElement maybeCall = elementAtCaret.getParent().getParent(); assertInstanceOf(maybeCall, Call.class); Call call = (Call) maybeCall; assertEquals("imported", call.functionName()); assertEquals(0, call.resolvedFinalArity()); PsiReference reference = call.getReference(); assertNotNull(reference); assertInstanceOf(reference, PsiPolyVariantReference.class); PsiPolyVariantReference polyVariantReference = (PsiPolyVariantReference) reference; ResolveResult[] resolveResults = polyVariantReference.multiResolve(false); assertEquals(2, resolveResults.length); }