How do you set a default input text format per content type? I want to be able to set a different default input text format per content type and per content field.

For example, the format type choices might be "Plain text" and "Rich text editor" and in some cases I want the format to default to "Rich text editor" but keep "Plain text" as a choice in the dropdown. I know that I can change the order of the text formats to make "Rich text editor" the first choice, but this method changes all of them, that's not what I want to do.
In the absence of a stable release of Better Formats module, you can create a custom module to do this for specific content types or fields.

Create a module (modulename.info and modulename.module, inside a folder 'modulename'). Example:
default_text_format.module:

&lt;?php
/**
* Implements hook_element_info_alter().
*
* Sets the text format processor to a custom callback function.
* This code is taken from the Better Formats module.
*/
function default_text_format_element_info_alter(&amp;$type) {
  if (isset($type['text_format']['#process'])) {
    foreach ($type['text_format']['#process'] as &amp;$callback) {
      if ($callback === 'filter_process_format') {
        $callback = 'default_text_format_filter_process_format';
      }
    }
  }
}

/**
* Callback for MODULENAME_element_info_alter().
*/
function default_text_format_filter_process_format($element) {
  $element = filter_process_format($element);
  // Change input format to "Filtered HTML" for body fields of article nodes
  if ($element['#bundle'] == 'article' &amp;&amp; $element['#field_name'] == 'body') {
    $element['format']['format']['#default_value'] = 'filtered_html';
  }
  return $element;
}


And default_text_format.info:

name = Default text format
description = Adapt the module code to set a default format for a content type.
package = Custom modules
core = "7.x"


Put these files in a folder 'default_text_format' in sites/all/modules/custom.

Change bundle name as appropriate for your content type. And you can substitute 'body' with your own 'field_contenttype_fieldname'. (After this comment / better_formats code.)