Suffix and group objects share some predicate slots that control whether a group or suffix should be available depending on some state. Only one of these slots can be used at the same time. It is undefined what happens if you use more than one.
if
Enable if predicate returns non-nil
.
if-not
Enable if predicate returns nil
.
if-non-nil
Enable if variable’s value is non-nil
.
if-nil
Enable if variable’s value is nil
.
if-mode
Enable if major-mode matches value.
if-not-mode
Enable if major-mode does not match value.
if-derived
Enable if major-mode derives from value.
if-not-derived
Enable if major-mode does not derive from value.
One more slot is shared between group and suffix classes, level
. Like
the slots documented above, it is a predicate, but it is used for a
different purpose. The value has to be an integer between 1
and 7. level
controls whether a suffix or a group should be
available depending on user preference.
See Enabling and Disabling Suffixes.