You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: facet_field.rb
    path of file: ./repos/blacklight/lib/blacklight/configuration
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

module Blacklight
  class Configuration::FacetField < Blacklight::Configuration::Field
    ##
    # The following is a non-exhaustive list of facet config parameters that are used
    # by Blacklight directly. Application-specific code or plugins may add or replace
    # the parameters and behaviors specified below.
  
    
    def normalize! blacklight_config = nil
      query.stringify_keys! if query

      normalize_pivot_config! if pivot
      self.collapse = true if collapse.nil?
      self.show = true if show.nil?
      self.if = show if self.if.nil?
      self.index_range = 'A'..'Z' if index_range == true
      self.presenter ||= Blacklight::FacetFieldPresenter
      self.item_presenter ||= Blacklight::FacetItemPresenter
      self.component = Blacklight::FacetFieldListComponent if component.nil? || component == true
      self.advanced_search_component ||= Blacklight::FacetFieldCheckboxesComponent
      self.item_component ||= Blacklight::FacetItemComponent
      super

      if single && tag.blank? && ex.blank?
        self.tag = "#{key}_single"
        self.ex = "#{key}_single"
      end