1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
### interactive_multiselect/demo

<details>
<summary>SHOW SOURCE</summary>
```go
package main
import (
"fmt"
"github.com/pterm/pterm"
)
func main() {
// Initialize an empty slice to hold the options.
var options []string
// Populate the options slice with 100 options.
for i := 0; i < 100; i++ {
options = append(options, fmt.Sprintf("Option %d", i))
}
// Add 5 more options to the slice, indicating the availability of fuzzy searching.
for i := 0; i < 5; i++ {
options = append(options, fmt.Sprintf("You can use fuzzy searching (%d)", i))
}
// Use PTerm's interactive multiselect to present the options to the user and capture their selections.
// The Show() method displays the options and waits for user input.
selectedOptions, _ := pterm.DefaultInteractiveMultiselect.WithOptions(options).Show()
// Print the selected options, highlighted in green.
pterm.Info.Printfln("Selected options: %s", pterm.Green(selectedOptions))
}
```
</details>
### interactive_multiselect/custom-checkmarks

<details>
<summary>SHOW SOURCE</summary>
```go
package main
import (
"fmt"
"github.com/pterm/pterm"
)
func main() {
// Initialize an empty slice to hold the options
var options []string
// Populate the options slice with 5 options
for i := 0; i < 5; i++ {
options = append(options, fmt.Sprintf("Option %d", i))
}
// Create a new interactive multiselect printer with the options
// Disable the filter and define the checkmark symbols
printer := pterm.DefaultInteractiveMultiselect.
WithOptions(options).
WithFilter(false).
WithCheckmark(&pterm.Checkmark{Checked: pterm.Green("+"), Unchecked: pterm.Red("-")})
// Show the interactive multiselect and get the selected options
selectedOptions, _ := printer.Show()
// Print the selected options
pterm.Info.Printfln("Selected options: %s", pterm.Green(selectedOptions))
}
```
</details>
### interactive_multiselect/custom-keys

<details>
<summary>SHOW SOURCE</summary>
```go
package main
import (
"atomicgo.dev/keyboard/keys"
"fmt"
"github.com/pterm/pterm"
)
func main() {
// Initialize an empty slice to hold the options
var options []string
// Populate the options slice with 5 options
for i := 0; i < 5; i++ {
options = append(options, fmt.Sprintf("Option %d", i))
}
// Create a new interactive multiselect printer with the options
// Disable the filter and set the keys for confirming and selecting options
printer := pterm.DefaultInteractiveMultiselect.
WithOptions(options).
WithFilter(false).
WithKeyConfirm(keys.Enter).
WithKeySelect(keys.Space)
// Show the interactive multiselect and get the selected options
selectedOptions, _ := printer.Show()
// Print the selected options
pterm.Info.Printfln("Selected options: %s", pterm.Green(selectedOptions))
}
```
</details>
|