| Age | Commit message (Collapse) | Author |
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12624
|
|
(https://github.com/ruby/reline/pull/789)
Failure: test_empty_xdg_config_home(Reline::Config::Test)
/home/pterjan/reline/test/reline/test_config.rb:563:in `test_empty_xdg_config_home'
560: expected = File.expand_path('~/.config/readline/inputrc')
561: FileUtils.mkdir_p(File.dirname(expected))
562: FileUtils.touch(expected)
=> 563: assert_equal expected, @config.inputrc_path
564: ensure
565: FileUtils.rm(expected)
566: ENV['XDG_CONFIG_HOME'] = xdg_config_home_backup
<"/tmp/test_reline_config_4131165/.config/readline/inputrc"> expected but was
<"/etc/inputrc">
https://github.com/ruby/reline/commit/7de5a50f63
|
|
(https://github.com/ruby/reline/pull/723)
Readline's convert-meta setting is utf-8 unsafe.
Allow assigning `"\M-char": key` to bind "\echar": key even if convert-meta is not enabled.
https://github.com/ruby/reline/commit/9844b99c6e
|
|
(https://github.com/ruby/reline/pull/741)
* Fix reset variables
* Add assertion for reload
* Add helper method to get instance variable value of Reline::Config
https://github.com/ruby/reline/commit/386f619ff5
|
|
(https://github.com/ruby/reline/pull/740)
https://github.com/ruby/reline/commit/59e4ade807
|
|
(https://github.com/ruby/reline/pull/739)
https://github.com/ruby/reline/commit/14784eddee
|
|
(https://github.com/ruby/reline/pull/709)
* Improve key binding match/matching check
* Rename key_actors to default_key_bindings
* Make key_stroke.expand always return a value
* Update add_default_key_binding to use a add_default_key_binding_by_keymap internally
Co-authored-by: Stan Lo <stan001212@gmail.com>
---------
https://github.com/ruby/reline/commit/353ec236e2
Co-authored-by: Stan Lo <stan001212@gmail.com>
|
|
(https://github.com/ruby/reline/pull/666)
* Overhaul IO gate structure
1. Move IO related classes to `lib/reline/io/` directory.
2. Rename `GeneralIO` to `Dumb`.
3. Use IO classes as instances instead of classes.
* Update lib/reline/io/ansi.rb
Co-authored-by: tomoya ishida <tomoyapenguin@gmail.com>
---------
https://github.com/ruby/reline/commit/dc1518e1ac
Co-authored-by: tomoya ishida <tomoyapenguin@gmail.com>
|
|
(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
|
|
(https://github.com/ruby/reline/pull/697)
https://github.com/ruby/reline/commit/fc9b4d2274
|
|
(https://github.com/ruby/reline/pull/687)
https://github.com/ruby/reline/commit/bed5fb3d77
|
|
(https://github.com/ruby/reline/pull/689)
https://github.com/ruby/reline/commit/0d8aea26ec
|
|
inputrc
(https://github.com/ruby/reline/pull/592)
* Fix config.rb to File.expand_path $include path in inputrc
* fix bug of test_include_expand_path on Windows
https://github.com/ruby/reline/commit/4d34e52d0b
|
|
(https://github.com/ruby/reline/pull/566)
* Avoid referencing IOGate from IOGate classes
The only time those classes being used is when themselves being the IOGate.
So when referencing to IOGate, it's better to use `self` instead.
* Avoid referencing to IOGate from LineEditor directly
* Avoid referencing to IOGate from Core directly
* Reference to Reline.core directly
* Replace Reline::IOGate with Reline.core.io_gate
|
|
These APIs/configs are not approved by the Ruby core, so they can't be
released to the public. This means having them in the codebase will
block other fixes/features from being released as well.
So this commit removes those exposed interfaces to unblock the release.
Hopefully when https://bugs.ruby-lang.org/issues/18996 is approved we
can re-implement better APIs.
https://github.com/ruby/reline/commit/f7a961c550
|
|
"Pointer" is not what we usually use to describe a selected item.
"Highlight" is a more common word for the scenario so we should use it instead.
https://github.com/ruby/reline/commit/b4279d1557
|
|
As pointed out in the
[comment](https://github.com/ruby/reline/pull/413#issuecomment-1168033973),
the code is actually a control sequence and not only for colors.
To make the dialog color APIs safer to use, we should restrict its
usages and extract away the bg/fg concept from the input.
So in this commit, I made these changes:
1. The dialog_*_bg/fg_color APIs only takes and returns color names (symbol):
- :black
- :red
- :green
- :yellow
- :blue
- :magenta
- :cyan
- :white
2. Add additional dialog_*_bg/fg_color_sequence APIs to access the raw code.
https://github.com/ruby/reline/commit/b32a977766
|
|
(https://github.com/ruby/reline/pull/413)
https://github.com/ruby/reline/commit/bd49537964
|
|
The existing implementation, given the below .inputrc, erroneously
creates a "C-v" key binding:
set keymap emacs-ctlx
"\C-v": "[C-x C-v was pressed]"
This fixes it to instead create a "C-x C-v" keybinding.
https://github.com/ruby/reline/commit/719f52d231
|
|
If Reline::IOGate.encoding contains 7-bit characters, convert-meta will set it On.
Because in readline(3):
> The default is On, but readline will set it to Off if the locale contains eight-bit characters.
As far as I know, 7-bit encoding used in terminals is only US-ASCII.
https://github.com/ruby/reline/commit/b71d1fa496
|
|
https://github.com/ruby/reline/commit/b60b3b76cd
|
|
|
|
In Japan, so many programmers used EUC-JP to write text files that contain
Japanese. Many .inputrc files which contain EUC-JP are still being copied and
used. This commit supports the whole encoding of what user set including UTF-8.
ref. https://github.com/ruby/reline/pull/280
https://github.com/ruby/reline/commit/0b45022e16
|
|
character values
This change ensures we use `Reline::IOGate`'s `encoding` when converting
characters from their integer values.
This fixes an issue that may occur if you have UTF characters in your
`.inputrc`, but your default encoding isn't set.
For example:
```
> 127864.ord.chr
RangeError: 127864 out of char range
from (pry):1:in `chr'
> Reline::IOGate.encoding
=> #<Encoding:UTF-8>
> 127864.ord.chr(Reline::IOGate.encoding)
=> "🍸"
```
https://github.com/ruby/reline/commit/cf372fc0fc
|
|
https://github.com/ruby/reline/commit/ee23e6f3f8
|
|
https://github.com/ruby/reline/commit/96583c6336
|
|
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
> All paths set in these environment variables must be absolute.
> If an implementation encounters a relative path in any of these
> variables it should consider the path invalid and ignore it.
https://github.com/ruby/reline/commit/45af6eea77
|
|
https://github.com/ruby/reline/commit/9b1327d2f4
|
|
In the XDG Specification, if ~/.config/readline/inputrc exists, then ~/.inputrc
should not be read, but for compatibility with GNU Readline, if ~/.inputrc
exists, then it is given priority.
https://github.com/ruby/reline/commit/97f1e7db04
|
|
https://github.com/ruby/reline/commit/bce7e7562b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
% cat ~/bench-split.yml
prelude: |
s = "foo\nbar\nbaz\n"
benchmark:
'/(?<=\n)/': |
s.split(/(?<=\n)/)
'/^/': |
s.split(/^/)
'lines': |
s.lines
Warming up --------------------------------------
/(?<=\n)/ 459.123k i/s - 467.844k times in 1.018994s (2.18μs/i)
/^/ 467.922k i/s - 469.744k times in 1.003894s (2.14μs/i)
lines 2.343M i/s - 2.424M times in 1.034677s (426.84ns/i)
Calculating -------------------------------------
/(?<=\n)/ 422.347k i/s - 1.377M times in 3.261232s (2.37μs/i)
/^/ 477.603k i/s - 1.404M times in 2.939186s (2.09μs/i)
lines 2.485M i/s - 7.028M times in 2.828757s (402.47ns/i)
Comparison:
lines: 2484631.6 i/s
/^/: 477603.3 i/s - 5.20x slower
/(?<=\n)/: 422346.5 i/s - 5.88x slower
```
|
|
Closes: https://github.com/ruby/ruby/pull/2222
|
|
|
|
|
|
|
|
|
|
* lib/reine.rb, lib/reline/*: Reline is a readline stdlib compatible
library.
* lib/readline.rb: Readline uses a fallback to Reline when ext/readline
doesn't exist.
* tool/sync_default_gems.rb: add ruby/reline as a default gem.
* appveyor.yml: add "set RELINE_TEST_ENCODING=Windows-31J" for test suit
of Reline, and add "--exclude readline" to "nmake test-all" on Visual
Studio builds because of strange behavior.
* spec/ruby/library/readline/spec_helper.rb: skip Reline as with
RbReadline.
|