Examples of HaxeNamedComponent


Examples of com.intellij.plugins.haxe.lang.psi.HaxeNamedComponent

  }

  @Override
  public boolean execute(@NotNull PsiElement element, ResolveState state) {
    if (element instanceof HaxeNamedComponent) {
      final HaxeNamedComponent haxeNamedComponent = (HaxeNamedComponent)element;
      if (haxeNamedComponent.getComponentName() != null) {
        result.add(haxeNamedComponent.getComponentName());
      }
    }
    return true;
  }
View Full Code Here

Examples of com.intellij.plugins.haxe.lang.psi.HaxeNamedComponent

    return result.toArray(new TreeElement[result.size()]);
  }

  @Override
  public int getAccessLevel() {
    HaxeNamedComponent namedComponent = null;
    if (myElement instanceof HaxeNamedComponent) {
      namedComponent = (HaxeNamedComponent)myElement;
    }
    else if (myElement.getParent() instanceof HaxeNamedComponent) {
      namedComponent = (HaxeNamedComponent)myElement.getParent();
    }
    return namedComponent == null || !namedComponent.isPublic() ? PsiUtil.ACCESS_LEVEL_PROTECTED : PsiUtil.ACCESS_LEVEL_PUBLIC;
  }
View Full Code Here

Examples of com.intellij.plugins.haxe.lang.psi.HaxeNamedComponent

  public void invoke(@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file) {
    final PsiElement at = file.findElementAt(editor.getCaretModel().getOffset());
    final HaxeComponentName componentName = PsiTreeUtil.getParentOfType(at, HaxeComponentName.class);

    final HaxeClass haxeClass = PsiTreeUtil.getParentOfType(at, HaxeClass.class);
    final HaxeNamedComponent namedComponent = componentName == null ? haxeClass : (HaxeNamedComponent)componentName.getParent();
    if (at == null || haxeClass == null || namedComponent == null) return;

    final List<HaxeClass> supers = HaxeResolveUtil.tyrResolveClassesByQName(haxeClass.getExtendsList());
    supers.addAll(HaxeResolveUtil.tyrResolveClassesByQName(haxeClass.getImplementsList()));
    final List<HaxeNamedComponent> superItems = HaxeResolveUtil.findNamedSubComponents(false, supers.toArray(new HaxeClass[supers.size()]));

    final HaxeComponentType type = HaxeComponentType.typeOf(namedComponent);
    if (type == HaxeComponentType.METHOD) {
      final HaxeComponentWithDeclarationList methodDeclaration = (HaxeComponentWithDeclarationList)namedComponent;
      tryNavigateToSuperMethod(editor, methodDeclaration, superItems);
    }
    else if (!supers.isEmpty() && namedComponent instanceof HaxeClass) {
      PsiElementListNavigator.openTargets(
        editor,
        HaxeResolveUtil.getComponentNames(supers).toArray(new NavigatablePsiElement[supers.size()]),
        DaemonBundle.message("navigation.title.subclass", namedComponent.getName(), supers.size()),
        "Subclasses of " + namedComponent.getName(),
        new DefaultPsiElementCellRenderer()
      );
    }
  }
View Full Code Here

Examples of com.intellij.plugins.haxe.lang.psi.HaxeNamedComponent

  @Override
  public boolean execute(@NotNull final PsiElement queryParameters, @NotNull final Processor<PsiElement> consumer) {
    return ApplicationManager.getApplication().runReadAction(new Computable<Boolean>() {
      public Boolean compute() {
        final PsiElement queryParametersParent = queryParameters.getParent();
        HaxeNamedComponent haxeNamedComponent;
        if (queryParameters instanceof HaxeClass) {
          haxeNamedComponent = (HaxeClass)queryParameters;
        }
        else if (queryParametersParent instanceof HaxeNamedComponent && queryParameters instanceof HaxeComponentName) {
          haxeNamedComponent = (HaxeNamedComponent)queryParametersParent;
        }
        else {
          return true;
        }
        if (haxeNamedComponent instanceof HaxeClass) {
          processInheritors(((HaxeClass)haxeNamedComponent).getQualifiedName(), queryParameters, consumer);
        }
        else if (HaxeComponentType.typeOf(haxeNamedComponent) == HaxeComponentType.METHOD ||
                 HaxeComponentType.typeOf(haxeNamedComponent) == HaxeComponentType.FIELD) {
          final String nameToFind = haxeNamedComponent.getName();
          if (nameToFind == null) return true;

          HaxeClass haxeClass = PsiTreeUtil.getParentOfType(haxeNamedComponent, HaxeClass.class);
          assert haxeClass != null;
View Full Code Here

Examples of com.intellij.plugins.haxe.lang.psi.HaxeNamedComponent

  @Override
  public String generateDoc(PsiElement element, PsiElement originalElement) {
    if (!(element instanceof HaxeComponentName) && !(element instanceof HaxeNamedComponent)) {
      return null;
    }
    HaxeNamedComponent namedComponent = (HaxeNamedComponent)(element instanceof HaxeNamedComponent ? element : element.getParent());
    final StringBuilder builder = new StringBuilder();
    final HaxeComponentType type = HaxeComponentType.typeOf(namedComponent);
    if (namedComponent instanceof HaxeClass) {
      builder.append(((HaxeClass)namedComponent).getQualifiedName());
    }
    else if (type == HaxeComponentType.FIELD || type == HaxeComponentType.METHOD) {
      final HaxeClass haxeClass = PsiTreeUtil.getParentOfType(namedComponent, HaxeClass.class);
      assert haxeClass != null;
      builder.append(haxeClass.getQualifiedName());
      builder.append(" ");
      builder.append(type.toString().toLowerCase());
      builder.append(" ");
      builder.append(namedComponent.getName());
    }
    final PsiComment comment = HaxeResolveUtil.findDocumentation(namedComponent);
    if (comment != null) {
      builder.append("<br/>");
      builder.append(HaxePresentableUtil.unwrapCommentDelimiters(comment.getText()));
View Full Code Here

Examples of com.intellij.plugins.haxe.lang.psi.HaxeNamedComponent

    final Set<HaxeComponentName> result = new THashSet<HaxeComponentName>();
    PsiTreeUtil.treeWalkUp(new PsiScopeProcessor() {
      @Override
      public boolean execute(@NotNull PsiElement element, ResolveState state) {
        if (element instanceof HaxeNamedComponent) {
          final HaxeNamedComponent haxeNamedComponent = (HaxeNamedComponent)element;
          if (haxeNamedComponent.getComponentName() != null && HaxeComponentType.isVariable(HaxeComponentType.typeOf(haxeNamedComponent))) {
            result.add(haxeNamedComponent.getComponentName());
          }
        }
        return true;
      }
View Full Code Here

Examples of com.intellij.plugins.haxe.lang.psi.HaxeNamedComponent

  }

  @Nullable
  @Override
  public MemberChooserObject getParentNodeDelegate() {
    final HaxeNamedComponent result = PsiTreeUtil.getParentOfType(getPsiElement(), HaxeNamedComponent.class);
    return result == null ? null : new HaxeNamedElementNode(result);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.