KT-1235 Indent size in IDEA is always 4?
This commit is contained in:
@@ -59,6 +59,9 @@
|
|||||||
<lang.findUsagesProvider language="jet" implementationClass="org.jetbrains.jet.plugin.findUsages.JetFindUsagesProvider"/>
|
<lang.findUsagesProvider language="jet" implementationClass="org.jetbrains.jet.plugin.findUsages.JetFindUsagesProvider"/>
|
||||||
<lang.refactoringSupport language="jet" implementationClass="org.jetbrains.jet.plugin.refactoring.JetRefactoringSupportProvider"/>
|
<lang.refactoringSupport language="jet" implementationClass="org.jetbrains.jet.plugin.refactoring.JetRefactoringSupportProvider"/>
|
||||||
|
|
||||||
|
<codeStyleSettingsProvider implementation="org.jetbrains.jet.plugin.formatter.JetCodeStyleSettingsProvider"/>
|
||||||
|
<langCodeStyleSettingsProvider implementation="org.jetbrains.jet.plugin.formatter.JetLanguageCodeStyleSettingsProvider"/>
|
||||||
|
|
||||||
<templateParameterTraversalPolicy implementation="org.jetbrains.jet.plugin.completion.JetTemplateParameterTraversalPolicy"/>
|
<templateParameterTraversalPolicy implementation="org.jetbrains.jet.plugin.completion.JetTemplateParameterTraversalPolicy"/>
|
||||||
|
|
||||||
<codeInsight.parameterInfo language="jet" implementationClass="org.jetbrains.jet.plugin.parameterInfo.JetFunctionParameterInfoHandler"/>
|
<codeInsight.parameterInfo language="jet" implementationClass="org.jetbrains.jet.plugin.parameterInfo.JetFunctionParameterInfoHandler"/>
|
||||||
@@ -100,7 +103,6 @@
|
|||||||
<configurationProducer implementation="org.jetbrains.jet.plugin.run.JetRunConfigurationProducer"/>
|
<configurationProducer implementation="org.jetbrains.jet.plugin.run.JetRunConfigurationProducer"/>
|
||||||
<codeInsight.lineMarkerProvider language="jet" implementationClass="org.jetbrains.jet.plugin.annotations.JetLineMarkerProvider"/>
|
<codeInsight.lineMarkerProvider language="jet" implementationClass="org.jetbrains.jet.plugin.annotations.JetLineMarkerProvider"/>
|
||||||
<iconProvider implementation="org.jetbrains.jet.plugin.JetIconProvider"/>
|
<iconProvider implementation="org.jetbrains.jet.plugin.JetIconProvider"/>
|
||||||
<fileTypeIndentOptionsProvider implementation="org.jetbrains.jet.plugin.formatter.JetIndentOptionsProvider"/>
|
|
||||||
<elementDescriptionProvider implementation="org.jetbrains.jet.plugin.findUsages.JetElementDescriptionProvider"/>
|
<elementDescriptionProvider implementation="org.jetbrains.jet.plugin.findUsages.JetElementDescriptionProvider"/>
|
||||||
<debugger.positionManagerFactory implementation="org.jetbrains.jet.plugin.debugger.JetPositionManagerFactory"/>
|
<debugger.positionManagerFactory implementation="org.jetbrains.jet.plugin.debugger.JetPositionManagerFactory"/>
|
||||||
<codeInsight.implementMethod language="jet" implementationClass="org.jetbrains.jet.plugin.codeInsight.ImplementMethodsHandler"/>
|
<codeInsight.implementMethod language="jet" implementationClass="org.jetbrains.jet.plugin.codeInsight.ImplementMethodsHandler"/>
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package org.jetbrains.jet.plugin.formatter;
|
||||||
|
|
||||||
|
import com.intellij.openapi.project.Project;
|
||||||
|
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||||
|
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||||
|
import com.intellij.psi.codeStyle.CustomCodeStyleSettings;
|
||||||
|
|
||||||
|
public class JetCodeStyleSettings extends CustomCodeStyleSettings {
|
||||||
|
public static JetCodeStyleSettings getInstance(Project project) {
|
||||||
|
return CodeStyleSettingsManager.getSettings(project).getCustomSettings(JetCodeStyleSettings.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public JetCodeStyleSettings(CodeStyleSettings container) {
|
||||||
|
super("JetCodeStyleSettings", container);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package org.jetbrains.jet.plugin.formatter;
|
||||||
|
|
||||||
|
import com.intellij.application.options.CodeStyleAbstractConfigurable;
|
||||||
|
import com.intellij.application.options.CodeStyleAbstractPanel;
|
||||||
|
import com.intellij.application.options.TabbedLanguageCodeStylePanel;
|
||||||
|
import com.intellij.lang.Language;
|
||||||
|
import com.intellij.openapi.options.Configurable;
|
||||||
|
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||||
|
import com.intellij.psi.codeStyle.CodeStyleSettingsProvider;
|
||||||
|
import com.intellij.psi.codeStyle.CustomCodeStyleSettings;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.jet.plugin.JetLanguage;
|
||||||
|
|
||||||
|
public class JetCodeStyleSettingsProvider extends CodeStyleSettingsProvider {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getConfigurableDisplayName() {
|
||||||
|
return "Kotlin";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Language getLanguage() {
|
||||||
|
return JetLanguage.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CustomCodeStyleSettings createCustomSettings(CodeStyleSettings settings) {
|
||||||
|
return new JetCodeStyleSettings(settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public Configurable createSettingsPage(CodeStyleSettings settings, CodeStyleSettings originalSettings) {
|
||||||
|
return new CodeStyleAbstractConfigurable(settings, originalSettings, "Kotlin") {
|
||||||
|
@Override
|
||||||
|
protected CodeStyleAbstractPanel createPanel(CodeStyleSettings settings) {
|
||||||
|
return new TabbedLanguageCodeStylePanel(JetLanguage.INSTANCE, getCurrentSettings(), settings) {
|
||||||
|
@Override
|
||||||
|
protected void initTabs(CodeStyleSettings settings) {
|
||||||
|
// TODO: activate all parent tabs
|
||||||
|
addIndentOptionsTab(settings);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getHelpTopic() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,9 +18,12 @@ public class JetFormattingModelBuilder implements FormattingModelBuilder {
|
|||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public FormattingModel createModel(PsiElement element, CodeStyleSettings settings) {
|
public FormattingModel createModel(PsiElement element, CodeStyleSettings settings) {
|
||||||
final JetBlock block = new JetBlock(element.getNode(), null, Indent.getNoneIndent(), null, settings,
|
final JetBlock block = new JetBlock(
|
||||||
createSpacingBuilder(settings));
|
element.getNode(), null, Indent.getNoneIndent(), null, settings,
|
||||||
return FormattingModelProvider.createFormattingModelForPsiFile(element.getContainingFile(), block, settings);
|
createSpacingBuilder(settings));
|
||||||
|
|
||||||
|
return FormattingModelProvider.createFormattingModelForPsiFile(
|
||||||
|
element.getContainingFile(), block, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SpacingBuilder createSpacingBuilder(CodeStyleSettings settings) {
|
private static SpacingBuilder createSpacingBuilder(CodeStyleSettings settings) {
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.formatter;
|
|
||||||
|
|
||||||
import com.intellij.application.options.IndentOptionsEditor;
|
|
||||||
import com.intellij.application.options.SmartIndentOptionsEditor;
|
|
||||||
import com.intellij.openapi.fileTypes.FileType;
|
|
||||||
import com.intellij.psi.PsiFile;
|
|
||||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
|
||||||
import com.intellij.psi.codeStyle.FileTypeIndentOptionsProvider;
|
|
||||||
import org.jetbrains.jet.plugin.JetFileType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author yole
|
|
||||||
*/
|
|
||||||
public class JetIndentOptionsProvider implements FileTypeIndentOptionsProvider {
|
|
||||||
@Override
|
|
||||||
public CodeStyleSettings.IndentOptions createIndentOptions() {
|
|
||||||
return new CodeStyleSettings.IndentOptions();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FileType getFileType() {
|
|
||||||
return JetFileType.INSTANCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public IndentOptionsEditor createOptionsEditor() {
|
|
||||||
return new SmartIndentOptionsEditor();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getPreviewText() {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void prepareForReformat(PsiFile psiFile) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package org.jetbrains.jet.plugin.formatter;
|
||||||
|
|
||||||
|
import com.intellij.application.options.IndentOptionsEditor;
|
||||||
|
import com.intellij.application.options.SmartIndentOptionsEditor;
|
||||||
|
import com.intellij.lang.Language;
|
||||||
|
import com.intellij.psi.codeStyle.CodeStyleSettingsCustomizable;
|
||||||
|
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
|
||||||
|
import com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.jet.plugin.JetLanguage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Nikolay Krasko
|
||||||
|
*/
|
||||||
|
public class JetLanguageCodeStyleSettingsProvider extends LanguageCodeStyleSettingsProvider {
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public Language getLanguage() {
|
||||||
|
return JetLanguage.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCodeSample(@NotNull SettingsType settingsType) {
|
||||||
|
return
|
||||||
|
"class Some {\n" +
|
||||||
|
"fun foo() : Int {\n" +
|
||||||
|
"return 0\n" +
|
||||||
|
"}\n" +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getLanguageName() {
|
||||||
|
return "Kotlin";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void customizeSettings(@NotNull CodeStyleSettingsCustomizable consumer, @NotNull SettingsType settingsType) {
|
||||||
|
consumer.showAllStandardOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IndentOptionsEditor getIndentOptionsEditor() {
|
||||||
|
return new SmartIndentOptionsEditor();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean usesSharedPreview() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonCodeStyleSettings getDefaultCommonSettings() {
|
||||||
|
CommonCodeStyleSettings commonCodeStyleSettings = new CommonCodeStyleSettings(getLanguage());
|
||||||
|
commonCodeStyleSettings.initIndentOptions();
|
||||||
|
return commonCodeStyleSettings;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user