On Mon, Apr 2, 2018 at 4:51 PM, Jonathan Tan <jonathantanmy@xxxxxxxxxx> wrote: > On Mon, 2 Apr 2018 15:48:52 -0700 > Stefan Beller <sbeller@xxxxxxxxxx> wrote: > >> At the time the move coloring was implemented we thought an enum of modes >> is the best to configure this feature. However as we want to tack on new >> features, the enum would grow exponentially. >> >> Refactor the code such that features are enabled via bits. Currently we can >> * activate the move detection, >> * enable the block detection on top, and >> * enable the dimming inside a block, though this could be done without >> block detection as well (mode "plain, dimmed") > > Firstly, patches 1-4 are obviously correct. > > As for this patch, I don't think that using flags is the right way to do > this. We are not under any size pressure for struct diff_options, and > the additional options that we plan to add (color-moved-whitespace-flags > and ignore-space-delta) can easily be additional fields instead. Gah! I'll give it a try. When I came to the conclusion that the features of this series is orthogonal to the existing code, bit fields came first to mind. Let's see if the alternative is easier to read.