Граф коммитов

566 Коммитов

Автор SHA1 Сообщение Дата
ima1zumi 5f1975a454 [ruby/reline] @convert_meta is true unless 8-bit characters
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
2021-12-10 22:19:14 +09:00
ima1zumi 519a945efc [ruby/reline] Execute compress_meta_key if convert_meta is on
fix `#357`

When using 8-bit characters, it is better not to use `compress_meta_key`.
I believe not to use `compress_meta_key` unless `set convert-meta on` is written in the `.inputrc`.

The following is a quote from tmtm's comments.

> The behavior of this compress_meta_key method is similar to the behavior of convert-meta=on in readline, but readline turns off convert-meta if the locale contains 8bit characters.

> In readline(3):

> convert-meta (On)
> If set to On, readline will convert characters with the eighth
> bit set to an ASCII key sequence by stripping the eighth bit and
> prefixing it with an escape character (in effect, using escape
> as the meta prefix). The default is On, but readline will set
> it to Off if the locale contains eight-bit characters.

https://github.com/ruby/reline/commit/9491cc8542

Co-authored-by: TOMITA Masahiro <tommy@tmtm.org>
2021-12-10 22:19:14 +09:00
YO4 3a2ae5bb19 [ruby/reline] unleash real pasting speed
2700msec -> 410msec

read 80 console inputs at once

https://github.com/ruby/reline/commit/eb3ef7af98
2021-12-10 22:18:26 +09:00
YO4 74765a5a36 [ruby/reline] unleash pasting speed
https://github.com/ruby/reline/commit/074e407c62
2021-12-10 22:18:25 +09:00
YO4 aed21d6574 [ruby/reline] support input surrogate paird codepoint
support surrogate pair input

https://github.com/ruby/reline/commit/0b4acedc6a
2021-12-10 22:16:46 +09:00
YO4 66e14e2076 [ruby/reline] follow consolemode change
fix 'https://github.com/ruby/reline/issues/300'

https://github.com/ruby/reline/commit/b2cc6805a8
2021-12-10 22:15:56 +09:00
ima1zumi 4d4716d939 [ruby/reline] No need to check `x > 0`
Checked in the previous line.

https://github.com/ruby/reline/commit/bf774c0f2c
2021-12-03 00:39:30 +09:00
ima1zumi ca33b59099 [ruby/reline] fix `TerminfoError` -> `Reline::Terminfo::TerminfoError`
https://github.com/ruby/reline/commit/c07b0ace6a
2021-12-02 23:41:44 +09:00
ima1zumi 697d7b8d62 [ruby/reline] Rescue if tigetstr(capname) cannot be obtained
fix https://github.com/ruby/reline/issues/384

If `$TERM` is `vt102`, there are no `kend`, `khome`, `civis`, or `cnorm` in capabilities.
`TerminfoError` is raised in `Reline::Terminfo.tigetstr(capname)`, so it is rescued if it does not exist.

https://github.com/ruby/reline/commit/c9f5112702
2021-12-02 23:41:43 +09:00
ima1zumi f5829e2935 [ruby/reline] Correct padding space calculation
fix https://github.com/ruby/irb/issues/308

This bug occurred when `dialog.width - calculate_width(s, true)` was negative.

When `dialog.width` is shorter than `old_dialog.width`, it calculates how much padding it has to do. However, there are cases where `s` is longer than `dialog.width`, as in the issue. In that case, `padding_space_with_escape_sequences` will crash.

Here, `old_dialog.width` is longer than `dialog.width`, so I changed the padding width to `old_dialog.width - dialog.width`.

https://github.com/ruby/reline/commit/c581c31e0f
2021-11-21 13:56:26 +09:00
Nobuyoshi Nakada a48dc89547 [ruby/reline] Check the result of GetConsoleScreenBufferInfo
https://github.com/ruby/reline/commit/42edf7b3aa
2021-10-12 13:19:25 +09:00
Nobuyoshi Nakada 1009fd7ee3 [ruby/reline] Revert "Fix zero division when the screen width is not available"
This reverts commit 0dce9da083541f42c31822a91c72f339934c3986.

https://github.com/ruby/reline/commit/f71471cdde
2021-10-12 13:19:24 +09:00
Nobuyoshi Nakada 60689f0f20 [ruby/reline] Fix zero division when the screen width is not available
https://github.com/ruby/reline/commit/0dce9da083
2021-10-12 00:40:22 +09:00
aycabta e212d051d0 [ruby/reline] Rescue LoadError to require 'fiddle'
https://github.com/ruby/reline/commit/fe504bb6b9
2021-10-11 21:34:31 +09:00
aycabta 89556a6555 [ruby/reline] Remove a comment for debug
https://github.com/ruby/reline/commit/5f3ccda3d5
2021-10-11 21:17:02 +09:00
aycabta 56140bc7af [ruby/reline] Version 0.2.8.pre.11
https://github.com/ruby/reline/commit/de858ee1ac
2021-10-09 23:27:40 +09:00
aycabta 9cb7ba2f21 [ruby/reline] Add RELINE_ALT_SCROLLBAR env to use alternative text for scrollbar
The setting to use '::' instead of block elements.

https://github.com/ruby/reline/commit/4afbc98e2c
2021-10-09 23:23:02 +09:00
aycabta e6ba2953e9 [ruby/reline] Fix calculating dialog width with full-width scrollbar
https://github.com/ruby/reline/commit/93bc9b5277
2021-10-09 23:22:57 +09:00
aycabta ded5a66cb9 [ruby/reline] Use alternate text for scrollbar in non-UTF-8 env
https://github.com/ruby/reline/commit/69e365edcc
2021-10-08 18:48:44 +09:00
Jeremy Evans 55d7f63bde [ruby/reline] Better fix for non-UTF-8 default external encoding
Previous fix didn't show the cursor or dialogs.  This allows the
dialogs to continue to work.

https://github.com/ruby/reline/commit/651c5f63cc
2021-10-08 10:38:47 +09:00
Jeremy Evans eb4682b3c6 [ruby/reline] Only show dialogs if default external encoding is UTF-8
Fixes a crash in IRB if a dialog is displayed and the default
external encoding is not UTF-8:

/home/jeremy/tmp/reline/lib/reline/line_editor.rb:731:in `write': U+2588 from UTF-8 to US-ASCII (Encoding::UndefinedConversionError)

https://github.com/ruby/reline/commit/f570525ecd
2021-10-08 10:38:43 +09:00
aycabta 374b15a84a [ruby/reline] Cut off the excess on narrow screen
https://github.com/ruby/reline/commit/972cc993ca
2021-10-08 10:33:22 +09:00
aycabta a2f55679f0 [ruby/reline] Rename DIALOG_HEIGHT with DIALOG_DEFAULT_HEIGHT
https://github.com/ruby/reline/commit/996bfec64b
2021-10-08 10:33:17 +09:00
aycabta f625645a37 [ruby/reline] The width of block elements is 1 on Windows
https://github.com/ruby/reline/commit/5f4a75c7a0
2021-10-05 22:33:07 +09:00
aycabta 6966c3ff44 [ruby/reline] Change struct size correctly
https://github.com/ruby/reline/commit/df2a1b4e08
2021-10-05 22:32:56 +09:00
aycabta 1e9714cf34 [ruby/reline] Use default background color to erase on Windows
https://github.com/ruby/reline/commit/852e855d82
2021-10-04 00:14:10 +09:00
aycabta 64e96d6b41 [ruby/reline] Re-calc the scroll pos when the content in dialog is shortened
https://github.com/ruby/reline/commit/12ea63e6e0
2021-10-03 21:51:02 +09:00
aycabta 7f02cc50dd [ruby/reline] Version 0.2.8.pre.10
https://github.com/ruby/reline/commit/1c6c0c82f0
2021-10-03 21:48:12 +09:00
aycabta 6cb37d4136 [ruby/reline] Initialize @trap_key to suppress warning
https://github.com/ruby/reline/commit/b42c0980d9
2021-10-03 21:38:05 +09:00
aycabta bf4f3ef5ad [ruby/reline] Add a comment to use "private alias_method" idiom after drop Ruby 2.5
https://github.com/ruby/reline/commit/1b00cae0fd
2021-10-03 18:41:29 +09:00
aycabta b91b3000bd [ruby/reline] Add code block notation in doc
https://github.com/ruby/reline/commit/b283791dc5
2021-10-03 15:31:47 +09:00
aycabta bc5407f00c [ruby/reline] Add doc for ed-unassigned and ed-insert macro
https://github.com/ruby/reline/commit/7fe9ecf945
2021-10-03 15:25:50 +09:00
aycabta 95522ef8b9 [ruby/reline] Rerender whole buffer when argument editing finished
If the argument prompt disappears when pasting is finished, rerender the
whole buffer.

https://github.com/ruby/reline/commit/996bbf8797
2021-10-03 14:53:13 +09:00
aycabta bf0a8a7462 [ruby/reline] Call LineEditor#resize on Windows
https://github.com/ruby/reline/commit/65b27dd2ff
2021-10-03 14:27:33 +09:00
TOMITA Masahiro ef350b3a56 [ruby/reline] Simplify SIGWINCH handler to avoid aborting when resizing.
https://github.com/ruby/reline/commit/481add0537
2021-10-03 14:26:53 +09:00
aycabta 4401bbe8a7 [ruby/reline] Use String#unpack1
https://github.com/ruby/reline/commit/179c52bca8
2021-10-03 14:08:55 +09:00
aycabta a2d2f00e4a [ruby/reline] Adjust border of scrollbar rendering calculation
https://github.com/ruby/reline/commit/737b23beae
2021-10-03 14:08:49 +09:00
aycabta 1d2edda9f8 [ruby/reline] The @block_elem_width shouldn't be used for height calculation
https://github.com/ruby/reline/commit/da35902d78
2021-10-03 14:08:45 +09:00
aycabta 5eb8b6d1bd [ruby/reline] Support ed_argument_digit by M+num
The vi mode can handle "argument number" before an operator or a motion,
such as, "3x" (equals "xxx"), and "3l" (equals "lll"). In the emacs
mode, GNU Readline can handle argument number with meta key, like
"Meta+3 x" (equals "xxx").

https://github.com/ruby/reline/commit/9183cc2e8b
2021-09-29 22:07:49 +09:00
aycabta c4acde8959 [ruby/reline] Ignore NUL by ed_quoted_insert
https://github.com/ruby/reline/commit/43b7c01a98
2021-09-28 14:15:49 +09:00
aycabta a230ff0f83 [ruby/reline] ^K is kill-line and ^U is unix-line-discard for inputrc
https://github.com/ruby/reline/commit/5936071940
2021-09-27 01:16:15 +09:00
Jake Zimmerman 3f7b08d2cb [ruby/reline] Implement vi_kill_line_prev
This operation is mentioned and bound to `^U` in both `vi_command.rb`
and `vi_insert.rb`, but there is no definition of it.

Both Vi and Emacs use the same keystroke to do the same behavior, so
I've chosen to use `alias_method` to make the implementation small,
rather than duplicating the method and re-implementing it.

https://github.com/ruby/reline/commit/fdbfc8669f
2021-09-26 23:47:11 +09:00
aycabta f726c79d74 [ruby/reline] Add aliases {prev,next}_history to ed_{prev,next}_history
https://github.com/ruby/reline/commit/d740e18cff
2021-09-25 00:11:44 +09:00
aycabta 63aba76893 [ruby/reline] Use SGR 0 instead of SGR 39 and 49 to reset font settings
https://github.com/ruby/reline/commit/cbacb4c1cf
2021-09-24 03:08:33 +09:00
aycabta 3b5923bca3 [ruby/reline] Reset all font settings at left end of dialog
https://github.com/ruby/reline/commit/5f293b5127
2021-09-23 23:41:55 +09:00
Kazuhiro NISHIYAMA 357406da8b [ruby/reline] Use `unpack1` instead of `unpack(template)[0]`
https://github.com/ruby/reline/commit/45aa367616
2021-09-22 23:37:59 +09:00
ima1zumi 616d671758 [ruby/reline] Remove unused using method
follow #347

https://github.com/ruby/reline/commit/37453a83a3
2021-09-14 22:28:50 +09:00
aycabta 8de53fb31c [ruby/reline] Use expanded method definitions instead of refinements
@jhawthorn said, "this will make Ruby's integer comparisons slower
globally." It looks like "binding.irb" is going to cause serious
problems in Rails applications.

https://github.com/ruby/reline/commit/ee8d6c6a82
2021-09-13 05:15:47 +09:00
aycabta 5dc753df47 [ruby/reline] Move #pointer from DialogRenderInfo to Dialog
https://github.com/ruby/reline/commit/92dbac0bff
2021-09-10 11:38:54 +09:00
aycabta fbfa0c880d [ruby/reline] Version 0.2.8.pre.9
https://github.com/ruby/reline/commit/bad76b5a87
2021-09-10 10:59:40 +09:00