// Path: src/cmake/global/CMakeLanguage.java
// public class CMakeLanguage extends Language {
//     public static final CMakeLanguage INSTANCE = new CMakeLanguage();
// 
//     private CMakeLanguage() {
//         super("CMake");
//     }
// }


import cmake.global.CMakeLanguage;
import cmake.psi.*;
import com.intellij.formatting.*;
import com.intellij.lang.ASTNode;
import com.intellij.lang.Language;
import com.intellij.openapi.util.Ref;
import com.intellij.psi.PsiElement;
import com.intellij.psi.TokenType;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.psi.formatter.WrappingUtil;
import com.intellij.psi.formatter.common.AbstractBlock;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

    @Nullable
    @Override
    public Spacing getSpacing(Block block, Block block1) {
        return mySpacingBuilder.getSpacing(this, block, block1);
    }

    @NotNull
    @Override
    public ChildAttributes getChildAttributes(int newChildIndex) {

        return new ChildAttributes(myIndent, Alignment.createChildAlignment(Alignment.createAlignment()));
    }

    @Override
    public Indent getIndent() {
        return myIndent;
    }
    
    @Override
    protected Indent getChildIndent() { return null;}

    @Override
    public boolean isLeaf() {
        return myNode.getFirstChildNode() == null;
    }

    @Nullable
    @Override
    public Language getLanguage() {
// Path: src/cmake/global/CMakeLanguage.java
// public class CMakeLanguage extends Language {
//     public static final CMakeLanguage INSTANCE = new CMakeLanguage();
// 
//     private CMakeLanguage() {
//         super("CMake");
//     }
// }


// Path: src/cmake/format/CMakeFormattingBlock.java
import cmake.global.CMakeLanguage;
import cmake.psi.*;
import com.intellij.formatting.*;
import com.intellij.lang.ASTNode;
import com.intellij.lang.Language;
import com.intellij.openapi.util.Ref;
import com.intellij.psi.PsiElement;
import com.intellij.psi.TokenType;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.psi.formatter.WrappingUtil;
import com.intellij.psi.formatter.common.AbstractBlock;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


    @Nullable
    @Override
    public Spacing getSpacing(Block block, Block block1) {
        return mySpacingBuilder.getSpacing(this, block, block1);
    }

    @NotNull
    @Override
    public ChildAttributes getChildAttributes(int newChildIndex) {

        return new ChildAttributes(myIndent, Alignment.createChildAlignment(Alignment.createAlignment()));
    }

    @Override
    public Indent getIndent() {
        return myIndent;
    }
    
    @Override
    protected Indent getChildIndent() { return null;}

    @Override
    public boolean isLeaf() {
        return myNode.getFirstChildNode() == null;
    }

    @Nullable
    @Override
    public Language getLanguage() {
        return CMakeLanguage.INSTANCE;