aycabta
7159af3491
[ruby/reline] Clear dialog in pasting
...
dabf5313e0
2021-12-19 11:19:50 +09:00
aycabta
8411e8449b
[ruby/reline] Remove unnecessary variables, lower_space
...
The number of lines below the cursor position was known by
"@rest_height" alone, but the problem was caused by adding
"lower_space". Remove "lower_space" as it is unnecessary.
a575cef6a3
2021-12-13 20:44:21 +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`.
c581c31e0f
2021-11-21 13:56:26 +09:00
Nobuyoshi Nakada
1009fd7ee3
[ruby/reline] Revert "Fix zero division when the screen width is not available"
...
This reverts commit 0dce9da083541f42c31822a91c72f339934c3986.
f71471cdde
2021-10-12 13:19:24 +09:00
Nobuyoshi Nakada
60689f0f20
[ruby/reline] Fix zero division when the screen width is not available
...
0dce9da083
2021-10-12 00:40:22 +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.
4afbc98e2c
2021-10-09 23:23:02 +09:00
aycabta
e6ba2953e9
[ruby/reline] Fix calculating dialog width with full-width scrollbar
...
93bc9b5277
2021-10-09 23:22:57 +09:00
aycabta
ded5a66cb9
[ruby/reline] Use alternate text for scrollbar in non-UTF-8 env
...
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.
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)
f570525ecd
2021-10-08 10:38:43 +09:00
aycabta
374b15a84a
[ruby/reline] Cut off the excess on narrow screen
...
972cc993ca
2021-10-08 10:33:22 +09:00
aycabta
a2f55679f0
[ruby/reline] Rename DIALOG_HEIGHT with DIALOG_DEFAULT_HEIGHT
...
996bfec64b
2021-10-08 10:33:17 +09:00
aycabta
f625645a37
[ruby/reline] The width of block elements is 1 on Windows
...
5f4a75c7a0
2021-10-05 22:33:07 +09:00
aycabta
64e96d6b41
[ruby/reline] Re-calc the scroll pos when the content in dialog is shortened
...
12ea63e6e0
2021-10-03 21:51:02 +09:00
aycabta
6cb37d4136
[ruby/reline] Initialize @trap_key to suppress warning
...
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
...
1b00cae0fd
2021-10-03 18:41:29 +09:00
aycabta
b91b3000bd
[ruby/reline] Add code block notation in doc
...
b283791dc5
2021-10-03 15:31:47 +09:00
aycabta
bc5407f00c
[ruby/reline] Add doc for ed-unassigned and ed-insert macro
...
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.
996bbf8797
2021-10-03 14:53:13 +09:00
TOMITA Masahiro
ef350b3a56
[ruby/reline] Simplify SIGWINCH handler to avoid aborting when resizing.
...
481add0537
2021-10-03 14:26:53 +09:00
aycabta
a2d2f00e4a
[ruby/reline] Adjust border of scrollbar rendering calculation
...
737b23beae
2021-10-03 14:08:49 +09:00
aycabta
1d2edda9f8
[ruby/reline] The @block_elem_width shouldn't be used for height calculation
...
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").
9183cc2e8b
2021-09-29 22:07:49 +09:00
aycabta
c4acde8959
[ruby/reline] Ignore NUL by ed_quoted_insert
...
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
...
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.
fdbfc8669f
2021-09-26 23:47:11 +09:00
aycabta
f726c79d74
[ruby/reline] Add aliases {prev,next}_history to ed_{prev,next}_history
...
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
...
cbacb4c1cf
2021-09-24 03:08:33 +09:00
aycabta
3b5923bca3
[ruby/reline] Reset all font settings at left end of dialog
...
5f293b5127
2021-09-23 23:41:55 +09:00
aycabta
5dc753df47
[ruby/reline] Move #pointer from DialogRenderInfo to Dialog
...
92dbac0bff
2021-09-10 11:38:54 +09:00
aycabta
5af602e4d4
[ruby/reline] Erase lines correctly when dialog height is changed
...
68d2516551
2021-09-10 09:05:25 +09:00
aycabta
e4eb085329
[ruby/reline] Render scrollbar when the column of the dialog is moved
...
5cea268e56
2021-09-08 03:34:51 +09:00
aycabta
8b6d757ba0
[ruby/reline] Remove variables that have no meaning in calculations
...
3b7a1900fd
2021-09-08 03:34:46 +09:00
aycabta
11a00e3fa2
[ruby/reline] Remove garbage left behind when rerendering the right side of the dialog
...
d89c23e30b
2021-09-08 03:34:40 +09:00
aycabta
95089ddaf4
[ruby/reline] Move only one line when render a line and then go to the next line
...
8a966cd962
2021-09-08 01:11:13 +09:00
aycabta
6faf653ab0
[ruby/reline] The #reset_dialog should also use calculated block elem width
...
577df401b9
2021-09-08 00:13:21 +09:00
aycabta
5a01da7a29
[ruby/reline] Remove debug print
...
6f82177f2e
2021-09-08 00:08:48 +09:00
aycabta
b766214851
[ruby/reline] Calculate block elem width only once
...
3054a67d05
2021-09-08 00:08:43 +09:00
aycabta
0ef3d574a0
[ruby/reline] Ensure that scrollbar is only rerendered when the position is changed
...
f629853eae
2021-09-08 00:08:38 +09:00
aycabta
30486d9150
[ruby/reline] The width of Block Elements in Unicode is East Asian Ambiguous
...
05e8ab8cbb
2021-09-08 00:04:40 +09:00
aycabta
cec50ec8d6
[ruby/reline] Remove SIG prefix because don't use it in any other signal processing
...
37648042e8
2021-09-07 02:42:42 +09:00
aycabta
f927614e55
[ruby/reline] Use String for the value to be passed because Signal.trap also returns String
...
b908fe4439
2021-09-07 02:42:38 +09:00
aycabta
4885a61b12
[ruby/reline] Rescue ArgumentError from Signal.trap(:TSTP) on Windows
...
8da8182d1c
2021-09-07 01:59:13 +09:00
aycabta
e8ad881336
[ruby/reline] Trap TSTP to handle C-z
...
ebbd0076b8
2021-09-07 01:59:05 +09:00
aycabta
32ff4a8c93
[ruby/reline] Set scrollbar color
...
d7962e420d
2021-09-06 05:35:03 +09:00
aycabta
79652c5873
[ruby/reline] Support multiple trap_key
...
b0207fa049
2021-09-06 05:24:05 +09:00
aycabta
544cd3fb91
[ruby/reline] Support oneshot key bindings config for key_trap of dialog callbacks
...
5f1141b693
2021-09-06 05:23:06 +09:00
aycabta
03e9887d2e
[ruby/reline] Correct misalignment of scrollbar
...
7924b4cfc6
2021-09-04 21:40:17 +09:00
aycabta
ec36ceb072
[ruby/reline] Implement scrollbar
...
4c7fc42151
2021-09-04 21:40:12 +09:00
aycabta
9e0caba187
[ruby/reline] Add Reline::Key#match?
...
8f6aa3af2e
2021-09-03 04:27:48 +09:00