def language(name = nil, &block)
      return @language unless name and block_given?

      previous_language = self.language
      @language = name
      block.arity == 0 ? instance_eval(&block) : yield(self)
      @language = previous_language
    end
def language(name = nil, &block)
      return @language unless name and block_given?

      previous_language = self.language
      @language = name
      block.arity == 0 ? instance_eval(&block) : yield(self)
      @language = previous_language
    end
Return the language

 If a name and a block is passed the language will be temporarily set to
 name inside the block.

 @example
   scheme.language :ruby do |s|
     s.hi(:InstanceVariable)
     s.hi(:ClassVariable)
   end
   scheme.highlights.any? { |h| h.group == :rubyClassVarible } # => true

 @param [String,Symbol] name
   the language to temporarily set if a block is given

 @yieldparam [Vic::Colorscheme]
   the colorscheme

 @return [String,Symbol]
   the language setting

 @api public