Really, the values in settings
and instance_settings
are not set in stone; they will contain keys for settings specific to that particular field type.
They're arbitrary variables whose values will be used as the default for the field settings form. Exactly the same goes for instance_settings
.
When you visit a page to edit settings for a field (e.g. admin/structure/types/manage/page/fields/body
) you'll see 2 fieldsets. One (the top one) is the instance settings
and the other is the field settings
.
The default values for the instance settings are garnered from instance_settings
on that field type's hook_field_info()
implementation, and the same goes for the field settings.
The only way to find out what each one of the pre-defined field settings names is, is to read through all field-providing modules. I can't imagine that information having been summarised anywhere as it wouldn't really make sense to do so.
For the specific example you gave, the authors of the text field module decided that there was a setting required for that field called text_processing
. So they defined that setting in hook_field_info()
, and it perpetuates its way across the system.
I don't think default_widget
and default_formatter
need any more explanation, the docs cover those completely (nothing more to be said about them really, they both accept a string and what that string should be is obvious if you read the argument descriptions).