Package org.jetbrains.plugins.clojure.formatter.processors

Source Code of org.jetbrains.plugins.clojure.formatter.processors.ClojureIndentProcessor

package org.jetbrains.plugins.clojure.formatter.processors;

import com.intellij.formatting.Indent;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.tree.TokenSet;
import org.jetbrains.plugins.clojure.formatter.ClojureBlock;
import org.jetbrains.plugins.clojure.parser.ClojureElementTypes;
import org.jetbrains.plugins.clojure.psi.api.ClojureFile;

/**
* @author ilyas
*/
public class ClojureIndentProcessor implements ClojureElementTypes{
  public static Indent getChildIndent(ClojureBlock parent, ASTNode prevChildNode, ASTNode child) {
    ASTNode astNode = parent.getNode();
    final PsiElement psiParent = astNode.getPsi();

    // For Groovy file
    if (psiParent instanceof ClojureFile) {
      return Indent.getNoneIndent();
    }

    ASTNode node = parent.getNode();
    final TokenSet L_BRACES = TokenSet.create(LEFT_CURLY, LEFT_PAREN, LEFT_SQUARE);
    if (LIST_LIKE_FORMS.contains(node.getElementType())) {
      if (L_BRACES.contains(child.getElementType())) {
        return Indent.getNoneIndent();
      } else {
        return Indent.getNormalIndent(true);
      }
    }
    return Indent.getNoneIndent();
  }
}
TOP

Related Classes of org.jetbrains.plugins.clojure.formatter.processors.ClojureIndentProcessor

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.