@@ -5,13 +5,16 @@ package software.aws.toolkits.jetbrains.services.codewhisperer.settings
55
66import com.intellij.icons.AllIcons
77import com.intellij.ide.DataManager
8+ import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory
89import com.intellij.openapi.options.BoundConfigurable
910import com.intellij.openapi.options.Configurable
1011import com.intellij.openapi.options.SearchableConfigurable
1112import com.intellij.openapi.options.ex.Settings
1213import com.intellij.openapi.project.Project
14+ import com.intellij.openapi.ui.emptyText
1315import com.intellij.ui.components.ActionLink
1416import com.intellij.ui.components.fields.ExpandableTextField
17+ import com.intellij.ui.dsl.builder.Align
1518import com.intellij.ui.dsl.builder.bindIntText
1619import com.intellij.ui.dsl.builder.bindSelected
1720import com.intellij.ui.dsl.builder.bindText
@@ -24,6 +27,7 @@ import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWh
2427import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
2528import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.isCodeWhispererEnabled
2629import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings
30+ import software.aws.toolkits.jetbrains.settings.LspSettings
2731import software.aws.toolkits.resources.message
2832import java.awt.Font
2933import java.util.concurrent.TimeUnit
@@ -61,6 +65,25 @@ class CodeWhispererConfigurable(private val project: Project) :
6165 }
6266 }
6367
68+ group(" LSP" ) {
69+ row(" Select LSP Artifact" ) {
70+ val fileChooserDescriptor = FileChooserDescriptorFactory .createSingleFileDescriptor()
71+ .withExtensionFilter(" js" )
72+ fileChooserDescriptor.isForcedToUseIdeaFileChooser = true
73+
74+ textFieldWithBrowseButton(fileChooserDescriptor = fileChooserDescriptor)
75+ .bindText(
76+ { LspSettings .getInstance().getArtifactPath() },
77+ { LspSettings .getInstance().setExecutablePath(it.takeIf { v -> v.isNotBlank() }) }
78+ )
79+ .applyToComponent {
80+ emptyText.text = " Choose a file to upload"
81+ }
82+ .resizableColumn()
83+ .align(Align .FILL )
84+ }
85+ }
86+
6487 group(message(" aws.settings.codewhisperer.group.inline_suggestions" )) {
6588 row {
6689 checkBox(message(" aws.settings.codewhisperer.include_code_with_reference" )).apply {
0 commit comments