leodevbro / vscode-blockman

VSCode extension to highlight nested code blocks
https://github.com/leodevbro/vscode-blockman
MIT License
345 stars 16 forks source link

Suggestion: add an "empty" color theme #60

Closed tlemo closed 2 years ago

tlemo commented 2 years ago

With the new advanced coloring settings, it may be nice to provide an empty color theme to avoid different color setting fighting each other, for ex the equivalent of:

    "blockman.n05CustomColorOfDepth0": "none",
    "blockman.n06CustomColorOfDepth1": "none",
    "blockman.n09CustomColorOfDepth4": "none",
    "blockman.n07CustomColorOfDepth2": "none",
    "blockman.n08CustomColorOfDepth3": "none",
    "blockman.n10CustomColorOfDepth5": "none",
    "blockman.n11CustomColorOfDepth6": "none",
    "blockman.n12CustomColorOfDepth7": "none",
    "blockman.n13CustomColorOfDepth8": "none",
    "blockman.n14CustomColorOfDepth9": "none",
    "blockman.n15CustomColorOfDepth10": "none",
    "blockman.n20CustomColorOfDepth0Border": "none",
leodevbro commented 2 years ago

Interesting idea, but the thing is that the advanced coloring settings have higher priority than basic coloring settings, so it's natural that colors from advanced settings will override colors from basic settings. And I think it is a nice approach. I don't see colors fighting each other because user can explicitly control the priorities. One more thing is the 'basic' keyword in the advanced coloring fields. If you type 'basic' as a color name, it will get color (the color of the corresponding block) from basic color settings, it's very useful. so, making an empty color theme will kinda make you lose the foundation of basic colors, and it means you kinda lose some control.

also, this:

"blockman.n05CustomColorOfDepth0": "none",
"blockman.n06CustomColorOfDepth1": "none",
"blockman.n09CustomColorOfDepth2": "none",
"blockman.n07CustomColorOfDepth3": "none",
"blockman.n08CustomColorOfDepth4": "none",
"blockman.n10CustomColorOfDepth5": "none",
"blockman.n11CustomColorOfDepth6": "none",
"blockman.n12CustomColorOfDepth7": "none",
"blockman.n13CustomColorOfDepth8": "none",
"blockman.n14CustomColorOfDepth9": "none",
"blockman.n15CustomColorOfDepth10": "none",
"blockman.n20CustomColorOfDepth0Border": "none",

can be written shorter like this (It is basically the same as above):

"blockman.n33A01B2FromDepth0ToInwardForAllBackgrounds": "10,0,0,1; none",
"blockman.n33A01B1FromDepth0ToInwardForAllBorders": "10,0,0,0; none", // or you can type '1' for last number, so it will apply to all borders
tlemo commented 2 years ago

Thanks for the explanation. Is the priority scheme documented anywhere?

leodevbro commented 2 years ago

Yeah, it's kinda documented:

2022-01-01_23-59-56

The idea is simple. All the 10 advanced color settings have higher priority than basic coloring settings. The "priority number" (the first number, which you can change for your preferences) in advanced coloring fields is only for advanced settings to prioritize advanced coloring fields compared to each other. So, advanced field with priority 0 (or let's say -70 [minus seventy]) will be overridden by advanced field with priority 5, but it has still higher priority than basic coloring settings because it is advanced coloring field.