Added outputPrefix and outputPostfix parameters to Kotlin Compiler tab.
This commit is contained in:
@@ -299,3 +299,7 @@ kotlin.compiler.jvm.option.panel.title=Kotlin to JVM
|
||||
# Kotlin to JavaScript
|
||||
kotlin.compiler.js.option.panel.title=Kotlin to JavaScript
|
||||
kotlin.compiler.js.option.generate.sourcemaps=Generate &source maps
|
||||
kotlin.compiler.js.option.output.prefix=Output file &prefix:
|
||||
kotlin.compiler.js.option.output.postfix=Output file p&ostfix:
|
||||
kotlin.compiler.js.option.output.prefix.browse.title=Choose output file prefix
|
||||
kotlin.compiler.js.option.output.postfix.browse.title=Choose output file postfix
|
||||
|
||||
+35
-3
@@ -3,7 +3,7 @@
|
||||
<grid id="27dc6" binding="contentPane" layout-manager="GridLayoutManager" row-count="4" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<xy x="20" y="20" width="437" height="221"/>
|
||||
<xy x="20" y="20" width="467" height="285"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
@@ -62,7 +62,7 @@
|
||||
<border type="etched" title-resource-bundle="org/jetbrains/jet/plugin/JetBundle" title-key="kotlin.compiler.jvm.option.panel.title"/>
|
||||
<children/>
|
||||
</grid>
|
||||
<grid id="98e8a" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<grid id="98e8a" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/>
|
||||
@@ -77,12 +77,44 @@
|
||||
<children>
|
||||
<component id="1fbe0" class="javax.swing.JCheckBox" binding="generateSourceMapsCheckBox" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<grid row="0" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="org/jetbrains/jet/plugin/JetBundle" key="kotlin.compiler.js.option.generate.sourcemaps"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="3ac8f" class="javax.swing.JLabel" binding="labelForOutputPrefixFile">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="256" height="18"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="org/jetbrains/jet/plugin/JetBundle" key="kotlin.compiler.js.option.output.prefix"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="2d5b" class="com.intellij.openapi.ui.TextFieldWithBrowseButton" binding="outputPrefixFile">
|
||||
<constraints>
|
||||
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
</component>
|
||||
<component id="70326" class="javax.swing.JLabel" binding="labelForOutputPostfixFile">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="256" height="18"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="org/jetbrains/jet/plugin/JetBundle" key="kotlin.compiler.js.option.output.postfix"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="1292b" class="com.intellij.openapi.ui.TextFieldWithBrowseButton" binding="outputPostfixFile">
|
||||
<constraints>
|
||||
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
|
||||
+36
-1
@@ -17,10 +17,14 @@
|
||||
package org.jetbrains.jet.plugin.compiler.configuration;
|
||||
|
||||
import com.intellij.compiler.options.ComparingUtils;
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
|
||||
import com.intellij.openapi.options.Configurable;
|
||||
import com.intellij.openapi.options.ConfigurableEP;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.options.SearchableConfigurable;
|
||||
import com.intellij.openapi.ui.TextComponentAccessor;
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.ui.RawCommandLineEditor;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -44,6 +48,10 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
||||
private RawCommandLineEditor additionalArgsOptionsField;
|
||||
private JLabel additionalArgsLabel;
|
||||
private JCheckBox generateSourceMapsCheckBox;
|
||||
private TextFieldWithBrowseButton outputPrefixFile;
|
||||
private TextFieldWithBrowseButton outputPostfixFile;
|
||||
private JLabel labelForOutputPrefixFile;
|
||||
private JLabel labelForOutputPostfixFile;
|
||||
|
||||
public KotlinCompilerConfigurableTab(ConfigurableEP ep) {
|
||||
this.extPoint = ep;
|
||||
@@ -53,6 +61,11 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
||||
|
||||
additionalArgsOptionsField.attachLabel(additionalArgsLabel);
|
||||
additionalArgsOptionsField.setDialogCaption(JetBundle.message("kotlin.compiler.option.additional.command.line.parameters.dialog.title"));
|
||||
|
||||
setupFileChooser(labelForOutputPrefixFile, outputPrefixFile,
|
||||
JetBundle.message("kotlin.compiler.js.option.output.prefix.browse.title"));
|
||||
setupFileChooser(labelForOutputPostfixFile, outputPostfixFile,
|
||||
JetBundle.message("kotlin.compiler.js.option.output.postfix.browse.title"));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -77,7 +90,9 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
||||
public boolean isModified() {
|
||||
return ComparingUtils.isModified(generateNoWarningsCheckBox, isGenerateNoWarnings()) ||
|
||||
ComparingUtils.isModified(additionalArgsOptionsField, additionalCompilerSettings.getAdditionalArguments()) ||
|
||||
ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerSettings.sourcemap);
|
||||
ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerSettings.sourcemap) ||
|
||||
isModified(outputPrefixFile, k2jsCompilerSettings.outputPrefix) ||
|
||||
isModified(outputPostfixFile, k2jsCompilerSettings.outputPostfix);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -85,6 +100,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
||||
setGenerateNoWarnings(generateNoWarningsCheckBox.isSelected());
|
||||
additionalCompilerSettings.setAdditionalArguments(additionalArgsOptionsField.getText());
|
||||
k2jsCompilerSettings.sourcemap = generateSourceMapsCheckBox.isSelected();
|
||||
k2jsCompilerSettings.outputPrefix = StringUtil.nullize(outputPrefixFile.getText(), true);
|
||||
k2jsCompilerSettings.outputPostfix = StringUtil.nullize(outputPostfixFile.getText(), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -92,6 +109,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
||||
generateNoWarningsCheckBox.setSelected(isGenerateNoWarnings());
|
||||
additionalArgsOptionsField.setText(additionalCompilerSettings.getAdditionalArguments());
|
||||
generateSourceMapsCheckBox.setSelected(k2jsCompilerSettings.sourcemap);
|
||||
outputPrefixFile.setText(k2jsCompilerSettings.outputPrefix);
|
||||
outputPostfixFile.setText(k2jsCompilerSettings.outputPostfix);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -117,4 +136,20 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
||||
private void setGenerateNoWarnings(boolean selected) {
|
||||
commonCompilerSettings.suppress = selected ? SUPPRESS_WARNINGS : null;
|
||||
}
|
||||
|
||||
private static void setupFileChooser(
|
||||
@NotNull JLabel label,
|
||||
@NotNull TextFieldWithBrowseButton fileChooser,
|
||||
@NotNull String title
|
||||
) {
|
||||
label.setLabelFor(fileChooser);
|
||||
|
||||
fileChooser.addBrowseFolderListener(title, null, null,
|
||||
new FileChooserDescriptor(true, false, false, false, false, false),
|
||||
TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT, false);
|
||||
}
|
||||
|
||||
private static boolean isModified(@NotNull TextFieldWithBrowseButton chooser, @Nullable String currentValue) {
|
||||
return !StringUtil.equals(StringUtil.nullize(chooser.getText(), true), currentValue);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user