tecosaur / About.jl

Mirror of https://code.tecosaur.net/tec/About.jl
Mozilla Public License 2.0
130 stars 7 forks source link

Method effects description confusing when double negatives are used #11

Closed kdheepak closed 5 months ago

kdheepak commented 6 months ago

Great job on this package!

If I can make a suggestion, here's a screenshot you shared on Slack:

image

When consistent has a X next to it, I can mentally parse it as not consistent

  • [ ] consistent - might not return or terminate consistently
  • [x] terminates - guaranteed to always terminate

Should it should be the same for no undefined behaviour? When there's a X next to no undefined behaviour, I'm reading this as no no undefined behaviour.

  • [ ] no undefined behaviour - may execute undefined behaviour

Is there alternative naming that would help? Maybe safe instead of no undefined? It would read like so:

  • [ ] safe behaviour - may execute undefined behaviour

I believe you are choosing the property name to always remain the same across different invocations of this function, and checkbox and the description change based on the value of the property. Is there a way to make that more obvious? Perhaps the checkbox and description should be closer to each other? The checkbox in the middle of the property and the description? Color the description the same as the checkbox but leave the property names gray in color? fwiw, red and green are not so great for people with red green color blindness.

I like that you've chosen formatting and colors that are copy paste friendly, and would like to preserve that feature. I'm just wondering about more effective ways to communicate the same information.

tecosaur commented 6 months ago

Thanks for the complements, and the issue!

Yea, I can absolutely see how this is confusing. I think it can be pinned on the mix of these two things:

So this issues is essentially a conflict between two things:

I'm not sure how this should best be resolved.

tecosaur commented 5 months ago

Just one note that I missed when initially reading this:

fwiw, red and green are not so great for people with red green color blindness.

I'm well aware :wink:

That's why we use StyledStrings and semantic face names :slightly_smiling_face:

# ~/.julia/config/faces.toml
success = { fg = "blue" }
warning = { fg = "cyan", italic = true }
error = { fg = "magenta" }

and you'll get

image

kdheepak commented 5 months ago

I'll close this issue as this is intentional design.

tecosaur commented 5 months ago

Well, I'd say the colouring is "no need to fix", and the wording/layout is done in an attempt to match the Core.Compiler.Effects property names, but I'm very much open to tweaking the wording/layout if I can make it clearer while keeping the property name matching :slightly_smiling_face: