Add multiselect board filters and letter-jump on picker menus.
Persist comma-separated list filters per project, toggle with space, and jump by first letter in board and project pickers. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -14,7 +14,8 @@ type Config struct {
|
||||
ActiveProject string `json:"activeProject"`
|
||||
DataDir string `json:"dataDir"`
|
||||
Theme string `json:"theme"`
|
||||
// ProjectLists maps project ID → board list id (all|backlog|in_progress|done).
|
||||
// ProjectLists maps project ID → comma-separated board list ids
|
||||
// (e.g. "all" or "backlog,in_progress").
|
||||
ProjectLists map[string]string `json:"projectLists,omitempty"`
|
||||
}
|
||||
|
||||
@@ -55,8 +56,8 @@ func (c *Config) ApplyDefaults(home string) {
|
||||
}
|
||||
}
|
||||
|
||||
// ActiveBoardList returns the persisted board list for a project (default: all).
|
||||
func (c *Config) ActiveBoardList(projectID string) string {
|
||||
// ActiveBoardLists returns the persisted board filter string for a project (default: "all").
|
||||
func (c *Config) ActiveBoardLists(projectID string) string {
|
||||
if c.ProjectLists == nil {
|
||||
return "all"
|
||||
}
|
||||
@@ -66,10 +67,10 @@ func (c *Config) ActiveBoardList(projectID string) string {
|
||||
return "all"
|
||||
}
|
||||
|
||||
// SetActiveBoardList stores the board list for a project.
|
||||
func (c *Config) SetActiveBoardList(projectID, listID string) {
|
||||
// SetActiveBoardLists stores the board filter string for a project.
|
||||
func (c *Config) SetActiveBoardLists(projectID, listIDs string) {
|
||||
if c.ProjectLists == nil {
|
||||
c.ProjectLists = map[string]string{}
|
||||
}
|
||||
c.ProjectLists[projectID] = listID
|
||||
c.ProjectLists[projectID] = listIDs
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user