Quite a few Emacs modes use (something like) forms: the customization interface is one of them, the Message mode (read: its header part) is another one; there are more of them, unfortunately not always very similar. By a "form" I mean here a buffer with read-only parts and places designated to enter text; it may or may not contain buttons (it probably should accept
C-c C-c as the confirmation/committing key, irrespective of the presence of an OK button).
I am particularly interested in auto-completion in the fields (and in particular, enabling fields with lists of values from some designated set, say, comma-separated). My question is: is there any Emacs library enabling easy (by "easy", I mean not reinventing the wheel) creation of such forms, or should I code everything myself?
(I imagine that what I should do in the latter case would be (1) set some parts of the buffer read-only, (2) prepare a special major mode, so that e.g.
S-TAB switch between "fields", and (3) maybe use something like Icicles or Helm for autocompletion.)