Skip to content
GitLab
    • Why GitLab
    • Pricing
    • Contact Sales
    • Explore
  • Why GitLab
  • Pricing
  • Contact Sales
  • Explore
  • Sign in
  • Get free trial
  • Protesilaos Stavrou
  • modus-themes modus-themes
  • Issues
  • #210

Idea: Simplification of user options

A few user options have grown to become quite complex, with a lot of repetition. Take modus-themes-mode-line for example, you have 3d/moody, borderless, and accented. Every time a new option is added, the number of legal values is multiplied.

I would like to propose converting user options like these from the cross-product of options, into sets of attributes. Last year, I suggested something along these lines for mu4e, which in the previous example would simplify the type down to

'(set :greedy t
      (choice (const :tag "No box effects, which are optimal for use with the `moody' library" moody)
	      (const :tag "Three-dimensional style for the active mode line" 3d))
      (const :tag "With colored background" borderless)
      (const :tag "With colored background" accented))

I set this specific variable to 'accented-3d, which would then become '(accented 3d).

I have not implemented any code yet, as I wanted to hear what you think about the suggestion. This would probably also require some transitional code, to convert old values to sets, so there would be a short-term increase in code and complexity, but the hope would be better long-term flexibility.

Assignee
Assign to
Time tracking