11package com.picocode
22
33import com.intellij.openapi.application.ApplicationManager
4- import com.intellij.openapi.fileEditor.FileEditorManager
5- import com.intellij.openapi.fileEditor.OpenFileDescriptor
64import com.intellij.openapi.project.Project
7- import com.intellij.openapi.vfs.LocalFileSystem
85import com.intellij.ui.components.JBScrollPane
96import com.intellij.ui.components.JBTextArea
10- import com.intellij.ui.components.JBTextField
11- import com.intellij.util.ui.FormBuilder
127import java.awt.BorderLayout
13- import java.io.File
148import javax.swing.*
159import java.net.HttpURLConnection
1610import java.net.URL
@@ -23,10 +17,6 @@ import com.google.gson.JsonObject
2317 * Assumes PicoCode server is already running
2418 */
2519class PicoCodeToolWindowContent (private val project : Project ) {
26- // PicoCode server configuration (only host and port needed)
27- private val serverHostField = JBTextField (" localhost" )
28- private val serverPortField = JBTextField (" 8000" )
29-
3020 // Chat components
3121 private val chatArea = JBTextArea (25 , 60 )
3222 private val inputField = JBTextArea (3 , 60 )
@@ -42,26 +32,26 @@ class PicoCodeToolWindowContent(private val project: Project) {
4232 inputField.wrapStyleWord = true
4333 }
4434
45- private fun getServerHost (): String = serverHostField.text.trim().ifEmpty { " localhost" }
46- private fun getServerPort (): Int = serverPortField.text.trim().toIntOrNull() ? : 8000
35+ private fun getServerHost (): String {
36+ val settings = PicoCodeSettings .getInstance(project)
37+ return settings.state.serverHost
38+ }
39+
40+ private fun getServerPort (): Int {
41+ val settings = PicoCodeSettings .getInstance(project)
42+ return settings.state.serverPort
43+ }
4744
4845 fun getContent (): JComponent {
4946 val panel = JPanel (BorderLayout ())
5047
51- // Server config panel with re-index button
52- val configPanel = FormBuilder .createFormBuilder()
53- .addLabeledComponent(" PicoCode Host:" , serverHostField)
54- .addLabeledComponent(" PicoCode Port:" , serverPortField)
55- .panel
56-
57- // Add a re-index button to config panel
48+ // Add a re-index button at the top
5849 val reindexBtn = JButton (" Re-index Project" )
5950 reindexBtn.addActionListener {
6051 reindexProject()
6152 }
62- val configPanelWithButton = JPanel (BorderLayout ())
63- configPanelWithButton.add(configPanel, BorderLayout .CENTER )
64- configPanelWithButton.add(reindexBtn, BorderLayout .SOUTH )
53+ val topPanel = JPanel (BorderLayout ())
54+ topPanel.add(reindexBtn, BorderLayout .EAST )
6555
6656 // Chat display area
6757 val chatScrollPane = JBScrollPane (chatArea)
@@ -99,7 +89,7 @@ class PicoCodeToolWindowContent(private val project: Project) {
9989 inputPanel.add(buttonPanel, BorderLayout .SOUTH )
10090
10191 // Layout
102- panel.add(configPanelWithButton , BorderLayout .NORTH )
92+ panel.add(topPanel , BorderLayout .NORTH )
10393 panel.add(chatScrollPane, BorderLayout .CENTER )
10494 panel.add(inputPanel, BorderLayout .SOUTH )
10595
0 commit comments