Asking this question because it's really hard to Google "emacs customize" and get to the feature.
You can specify variables using
defcustomso that you and others can then use Emacs’s
customizefeature to set their values. (You cannot use customize to write function definitions; but you can write
defunsin your .emacs file. Indeed, you can write any Lisp expression in your .emacs file.)
customizefeature depends on the
defcustommacro. Although you can use
setqfor variables that users set, the defcustom macro is designed for the job.
I haven't been able to figure out what "customize" is from this definition.
For completeness I am reading the
projectile.el source code where this is used (although I don't really expect the answer to depend on the package).