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