Add 'Kotlin Scripting' configuration tab
^KT-24465 In Progress
This commit is contained in:
+1
-1
@@ -124,7 +124,7 @@ class ScriptDefinitionsManager(private val project: Project) : LazyScriptDefinit
|
||||
updateDefinitions()
|
||||
}
|
||||
|
||||
fun getAllDefinitions() = currentDefinitions
|
||||
fun getAllDefinitions() = currentDefinitions.toList()
|
||||
|
||||
override fun getDefaultScriptDefinition(): KotlinScriptDefinition {
|
||||
return StandardIdeScriptDefinition(project)
|
||||
|
||||
@@ -491,9 +491,13 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
displayName="Kotlin Compiler"
|
||||
parentId="project.propCompiler"/>
|
||||
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin Updates" id="preferences.language.Kotlin"
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin" id="preferences.language.Kotlin"
|
||||
instance="org.jetbrains.kotlin.idea.configuration.KotlinUpdatesSettingsConfigurable"/>
|
||||
|
||||
<projectConfigurable groupId="language" displayName="Kotlin Scripting" id="preferences.language.Kotlin.scripting"
|
||||
instance="org.jetbrains.kotlin.idea.script.configuration.KotlinScriptingSettingsConfigurable"
|
||||
parentId="preferences.language.Kotlin"/>
|
||||
|
||||
<qualifiedNameProvider implementation="org.jetbrains.kotlin.idea.actions.KotlinQualifiedNameProvider"/>
|
||||
|
||||
<codeInsight.parameterInfo language="kotlin" implementationClass="org.jetbrains.kotlin.idea.parameterInfo.KotlinFunctionParameterInfoHandler"/>
|
||||
|
||||
@@ -489,9 +489,13 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
displayName="Kotlin Compiler"
|
||||
parentId="project.propCompiler"/>
|
||||
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin Updates" id="preferences.language.Kotlin"
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin" id="preferences.language.Kotlin"
|
||||
instance="org.jetbrains.kotlin.idea.configuration.KotlinUpdatesSettingsConfigurable"/>
|
||||
|
||||
<projectConfigurable groupId="language" displayName="Kotlin Scripting" id="preferences.language.Kotlin.scripting"
|
||||
instance="org.jetbrains.kotlin.idea.script.configuration.KotlinScriptingSettingsConfigurable"
|
||||
parentId="preferences.language.Kotlin"/>
|
||||
|
||||
<qualifiedNameProvider implementation="org.jetbrains.kotlin.idea.actions.KotlinQualifiedNameProvider"/>
|
||||
|
||||
<codeInsight.parameterInfo language="kotlin" implementationClass="org.jetbrains.kotlin.idea.parameterInfo.KotlinFunctionParameterInfoHandler"/>
|
||||
|
||||
@@ -490,9 +490,13 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
displayName="Kotlin Compiler"
|
||||
parentId="project.propCompiler"/>
|
||||
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin Updates" id="preferences.language.Kotlin"
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin" id="preferences.language.Kotlin"
|
||||
instance="org.jetbrains.kotlin.idea.configuration.KotlinUpdatesSettingsConfigurable"/>
|
||||
|
||||
<projectConfigurable groupId="language" displayName="Kotlin Scripting" id="preferences.language.Kotlin.scripting"
|
||||
instance="org.jetbrains.kotlin.idea.script.configuration.KotlinScriptingSettingsConfigurable"
|
||||
parentId="preferences.language.Kotlin"/>
|
||||
|
||||
<qualifiedNameProvider implementation="org.jetbrains.kotlin.idea.actions.KotlinQualifiedNameProvider"/>
|
||||
|
||||
<codeInsight.parameterInfo language="kotlin" implementationClass="org.jetbrains.kotlin.idea.parameterInfo.KotlinFunctionParameterInfoHandler"/>
|
||||
|
||||
@@ -491,9 +491,13 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
displayName="Kotlin Compiler"
|
||||
parentId="project.propCompiler"/>
|
||||
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin Updates" id="preferences.language.Kotlin"
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin" id="preferences.language.Kotlin"
|
||||
instance="org.jetbrains.kotlin.idea.configuration.KotlinUpdatesSettingsConfigurable"/>
|
||||
|
||||
<projectConfigurable groupId="language" displayName="Kotlin Scripting" id="preferences.language.Kotlin.scripting"
|
||||
instance="org.jetbrains.kotlin.idea.script.configuration.KotlinScriptingSettingsConfigurable"
|
||||
parentId="preferences.language.Kotlin"/>
|
||||
|
||||
<qualifiedNameProvider implementation="org.jetbrains.kotlin.idea.actions.KotlinQualifiedNameProvider"/>
|
||||
|
||||
<codeInsight.parameterInfo language="kotlin" implementationClass="org.jetbrains.kotlin.idea.parameterInfo.KotlinFunctionParameterInfoHandler"/>
|
||||
|
||||
@@ -489,9 +489,13 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
displayName="Kotlin Compiler"
|
||||
parentId="project.propCompiler"/>
|
||||
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin Updates" id="preferences.language.Kotlin"
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin" id="preferences.language.Kotlin"
|
||||
instance="org.jetbrains.kotlin.idea.configuration.KotlinUpdatesSettingsConfigurable"/>
|
||||
|
||||
<projectConfigurable groupId="language" displayName="Kotlin Scripting" id="preferences.language.Kotlin.scripting"
|
||||
instance="org.jetbrains.kotlin.idea.script.configuration.KotlinScriptingSettingsConfigurable"
|
||||
parentId="preferences.language.Kotlin"/>
|
||||
|
||||
<qualifiedNameProvider implementation="org.jetbrains.kotlin.idea.actions.KotlinQualifiedNameProvider"/>
|
||||
|
||||
<codeInsight.parameterInfo language="kotlin" implementationClass="org.jetbrains.kotlin.idea.parameterInfo.KotlinFunctionParameterInfoHandler"/>
|
||||
|
||||
@@ -489,9 +489,13 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
displayName="Kotlin Compiler"
|
||||
parentId="project.propCompiler"/>
|
||||
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin Updates" id="preferences.language.Kotlin"
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin" id="preferences.language.Kotlin"
|
||||
instance="org.jetbrains.kotlin.idea.configuration.KotlinUpdatesSettingsConfigurable"/>
|
||||
|
||||
<projectConfigurable groupId="language" displayName="Kotlin Scripting" id="preferences.language.Kotlin.scripting"
|
||||
instance="org.jetbrains.kotlin.idea.script.configuration.KotlinScriptingSettingsConfigurable"
|
||||
parentId="preferences.language.Kotlin"/>
|
||||
|
||||
<qualifiedNameProvider implementation="org.jetbrains.kotlin.idea.actions.KotlinQualifiedNameProvider"/>
|
||||
|
||||
<codeInsight.parameterInfo language="kotlin" implementationClass="org.jetbrains.kotlin.idea.parameterInfo.KotlinFunctionParameterInfoHandler"/>
|
||||
|
||||
@@ -490,9 +490,13 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||
displayName="Kotlin Compiler"
|
||||
parentId="project.propCompiler"/>
|
||||
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin Updates" id="preferences.language.Kotlin"
|
||||
<applicationConfigurable groupId="language" displayName="Kotlin" id="preferences.language.Kotlin"
|
||||
instance="org.jetbrains.kotlin.idea.configuration.KotlinUpdatesSettingsConfigurable"/>
|
||||
|
||||
<projectConfigurable groupId="language" displayName="Kotlin Scripting" id="preferences.language.Kotlin.scripting"
|
||||
instance="org.jetbrains.kotlin.idea.script.configuration.KotlinScriptingSettingsConfigurable"
|
||||
parentId="preferences.language.Kotlin"/>
|
||||
|
||||
<qualifiedNameProvider implementation="org.jetbrains.kotlin.idea.actions.KotlinQualifiedNameProvider"/>
|
||||
|
||||
<codeInsight.parameterInfo language="kotlin" implementationClass="org.jetbrains.kotlin.idea.parameterInfo.KotlinFunctionParameterInfoHandler"/>
|
||||
|
||||
@@ -53,7 +53,7 @@ class KotlinUpdatesSettingsConfigurable : SearchableConfigurable, Configurable.N
|
||||
|
||||
override fun getId(): String = ID
|
||||
|
||||
override fun getDisplayName(): String = "Kotlin Updates"
|
||||
override fun getDisplayName(): String = "Kotlin"
|
||||
|
||||
override fun isModified() = false
|
||||
|
||||
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.script.configuration
|
||||
|
||||
import com.intellij.util.ui.ColumnInfo
|
||||
import com.intellij.util.ui.ListTableModel
|
||||
import org.jetbrains.kotlin.idea.core.script.StandardIdeScriptDefinition
|
||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||
import org.jetbrains.kotlin.scripting.compiler.plugin.KotlinScriptDefinitionAdapterFromNewAPIBase
|
||||
|
||||
class KotlinScriptDefinitionsModel(definitions: ArrayList<KotlinScriptDefinition>) :
|
||||
ListTableModel<KotlinScriptDefinition>(
|
||||
arrayOf(
|
||||
ScriptDefinitionName(),
|
||||
ScriptDefinitionPattern()
|
||||
),
|
||||
definitions,
|
||||
0
|
||||
) {
|
||||
|
||||
private class ScriptDefinitionName : ColumnInfo<KotlinScriptDefinition, String>("Name") {
|
||||
override fun valueOf(item: KotlinScriptDefinition) = item.name
|
||||
}
|
||||
|
||||
private class ScriptDefinitionPattern : ColumnInfo<KotlinScriptDefinition, String>("Pattern/Extension") {
|
||||
override fun valueOf(item: KotlinScriptDefinition): String {
|
||||
return when (item) {
|
||||
is KotlinScriptDefinitionFromAnnotatedTemplate -> item.scriptFilePattern.pattern
|
||||
is KotlinScriptDefinitionAdapterFromNewAPIBase -> item.fileExtension
|
||||
is StandardIdeScriptDefinition -> KotlinParserDefinition.STD_SCRIPT_EXT
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="org.jetbrains.kotlin.idea.script.configuration.KotlinScriptingSettingsConfigurable">
|
||||
<grid id="27dc6" binding="root" layout-manager="GridLayoutManager" row-count="1" 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="565" height="510"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<grid id="6126a" layout-manager="GridLayoutManager" row-count="2" 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>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<vspacer id="7a19">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
<grid id="b9ce9" layout-manager="GridLayoutManager" row-count="2" 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>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<clientProperties>
|
||||
<BorderFactoryClass class="java.lang.String" value="com.intellij.ui.IdeBorderFactory$PlainSmallWithoutIndent"/>
|
||||
</clientProperties>
|
||||
<border type="etched" title="Script definitions" noi18n="true"/>
|
||||
<children>
|
||||
<grid id="5ec35" binding="panelScriptDefinitionsChooser" layout-manager="GridLayoutManager" row-count="1" 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>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children/>
|
||||
</grid>
|
||||
<component id="9988" class="com.intellij.ui.components.JBLabel">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<componentStyle value="SMALL"/>
|
||||
<fontColor value="BRIGHTER"/>
|
||||
<text value="Manage script definitions" noi18n="true"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
package org.jetbrains.kotlin.idea.script.configuration;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.intellij.openapi.options.Configurable;
|
||||
import com.intellij.openapi.options.SearchableConfigurable;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.ui.ToolbarDecorator;
|
||||
import com.intellij.ui.table.TableView;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class KotlinScriptingSettingsConfigurable implements SearchableConfigurable, Configurable.NoScroll {
|
||||
private JPanel root;
|
||||
private JPanel panelScriptDefinitionsChooser;
|
||||
|
||||
private KotlinScriptDefinitionsModel model;
|
||||
|
||||
private final ScriptDefinitionsManager manager;
|
||||
|
||||
public KotlinScriptingSettingsConfigurable(Project project) {
|
||||
manager = ScriptDefinitionsManager.Companion.getInstance(project);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public JComponent createComponent() {
|
||||
model = new KotlinScriptDefinitionsModel(Lists.newArrayList(manager.getAllDefinitions()));
|
||||
|
||||
panelScriptDefinitionsChooser.setLayout(new BorderLayout());
|
||||
panelScriptDefinitionsChooser.add(
|
||||
ToolbarDecorator.createDecorator(new TableView<>(model))
|
||||
.disableAddAction()
|
||||
.disableRemoveAction()
|
||||
.createPanel()
|
||||
);
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isModified() {
|
||||
return !model.getItems().equals(manager.getAllDefinitions());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply() {
|
||||
// todo
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
// todo
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Nls
|
||||
public String getDisplayName() {
|
||||
return "Kotlin Scripting";
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getId() {
|
||||
return "preferences.language.Kotlin.scripting";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user