aboutsummaryrefslogtreecommitdiffstats
path: root/sd-plugin/src/main/java/org/intellij/sdk/language/SdFormattingModelBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'sd-plugin/src/main/java/org/intellij/sdk/language/SdFormattingModelBuilder.java')
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/SdFormattingModelBuilder.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdFormattingModelBuilder.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdFormattingModelBuilder.java
new file mode 100644
index 00000000000..35f57f65c26
--- /dev/null
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdFormattingModelBuilder.java
@@ -0,0 +1,37 @@
+package org.intellij.sdk.language;
+
+import com.intellij.formatting.Alignment;
+import com.intellij.formatting.FormattingContext;
+import com.intellij.formatting.FormattingModel;
+import com.intellij.formatting.FormattingModelBuilder;
+import com.intellij.formatting.FormattingModelProvider;
+import com.intellij.formatting.SpacingBuilder;
+import com.intellij.formatting.Wrap;
+import com.intellij.formatting.WrapType;
+import com.intellij.psi.codeStyle.CodeStyleSettings;
+import org.intellij.sdk.language.psi.SdTypes;
+import org.jetbrains.annotations.NotNull;
+
+public class SdFormattingModelBuilder implements FormattingModelBuilder {
+
+ private static SpacingBuilder createSpaceBuilder(CodeStyleSettings settings) {
+ return new SpacingBuilder(settings, SdLanguage.INSTANCE)
+ .around(SdTypes.SYMBOL)
+ .spaceIf(settings.getCommonSettings(SdLanguage.INSTANCE.getID()).SPACE_AFTER_COLON)
+ .before(SdTypes.DOCUMENT_FIELD_DEFINITION)
+ .none();
+ }
+
+ @Override
+ public @NotNull FormattingModel createModel(@NotNull FormattingContext formattingContext) {
+ final CodeStyleSettings codeStyleSettings = formattingContext.getCodeStyleSettings();
+ return FormattingModelProvider
+ .createFormattingModelForPsiFile(formattingContext.getContainingFile(),
+ new SdBlock(formattingContext.getNode(),
+ Wrap.createWrap(WrapType.NONE, false),
+ Alignment.createAlignment(),
+ createSpaceBuilder(codeStyleSettings)),
+ codeStyleSettings);
+ }
+
+}