Package org.jetbrains.plugins.clojure.psi.api.symbols

Examples of org.jetbrains.plugins.clojure.psi.api.symbols.ClSymbol


  public Icon getIcon(int flags) {
    return ClojureIcons.FUNCTION;
  }

  public PsiElement setName(@NotNull @NonNls String name) throws IncorrectOperationException {
    final ClSymbol sym = getNameSymbol();
    if (sym != null) sym.setName(name);
    return this;
  }
View Full Code Here


    ClDefStub stub = getStub();
    if (stub != null) {
      return stub.getTextOffset();
    }

    final ClSymbol symbol = getNameSymbol();
    if (symbol != null) {
      return symbol.getTextRange().getStartOffset();
    }
    return super.getTextOffset();
  }
View Full Code Here

    }
    return null;
  }

  public String getMethodInfo() {
    final ClSymbol sym = getNameSymbol();
    if (sym == null) return "";
    PsiElement next = sym.getNextSibling();
    while (next instanceof LeafPsiElement) next = next.getNextSibling();
    return next == null ? "" : next.getText();
  }
View Full Code Here

public class CompleteSymbol {

  public static Object[] getVariants(ClSymbol symbol) {
    Collection<Object> variants = new ArrayList<Object>();

    ClSymbol qualifier = symbol.getQualifierSymbol();
    final CompletionProcessor processor = new CompletionProcessor(symbol, symbol.getKinds());
    if (qualifier == null) {
      ResolveUtil.treeWalkUp(symbol, processor);
    } else {
      for (ResolveResult result : qualifier.multiResolve(false)) {
        final PsiElement element = result.getElement();
        if (element != null) {
          final PsiElement sep = symbol.getSeparatorToken();
          final String sepText = sep == null ? "." : sep.getText();
          if ("/".equals(sepText) && isNamespaceLike(element)) {
View Full Code Here

    final PsiElement position = parameters.getPosition();
    final PsiElement parent = position.getParent();
    final boolean isClassName = ClojureClassNameCompletionContributor.shouldRunClassName(parameters,
        result.getPrefixMatcher(), true);
    if (parent instanceof ClSymbol) {
      ClSymbol symbol = (ClSymbol) parent;
      final Object[] variants = symbol.getVariants();
      Ref<Boolean> elementAdded = new Ref<Boolean>(Boolean.FALSE);
      for (Object variant : variants) {
        if (variant instanceof ClojureLookupItem) {
          ClojureLookupItem lookupItem = (ClojureLookupItem) variant;
          final PsiElement element = lookupItem.getPsiElement();
View Full Code Here

public class ClojureClassNameCompletionContributor extends CompletionContributor {
  public static void completeClassName(final CompletionParameters parameters, final CompletionResultSet result) {
    final PsiElement position = parameters.getPosition();
    final PsiElement parent = position.getParent();
    if (!(parent instanceof ClSymbol)) return;
    ClSymbol symbol = (ClSymbol) parent;
    if (symbol.getQualifierSymbol() != null) return;
    final PsiElement list = symbol.getParent();
    final boolean isInImport;
    if (list instanceof ClList) {
      isInImport = ((ClList) list).getFirstSymbol().getNameString().equals(ListDeclarations.IMPORT);
    } else {
      isInImport = false;
View Full Code Here

  @Override
  public void handleInsert(InsertionContext context) {
    if (isClassName()) {
      PsiDocumentManager.getInstance(context.getProject()).commitDocument(context.getDocument());
      final int startOffset = context.getStartOffset();
      final ClSymbol symbol = PsiTreeUtil.findElementOfClassAtOffset(context.getFile(), startOffset, ClSymbol.class, false);
      if (symbol == null) return;
      if (myElement instanceof PsiClass) {
        PsiClass clazz = (PsiClass) myElement;
        if (symbol.getQualifierSymbol() != null) return;
        if (isInImport()) {
          ClSymbol newSymbol = ClojurePsiFactory.getInstance(context.getProject()).
              createSymbolNodeFromText(clazz.getQualifiedName()).getPsi(ClSymbol.class);
          symbol.replace(newSymbol);
        } else {
          symbol.bindToElement(clazz);
        }
View Full Code Here

  @Nullable
  public static ClList findFormByName(ClojurePsiElement container, @NotNull String name) {
    for (PsiElement element : container.getChildren()) {
      if (element instanceof ClList) {
        ClList list = (ClList) element;
        final ClSymbol first = list.getFirstSymbol();
        if (first != null && name.equals(first.getNameString())) {
          return list;
        }
      }
    }
    return null;
View Full Code Here

  @Nullable
  public static ClList findFormByNameSet(ClojurePsiElement container, @NotNull Set<String> names) {
    for (PsiElement element : container.getChildren()) {
      if (element instanceof ClList) {
        ClList list = (ClList) element;
        final ClSymbol first = list.getFirstSymbol();
        if (first != null && names.contains(first.getNameString())) {
          return list;
        }
      }
    }
    return null;
View Full Code Here

TOP

Related Classes of org.jetbrains.plugins.clojure.psi.api.symbols.ClSymbol

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.