[ruby/reline] allow space in config value
(https://github.com/ruby/reline/pull/705) * allow space in config value fix https://github.com/ruby/reline/pull/657 * remove inline comments * Revert "remove inline comments" This reverts commit https://github.com/ruby/reline/commit/2438347c1a10. * refactoring * remove unnecessary comment handling https://github.com/ruby/reline/commit/d60f1e1e39
This commit is contained in:
parent
d2c4363e0c
commit
508f331048
@ -182,9 +182,10 @@ class Reline::Config
|
||||
next if if_stack.any? { |_no, skip| skip }
|
||||
|
||||
case line
|
||||
when /^set +([^ ]+) +([^ ]+)/i
|
||||
var, value = $1.downcase, $2
|
||||
bind_variable(var, value)
|
||||
when /^set +([^ ]+) +(.+)/i
|
||||
# value ignores everything after a space, raw_value does not.
|
||||
var, value, raw_value = $1.downcase, $2.partition(' ').first, $2
|
||||
bind_variable(var, value, raw_value)
|
||||
next
|
||||
when /\s*("#{KEYSEQ_PATTERN}+")\s*:\s*(.*)\s*$/o
|
||||
key, func_name = $1, $2
|
||||
@ -234,7 +235,7 @@ class Reline::Config
|
||||
end
|
||||
end
|
||||
|
||||
def bind_variable(name, value)
|
||||
def bind_variable(name, value, raw_value)
|
||||
case name
|
||||
when 'history-size'
|
||||
begin
|
||||
@ -259,7 +260,7 @@ class Reline::Config
|
||||
when 'completion-query-items'
|
||||
@completion_query_items = value.to_i
|
||||
when 'isearch-terminators'
|
||||
@isearch_terminators = retrieve_string(value)
|
||||
@isearch_terminators = retrieve_string(raw_value)
|
||||
when 'editing-mode'
|
||||
case value
|
||||
when 'emacs'
|
||||
@ -301,11 +302,11 @@ class Reline::Config
|
||||
@show_mode_in_prompt = false
|
||||
end
|
||||
when 'vi-cmd-mode-string'
|
||||
@vi_cmd_mode_string = retrieve_string(value)
|
||||
@vi_cmd_mode_string = retrieve_string(raw_value)
|
||||
when 'vi-ins-mode-string'
|
||||
@vi_ins_mode_string = retrieve_string(value)
|
||||
@vi_ins_mode_string = retrieve_string(raw_value)
|
||||
when 'emacs-mode-string'
|
||||
@emacs_mode_string = retrieve_string(value)
|
||||
@emacs_mode_string = retrieve_string(raw_value)
|
||||
when *VARIABLE_NAMES then
|
||||
variable_name = :"@#{name.tr(?-, ?_)}"
|
||||
instance_variable_set(variable_name, value.nil? || value == '1' || value == 'on')
|
||||
|
@ -459,6 +459,17 @@ class Reline::Config::Test < Reline::TestCase
|
||||
ENV['INPUTRC'] = inputrc_backup
|
||||
end
|
||||
|
||||
def test_inputrc_raw_value
|
||||
@config.read_lines(<<~'LINES'.lines)
|
||||
set editing-mode vi ignored-string
|
||||
set vi-ins-mode-string aaa aaa
|
||||
set vi-cmd-mode-string bbb ccc # comment
|
||||
LINES
|
||||
assert_equal :vi_insert, @config.instance_variable_get(:@editing_mode_label)
|
||||
assert_equal 'aaa aaa', @config.vi_ins_mode_string
|
||||
assert_equal 'bbb ccc # comment', @config.vi_cmd_mode_string
|
||||
end
|
||||
|
||||
def test_inputrc_with_utf8
|
||||
# This file is encoded by UTF-8 so this heredoc string is also UTF-8.
|
||||
@config.read_lines(<<~'LINES'.lines)
|
||||
@ -542,4 +553,3 @@ class Reline::Config::Test < Reline::TestCase
|
||||
ENV['HOME'] = home_backup
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user