()
| 180 | m.selected = remove(m.selected, selectedItem.value) |
| 181 | } else { |
| 182 | m.selected = append(m.selected, selectedItem.value) |
| 183 | } |
| 184 | case "enter": |
| 185 | m.quitting = true |
| 186 | return m, tea.Quit |
| 187 | case "a": |
| 188 | m.selected = []string{"project", "global"} |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | var cmd tea.Cmd |
| 193 | m.list, cmd = m.list.Update(msg) |
| 194 | return m, cmd |
| 195 | } |
| 196 | |
| 197 | func (m model) View() string { |
| 198 | var view strings.Builder |
| 199 | view.WriteString(style.Accent(m.list.Title) + "\n\n") |
| 200 | |
| 201 | if len(m.selected) > 0 { |
| 202 | view.WriteString(style.Accent("Selected: ")) |
| 203 | for i, sel := range m.selected { |
| 204 | if i > 0 { |
| 205 | view.WriteString(", ") |
| 206 | } |
| 207 | switch sel { |
| 208 | case "project": |
| 209 | view.WriteString(".lunacfg") |
| 210 | case "global": |
| 211 | view.WriteString(".lunarc") |
| 212 | } |
| 213 | } |
| 214 | view.WriteString("\n\n") |
| 215 | } |
| 216 | |
| 217 | for i, item := range m.list.Items() { |
| 218 | cfgItem := item.(configItem) |
| 219 | if i == m.list.Index() { |
| 220 | view.WriteString(style.Accent(style.IconAngleRight + " ")) |
| 221 | } else { |
| 222 | view.WriteString(" ") |
| 223 | } |
| 224 | |
| 225 | if contains(m.selected, cfgItem.value) || |
| 226 | (cfgItem.value == "both" && len(m.selected) == 2) || |
nothing calls this directly
no test coverage detected