Skip to content

Commit 7324125

Browse files
committed
Refactor command structure and implement a new menu system; remove deprecated main menu items and enhance quick pick functionality
1 parent b92d8f5 commit 7324125

File tree

5 files changed

+42
-25
lines changed

5 files changed

+42
-25
lines changed

src/main/scala/functorcoder/actions/Commands.scala

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@ object Commands {
3636
(commandCreateFiles._1, commandCreateFiles._2(llm))
3737
)
3838

39-
// the main menu items
40-
val mainMenuItems: Seq[(String, () => Unit)] = Seq(
41-
"create files" -> { () => println("create files") }
42-
)
43-
4439
// individual command handlers
4540
def addDocumentation(arg: Any) = {
4641
val param =

src/main/scala/functorcoder/actions/createFiles.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package functorcoder.actions
22

3-
import scala.collection.mutable.ArrayBuffer
43
import com.doofin.stdScala.dataTypes.Tree.TreeNode
54
import functorcoder.algo.treeParse
65
import vscextension.facade.vscodeUtils.showMessageAndLog
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package functorcoder.editorUI
2+
3+
import vscextension.facade.vscodeUtils.*
4+
5+
object menu {
6+
case class Menu(
7+
title: String, //
8+
menuItems: Seq[(String, () => Unit)]
9+
)
10+
// the menu items
11+
val mainMenuItems: Seq[(String, () => Unit)] = Seq(
12+
"create files" -> { () => showMessageAndLog("create files") },
13+
"disable autocomplete" -> { () => showMessageAndLog("disable autocomplete") }
14+
)
15+
16+
// the main menu
17+
val myMenu = Menu(
18+
title = "functorcoder menu",
19+
menuItems = mainMenuItems
20+
)
21+
}

src/main/scala/vscextension/facade/InlineEdit.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import scala.scalajs.js
55

66
import typings.vscode.mod as vscode
77
import typings.vscode.mod.Command
8-
import scala.scalajs.js.Promise
98

109
/** a dialog in the editor that users can accept or reject
1110
*

src/main/scala/vscextension/quickPick.scala

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
package vscextension
22

3-
import scala.concurrent.ExecutionContext.Implicits.global
43
import scala.scalajs.js
54
import scala.scalajs.js.JSConverters._
65

76
import typings.vscode.mod as vscode
87

9-
import facade.vscodeUtils.*
10-
import functorcoder.actions.Commands
118

129
/** Show a quick pick palette to select items in multiple steps
1310
*
@@ -56,30 +53,35 @@ object quickPick {
5653
}
5754

5855
def showQuickPick(arg: Any): Unit = {
59-
val items =
60-
Commands.mainMenuItems.map(_._1).toJSArray
56+
val mMenu = functorcoder.editorUI.menu.myMenu
6157

6258
val quickPick: vscode.QuickPick[vscode.QuickPickItem] =
6359
vscode.window.createQuickPick()
6460

65-
quickPick.title = "Quick Pick"
66-
quickPick.placeholder = "pick one item"
67-
quickPick.totalSteps = 3
61+
quickPick.title = mMenu.title
62+
quickPick.placeholder = "select an action"
63+
// quickPick.totalSteps = 3
6864
quickPick.buttons = js.Array(vscode.QuickInputButtons.Back)
6965

70-
// option items for user to pick
71-
quickPick.items = items.map { itemStr => //
66+
// set the items in the quick pick
67+
quickPick.items = mMenu.menuItems.map(_._1).toJSArray.map { itemStr => //
7268
vscode
73-
.QuickPickItem(itemStr)
74-
.setAlwaysShow(true)
75-
.setButtons(js.Array(vscode.QuickInputButtons.Back))
76-
.setDescription(itemStr + " description")
77-
.setDetail(itemStr + " detail")
69+
.QuickPickItem(itemStr) // label is itemStr
70+
// .setAlwaysShow(true)
71+
// .setButtons(js.Array(vscode.QuickInputButtons.Back))
72+
.setDescription(itemStr)
73+
// .setDetail(itemStr + " detail")
7874
}
7975

8076
quickPick.onDidChangeSelection { selection =>
81-
println(s"selected: ${selection(0).label}")
82-
if (selection(0).label == "item1") {
77+
val selectedLabel = selection(0).label
78+
// execute the function associated with the selected item
79+
mMenu.menuItems.find(_._1 == selectedLabel).foreach { (_, fun) =>
80+
fun()
81+
quickPick.hide()
82+
}
83+
84+
/* if (selection(0).label == "item1") {
8385
println(s"selected: ${selection(0).label}")
8486
8587
// show another input box after selecting item1
@@ -93,7 +95,8 @@ object quickPick {
9395
showMessage("input: " + input)
9496
}
9597
96-
}
98+
} */
99+
97100
}
98101

99102
quickPick.onDidHide({ _ =>

0 commit comments

Comments
 (0)