Package com.intellij.psi

Examples of com.intellij.psi.PsiReference


    return new ErlangVisitor() {
      @Override
      public void visitRecordField(@NotNull ErlangRecordField o) {
        ErlangRecordExpression recordExpression = PsiTreeUtil.getParentOfType(o, ErlangRecordExpression.class);
        if (recordExpression != null) {
          PsiReference reference = recordExpression.getReferenceInternal();
          if (reference != null && reference.resolve() == null) {
            return;
          }
        }

        PsiReference reference = o.getReference();
        if (reference == null || reference.resolve() == null) {
          ErlangQAtom atom = o.getFieldNameAtom();
          if (atom == null || atom.getMacros() != null) return;
          holder.registerProblem(atom, "Unresolved record field " + "'" + atom.getText() + "'", new ErlangIntroduceRecordFieldFix());
        }
      }
View Full Code Here


          || inLeftPartOfAssignment(o) || inAtomAttribute(o) || isMacros(o)
          || isForceSkipped(o) || inSpecification(o) || inDefine(o)
          || inCallback(o) || inRecordDefinition(o)) {
          return;
        }
        PsiReference reference = o.getReference();
        if (reference != null && reference.resolve() == null) {
          holder.registerProblem(o, "Variable " + "'" + o.getText() + "' is unbound", new ErlangIntroduceVariableQuickFix());
        }
      }
    };
  }
View Full Code Here

  @Nullable
  private static ErlangAttribute getSpecAttributeForFunction(ErlangFunction function) {
    ErlangSpecification spec = ErlangPsiImplUtil.getSpecification(function);
    ErlangFunTypeSigs signature = ErlangPsiImplUtil.getSignature(spec);
    ErlangSpecFun specFun = signature != null ? signature.getSpecFun() : null;
    PsiReference reference = specFun != null ? specFun.getReference() : null;
    boolean isSpecForPassedFunction = reference != null && reference.isReferenceTo(function);
    return isSpecForPassedFunction ? PsiTreeUtil.getParentOfType(spec, ErlangAttribute.class) : null;
  }
View Full Code Here

  @Override
  public void collectSlowLineMarkers(@NotNull List<PsiElement> elements, @NotNull Collection<LineMarkerInfo> result) {
    Set<Integer> lines = new HashSet<Integer>();
    for (PsiElement element : elements) {
      if (element instanceof ErlangFunctionCallExpression || element instanceof ErlangFunctionWithArity) {
        PsiReference reference = element.getReference();
        PsiElement resolve = reference != null ? reference.resolve() : null;
        if (resolve instanceof ErlangFunction) {
          if (ErlangPsiImplUtil.isRecursiveCall(element, (ErlangFunction) resolve)) {
            PsiDocumentManager instance = PsiDocumentManager.getInstance(element.getProject());
            Document document = instance.getDocument(element.getContainingFile());
            int textOffset = element.getTextOffset();
View Full Code Here

  @Override
  public void showParameterInfo(@NotNull ErlangArgumentList args, @NotNull CreateParameterInfoContext context) {
    ErlangFunctionCallExpression erlFunctionCall = PsiTreeUtil.getParentOfType(args, ErlangFunctionCallExpression.class);
    if (erlFunctionCall != null) {
      PsiReference reference = erlFunctionCall.getReference();
      PsiElement resolve = reference != null ? reference.resolve() : null;
      List<ErlangFunctionClause> clauses = new ArrayList<ErlangFunctionClause>();
      if (resolve instanceof ErlangFunction) {
        List<ErlangFunctionClause> clauseList = ((ErlangFunction) resolve).getFunctionClauseList();
        clauses.addAll(clauseList);
      }
View Full Code Here

              specification.accept(new ErlangRecursiveVisitor() {
                @Override
                public void visitTypeGuard(@NotNull ErlangTypeGuard o) {
                  ErlangTopType item = ContainerUtil.getFirstItem(o.getTopTypeList());
                  ErlangQVar qVar = item == null ? null : item.getQVar();
                  PsiReference reference = qVar == null ? null : qVar.getReference();
                  PsiElement resolve = reference == null ? null : reference.resolve();
                  if (var.equals(resolve)) {
                    itemTypeRef.setIfNull(item.getType());
                  }
                }
              });
View Full Code Here

        List<ErlangExpression> expressionList = expression.getArgumentList().getExpressionList();
        int size = expressionList.size();

        if (size < 2) return;

        PsiReference moduleReference = o.getModuleRef().getReference();
        PsiElement resolve = moduleReference != null ? moduleReference.resolve() : null;

        if (resolve instanceof ErlangModule) {
          if (MODULE_NAMES.contains(((ErlangModule) resolve).getName())) {
            PsiReference reference = expression.getReference();
            PsiElement function = reference != null ? reference.resolve() : null;
            if (function instanceof ErlangFunction) {
              if (FUNCTION_NAMES.contains(((ErlangFunction) function).getName())) {
                List<ErlangExpression> reverse = ContainerUtil.reverse(expressionList);
                ErlangExpression args = reverse.get(0);
                ErlangExpression str = reverse.get(1);
View Full Code Here

  @NotNull
  private PsiElement resolveElementAtCaret(@NotNull String text) {
    myFixture.configureByText("test.erl", text);
    int caretPosition = myFixture.getEditor().getCaretModel().getOffset();
    PsiReference psiReference = myFixture.getFile().findReferenceAt(caretPosition);
    PsiElement resolve = psiReference.resolve();
    assertNotNull(resolve);
    return resolve;
  }
View Full Code Here

  @Override
  public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
    PsiElement element = descriptor.getPsiElement();
    ErlangRecordExpression recordExpression = PsiTreeUtil.getParentOfType(element, ErlangRecordExpression.class);
    if (recordExpression != null) {
      PsiReference reference = recordExpression.getReferenceInternal();
      PsiElement resolve = reference != null ? reference.resolve() : null;
      if (resolve != null) {
        ErlangTypedRecordFields fields = ((ErlangRecordDefinition) resolve).getTypedRecordFields();
        if (fields != null) {
          String replace = fields.getText().replaceFirst("\\{", "").replace("}", "");
          boolean empty = StringUtil.isEmptyOrSpaces(replace);
View Full Code Here

  protected void doTest(String expectedModulePath, String ... filePaths) {
    myFixture.configureByFiles(filePaths);
    PsiElement focusedElement = myFixture.getFile().findElementAt(myFixture.getEditor().getCaretModel().getOffset());
    focusedElement = PsiTreeUtil.getParentOfType(focusedElement, ErlangModuleRef.class);
    assertNotNull(focusedElement);
    PsiReference reference = focusedElement.getReference();
    assertNotNull(reference);
    PsiElement moduleElement = reference.resolve();
    assertNotNull(moduleElement);
    PsiFile containingFile = moduleElement.getContainingFile();
    assertNotNull(containingFile);
    VirtualFile virtualFile = containingFile.getVirtualFile();
    assertNotNull(virtualFile);
View Full Code Here

TOP

Related Classes of com.intellij.psi.PsiReference

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.