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 to JavaScript
|
||||||
kotlin.compiler.js.option.panel.title=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.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">
|
<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"/>
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<xy x="20" y="20" width="437" height="221"/>
|
<xy x="20" y="20" width="467" height="285"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<properties/>
|
<properties/>
|
||||||
<border type="none"/>
|
<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"/>
|
<border type="etched" title-resource-bundle="org/jetbrains/jet/plugin/JetBundle" title-key="kotlin.compiler.jvm.option.panel.title"/>
|
||||||
<children/>
|
<children/>
|
||||||
</grid>
|
</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"/>
|
<margin top="0" left="0" bottom="0" right="0"/>
|
||||||
<constraints>
|
<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"/>
|
<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>
|
<children>
|
||||||
<component id="1fbe0" class="javax.swing.JCheckBox" binding="generateSourceMapsCheckBox" default-binding="true">
|
<component id="1fbe0" class="javax.swing.JCheckBox" binding="generateSourceMapsCheckBox" default-binding="true">
|
||||||
<constraints>
|
<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>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<text resource-bundle="org/jetbrains/jet/plugin/JetBundle" key="kotlin.compiler.js.option.generate.sourcemaps"/>
|
<text resource-bundle="org/jetbrains/jet/plugin/JetBundle" key="kotlin.compiler.js.option.generate.sourcemaps"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</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>
|
</children>
|
||||||
</grid>
|
</grid>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||
+36
-1
@@ -17,10 +17,14 @@
|
|||||||
package org.jetbrains.jet.plugin.compiler.configuration;
|
package org.jetbrains.jet.plugin.compiler.configuration;
|
||||||
|
|
||||||
import com.intellij.compiler.options.ComparingUtils;
|
import com.intellij.compiler.options.ComparingUtils;
|
||||||
|
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
|
||||||
import com.intellij.openapi.options.Configurable;
|
import com.intellij.openapi.options.Configurable;
|
||||||
import com.intellij.openapi.options.ConfigurableEP;
|
import com.intellij.openapi.options.ConfigurableEP;
|
||||||
import com.intellij.openapi.options.ConfigurationException;
|
import com.intellij.openapi.options.ConfigurationException;
|
||||||
import com.intellij.openapi.options.SearchableConfigurable;
|
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 com.intellij.ui.RawCommandLineEditor;
|
||||||
import org.jetbrains.annotations.Nls;
|
import org.jetbrains.annotations.Nls;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -44,6 +48,10 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
private RawCommandLineEditor additionalArgsOptionsField;
|
private RawCommandLineEditor additionalArgsOptionsField;
|
||||||
private JLabel additionalArgsLabel;
|
private JLabel additionalArgsLabel;
|
||||||
private JCheckBox generateSourceMapsCheckBox;
|
private JCheckBox generateSourceMapsCheckBox;
|
||||||
|
private TextFieldWithBrowseButton outputPrefixFile;
|
||||||
|
private TextFieldWithBrowseButton outputPostfixFile;
|
||||||
|
private JLabel labelForOutputPrefixFile;
|
||||||
|
private JLabel labelForOutputPostfixFile;
|
||||||
|
|
||||||
public KotlinCompilerConfigurableTab(ConfigurableEP ep) {
|
public KotlinCompilerConfigurableTab(ConfigurableEP ep) {
|
||||||
this.extPoint = ep;
|
this.extPoint = ep;
|
||||||
@@ -53,6 +61,11 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
|
|
||||||
additionalArgsOptionsField.attachLabel(additionalArgsLabel);
|
additionalArgsOptionsField.attachLabel(additionalArgsLabel);
|
||||||
additionalArgsOptionsField.setDialogCaption(JetBundle.message("kotlin.compiler.option.additional.command.line.parameters.dialog.title"));
|
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
|
@NotNull
|
||||||
@@ -77,7 +90,9 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
public boolean isModified() {
|
public boolean isModified() {
|
||||||
return ComparingUtils.isModified(generateNoWarningsCheckBox, isGenerateNoWarnings()) ||
|
return ComparingUtils.isModified(generateNoWarningsCheckBox, isGenerateNoWarnings()) ||
|
||||||
ComparingUtils.isModified(additionalArgsOptionsField, additionalCompilerSettings.getAdditionalArguments()) ||
|
ComparingUtils.isModified(additionalArgsOptionsField, additionalCompilerSettings.getAdditionalArguments()) ||
|
||||||
ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerSettings.sourcemap);
|
ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerSettings.sourcemap) ||
|
||||||
|
isModified(outputPrefixFile, k2jsCompilerSettings.outputPrefix) ||
|
||||||
|
isModified(outputPostfixFile, k2jsCompilerSettings.outputPostfix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -85,6 +100,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
setGenerateNoWarnings(generateNoWarningsCheckBox.isSelected());
|
setGenerateNoWarnings(generateNoWarningsCheckBox.isSelected());
|
||||||
additionalCompilerSettings.setAdditionalArguments(additionalArgsOptionsField.getText());
|
additionalCompilerSettings.setAdditionalArguments(additionalArgsOptionsField.getText());
|
||||||
k2jsCompilerSettings.sourcemap = generateSourceMapsCheckBox.isSelected();
|
k2jsCompilerSettings.sourcemap = generateSourceMapsCheckBox.isSelected();
|
||||||
|
k2jsCompilerSettings.outputPrefix = StringUtil.nullize(outputPrefixFile.getText(), true);
|
||||||
|
k2jsCompilerSettings.outputPostfix = StringUtil.nullize(outputPostfixFile.getText(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -92,6 +109,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
generateNoWarningsCheckBox.setSelected(isGenerateNoWarnings());
|
generateNoWarningsCheckBox.setSelected(isGenerateNoWarnings());
|
||||||
additionalArgsOptionsField.setText(additionalCompilerSettings.getAdditionalArguments());
|
additionalArgsOptionsField.setText(additionalCompilerSettings.getAdditionalArguments());
|
||||||
generateSourceMapsCheckBox.setSelected(k2jsCompilerSettings.sourcemap);
|
generateSourceMapsCheckBox.setSelected(k2jsCompilerSettings.sourcemap);
|
||||||
|
outputPrefixFile.setText(k2jsCompilerSettings.outputPrefix);
|
||||||
|
outputPostfixFile.setText(k2jsCompilerSettings.outputPostfix);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -117,4 +136,20 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
private void setGenerateNoWarnings(boolean selected) {
|
private void setGenerateNoWarnings(boolean selected) {
|
||||||
commonCompilerSettings.suppress = selected ? SUPPRESS_WARNINGS : null;
|
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