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.)
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.)