Skip to content

Feature Request: Inline color assignment for custom tags to prevent index misalignment #130

Description

@18878561964

Current Behavior
The extension provides default sequential colors when no custom colors are set, which works well. However, when using custom colors, the current implementation requires maintaining two separate ordered lists (better-todo-tree.general.tags and better-todo-tree.highlights.backgroundColourScheme).
If I remove a tag from the middle of the list, I must also carefully remove the corresponding color at the same index. Otherwise, all subsequent tags will be mapped to the wrong colors, causing widespread misalignment.

Pain Point
This index-based coupling is fragile and error-prone. Managing two parallel arrays where positional alignment is critical creates unnecessary friction during configuration edits.

Desired Behavior
Allow colors to be specified inline with each tag, similar to a key-value pair structure. For example:
"better-todo-tree.general.tags": [
{ "tag": "TODO", "color": "#FF0000" },
{ "tag": "FIXME", "color": "#FFA500" },
"HACK"
]
or
"better-todo-tree.general.tags": [
{ "TODO": "#FF0000" },
{ "FIXME": "#FFA500" },
"HACK"
]
or
"better-todo-tree.general.tags": [
{ "TODO": "#FF0000" },
{ "FIXME": "#FFA500" },
{ "HACK": "auto" }
]

When a color is explicitly provided, use it; when omitted (like "HACK" above), fall back to the existing sequential default color scheme. This preserves the current convenience while eliminating the index-dependency problem.

(Note: I described my specific situation and had AI generate the corresponding description, due to my limited English proficiency.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions