class RBS::CLI

def run_list(args, options)

def run_list(args, options)
  # @type var list: Set[:class | :module | :interface]
  list = Set[]
  OptionParser.new do |opts|
    opts.banner = <<EOB
e: rbs list [options...]
 classes, modules, and interfaces.
ples:
rbs list
rbs list --class --module --interface
ons:
    opts.on("--class", "List classes") { list << :class }
    opts.on("--module", "List modules") { list << :module }
    opts.on("--interface", "List interfaces") { list << :interface }
  end.order!(args)
  list.merge(_ = [:class, :module, :interface]) if list.empty?
  loader = options.loader()
  env = Environment.from_loader(loader).resolve_type_names
  if list.include?(:class) || list.include?(:module)
    env.class_decls.each do |name, entry|
      case entry
      when Environment::ModuleEntry
        if list.include?(:module)
          stdout.puts "#{name} (module)"
        end
      when Environment::ClassEntry
        if list.include?(:class)
          stdout.puts "#{name} (class)"
        end
      end
    end
  end
  if list.include?(:interface)
    env.interface_decls.each do |name, entry|
      stdout.puts "#{name} (interface)"
    end
  end
end