@@ -40,6 +40,8 @@ type Completions interface {
4040 Query() string // Returns the current filter query
4141 KeyMap() KeyMap
4242 Position() (int, int) // Returns the X and Y position of the completions popup
43+ Width() int
44+ Height() int
4345}
4446
4547type completionsCmp struct {
@@ -54,6 +56,8 @@ type completionsCmp struct {
5456 query string // The current filter query
5557}
5658
59+const maxCompletionsWidth = 80 // Maximum width for the completions popup
60+
5761func New() Completions {
5862 completionsKeyMap := DefaultKeyMap()
5963 keyMap := list.DefaultKeyMap()
@@ -92,7 +96,7 @@ func (c *completionsCmp) Init() tea.Cmd {
9296func (c *completionsCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
9397 switch msg := msg.(type) {
9498 case tea.WindowSizeMsg:
95− c.width = min(msg.Width-c.x, 80)
99+ c.width = min(msg.Width-c.x, maxCompletionsWidth)
96100 c.height = min(msg.Height-c.y, 15)
97101 return c, nil
98102 case tea.KeyPressMsg:
@@ -194,3 +198,11 @@ func (c *completionsCmp) KeyMap() KeyMap {
194198func (c *completionsCmp) Position() (int, int) {
195199 return c.x, c.y - c.height
196200}
201+
202+func (c *completionsCmp) Width() int {
203+ return c.width
204+}
205+
206+func (c *completionsCmp) Height() int {
207+ return c.height
208+}