diff --git a/lib/irb/cmd/ls.rb b/lib/irb/cmd/ls.rb index f4a7348bd..6a30a28ea 100644 --- a/lib/irb/cmd/ls.rb +++ b/lib/irb/cmd/ls.rb @@ -10,7 +10,7 @@ module IRB module ExtendCommand class Ls < Nop def execute(*arg, grep: nil) - o = Output.new(grep: grep) + o = Output.new(grep: grep, colorable: colorable) obj = arg.empty? ? irb_context.workspace.main : arg.first locals = arg.empty? ? irb_context.workspace.binding.local_variables : [] @@ -45,7 +45,8 @@ def class_method_map(classes) class Output MARGIN = " " - def initialize(grep: nil) + def initialize(grep: nil, colorable: true) + @colorable = colorable @grep = grep @line_width = screen_width - MARGIN.length # right padding end @@ -56,7 +57,7 @@ def dump(name, strs) return if strs.empty? # Attempt a single line - print "#{Color.colorize(name, [:BOLD, :BLUE])}: " + print "#{Color.colorize(name, [:BOLD, :BLUE], colorable: @colorable)}: " if fits_on_line?(strs, cols: strs.size, offset: "#{name}: ".length) puts strs.join(MARGIN) return diff --git a/lib/irb/cmd/nop.rb b/lib/irb/cmd/nop.rb index 881a73672..17ff2f9b7 100644 --- a/lib/irb/cmd/nop.rb +++ b/lib/irb/cmd/nop.rb @@ -29,9 +29,10 @@ def self.execute(conf, *opts, &block) def initialize(conf) @irb_context = conf + @colorable = Color.colorable? && conf.use_colorize end - attr_reader :irb_context + attr_reader :irb_context, :colorable def irb @irb_context.irb diff --git a/lib/irb/cmd/show_source.rb b/lib/irb/cmd/show_source.rb index f8a17822d..7e790c3c9 100644 --- a/lib/irb/cmd/show_source.rb +++ b/lib/irb/cmd/show_source.rb @@ -30,7 +30,7 @@ def show_source(source) puts puts "#{bold("From")}: #{source.file}:#{source.first_line}" puts - code = IRB::Color.colorize_code(File.read(source.file)) + code = IRB::Color.colorize_code(File.read(source.file), colorable: colorable) puts code.lines[(source.first_line - 1)...source.last_line].join puts end @@ -78,7 +78,7 @@ def find_end(file, first_line) end def bold(str) - Color.colorize(str, [:BOLD]) + Color.colorize(str, [:BOLD], colorable: colorable) end Source = Struct.new(