From 44b24ab4c1bd1833aab37cba83801b2023b8e0a9 Mon Sep 17 00:00:00 2001 From: Mark Delk Date: Mon, 13 Jul 2020 06:47:43 +0900 Subject: [ruby/reline] Support mode icon Co-authored-by: aycabta https://github.com/ruby/reline/commit/067b618123 --- lib/reline/config.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'lib/reline/config.rb') diff --git a/lib/reline/config.rb b/lib/reline/config.rb index 206be5be0e..9b8ddc0536 100644 --- a/lib/reline/config.rb +++ b/lib/reline/config.rb @@ -35,6 +35,10 @@ class Reline::Config show-all-if-ambiguous show-all-if-unmodified visible-stats + show-mode-in-prompt + vi-cmd-mode-icon + vi-ins-mode-icon + emacs-mode-string } VARIABLE_NAME_SYMBOLS = VARIABLE_NAMES.map { |v| :"#{v.tr(?-, ?_)}" } VARIABLE_NAME_SYMBOLS.each do |v| @@ -52,6 +56,9 @@ class Reline::Config @key_actors[:emacs] = Reline::KeyActor::Emacs.new @key_actors[:vi_insert] = Reline::KeyActor::ViInsert.new @key_actors[:vi_command] = Reline::KeyActor::ViCommand.new + @vi_cmd_mode_icon = '(cmd)' + @vi_ins_mode_icon = '(ins)' + @emacs_mode_string = '@' # https://tiswww.case.edu/php/chet/readline/readline.html#IDX25 @history_size = -1 # unlimited @keyseq_timeout = 500 @@ -253,6 +260,21 @@ class Reline::Config end when 'keyseq-timeout' @keyseq_timeout = value.to_i + when 'show-mode-in-prompt' + case value + when 'off' + @show_mode_in_prompt = false + when 'on' + @show_mode_in_prompt = true + else + @show_mode_in_prompt = false + end + when 'vi-cmd-mode-string' + @vi_cmd_mode_icon = value + when 'vi-ins-mode-string' + @vi_ins_mode_icon = value + when 'emacs-mode-string' + @emacs_mode_string = value when *VARIABLE_NAMES then variable_name = :"@#{name.tr(?-, ?_)}" instance_variable_set(variable_name, value.nil? || value == '1' || value == 'on') -- cgit v1.2.3