Nobuyoshi Nakada
a48dc89547
[ruby/reline] Check the result of GetConsoleScreenBufferInfo
...
42edf7b3aa
2021-10-12 13:19:25 +09:00
aycabta
89556a6555
[ruby/reline] Remove a comment for debug
...
5f3ccda3d5
2021-10-11 21:17:02 +09:00
aycabta
6966c3ff44
[ruby/reline] Change struct size correctly
...
df2a1b4e08
2021-10-05 22:32:56 +09:00
aycabta
1e9714cf34
[ruby/reline] Use default background color to erase on Windows
...
852e855d82
2021-10-04 00:14:10 +09:00
aycabta
bf0a8a7462
[ruby/reline] Call LineEditor#resize on Windows
...
65b27dd2ff
2021-10-03 14:27:33 +09:00
aycabta
4401bbe8a7
[ruby/reline] Use String#unpack1
...
179c52bca8
2021-10-03 14:08:55 +09:00
Kazuhiro NISHIYAMA
357406da8b
[ruby/reline] Use unpack1
instead of unpack(template)[0]
...
45aa367616
2021-09-22 23:37:59 +09:00
aycabta
057ab5f056
[ruby/reline] Emulate Unix like terminals that sends Alt+key as \e+key
...
dc2cf90fa6
2021-09-03 04:27:53 +09:00
aycabta
935bb4c617
[ruby/reline] Add autocompletion on emacs mode by Tab / S-Tab
...
22d0b4e5d8
2021-08-30 02:37:23 +09:00
aycabta
d768eeeddb
[ruby/reline] Support hide/show cursor on Windows
...
0c870813bd
2021-08-29 20:30:33 +09:00
aycabta
02a61fe33f
[ruby/reline] Hide cursor when rendering dialog
...
a9050cf676
2021-08-29 20:30:32 +09:00
usa
788c047695
[ruby/reline] Create windows.rb
...
see issue #317
aad164de93
2021-08-29 20:30:32 +09:00
aycabta
d7f654ad5a
[ruby/reline] Add "sleep 0.01" to Windows event loop
...
dfc89eae53
2021-08-29 20:30:32 +09:00
SilverPhoenix99
5b9f3ed326
[ruby/reline] Fixed Ctrl+Enter key in Windows.
...
0c38e39023
2021-07-30 02:27:02 +09:00
SilverPhoenix99
1bf768d2e1
[ruby/reline] Added support for Numpad divide key on Windows.
...
84577da0c4
2021-07-30 02:27:02 +09:00
aycabta
750359ce81
[ruby/reline] Support Enter key of numpad on Windows
...
The yamatanooroti gem can't emulate numpad key pressing...
8e9da1aeaf
2021-07-30 02:27:02 +09:00
Lars Kanis
03f8c27179
[ruby/reline] Windows cmd: Don't type anything when pressing ALT keys alone
...
Fixes #298
72acfcd27a
2021-07-30 02:27:02 +09:00
aycabta
8135f489be
[ruby/reline] Add binding C-x C-x to em_exchange_mark on Windows
...
24a2489b62
2021-06-21 17:58:49 +09:00
aycabta
fa5a258e93
[ruby/reline] Treat C-Space as M-Space on Windows
...
69beca2863
2021-06-21 17:58:49 +09:00
aycabta
26f31f880c
[ruby/reline] Treat return key correctly on Windows
...
To fix Reline::TestRendering#test_binding_for_vi_movement_mode.
0df3d2a1dc
2021-06-21 17:58:48 +09:00
aycabta
c59bbd86a6
[ruby/reline] Use ReadConsoleInputW() instead of getwch()
...
This needs https://github.com/aycabta/yamatanooroti/pull/19 , which is released
by yamatanooroti gem 0.0.7, to test with yamatanooroti.
06c1f45da1
2021-06-21 17:58:48 +09:00
aycabta
5543695a19
[ruby/reline] Separate keystrokes each editing mode
...
ee23e6f3f8
2021-04-08 21:41:00 +09:00
cremno
a7dda449e8
[ruby/reline] fix Reline::Windows.getconsolemode buffer
...
use double quotes to properly convert the \000 escape sequence.
236dfe5683
2021-02-22 12:19:21 +09:00
Yoshinao Muramatu
38d30a6942
[ruby/reline] check ENABLE_VIRTUAL_TERMINAL_PROCESSING flag and switch eof processing
...
3535676689
2021-02-21 06:43:52 +09:00
aycabta
e1449ae74f
[ruby/reline] Reline::Windows.erase_after_cursor erases attributes too
...
68b961dfc7
2021-01-18 02:09:53 +09:00
aycabta
cdf2790aa0
[ruby/reline] Support longer than screen height on Windows
...
2a97ca9362
2020-12-17 20:17:22 +09:00
aycabta
55cc397a87
[ruby/reline] Suppress callbacks in pasting
...
IRB uses Reline's 3 dynamic real-time callbacks with calling Ripper;
output_modifier_proc, prompt_proc, and auto_indent_proc. These processing
times make the paste time too long.
beec3399a8
2020-12-05 02:58:58 +09:00
aycabta
ae508633b7
Suppress "assigned but unused variable" warning
2020-09-12 10:07:18 +09:00
Yoshinao Muramatu
a840ef8569
[ruby/reline] not clear scrollback buffer
...
ba800f1461
2020-09-12 08:35:51 +09:00
Yoshinao Muramatu
0862744010
[ruby/reline] clear_screen use Windows API
...
2c5ee54cb3
2020-09-12 08:35:51 +09:00
aycabta
2efb38e766
[ruby/reline] Use IO#write instead of IO#print
...
IO#print always adds a string of $\ automatically.
a93119c847
2020-02-14 22:47:27 +09:00
aycabta
06c37fa5b4
[ruby/reline] Bypass cursor down when a char is rendered at eol on Windows
...
A newline is automatically inserted if a character is rendered at eol on
Windows command prompt.
4bfea07e4a
2020-02-02 03:28:20 +09:00
aycabta
16d4774da1
[ruby/reline] Fix Reline::Windows#scroll_down
...
I mistook Right and Bottom.
8be401c5f5
2020-02-02 03:28:07 +09:00
Lars Kanis
d1166c6d39
Reline: Use a more robust detection of MinTTY
...
The previous detection per get_screen_size fails when stdout is passed
to a pipe. That is the case when running ruby tests in parallel ("-j" switch).
In this case Reline believes that it's running on MinTTY and the tests
are running with ANSI IOGate instead of the Windows adapter on MINGW.
So parallel test results were different to that of a single process.
This commit fixes these differencies.
The code is taken from git sources and translated to ruby.
NtQueryObject() is replaced by GetFileInformationByHandleEx(), because
NtQueryObject() is undocumented and is more difficult to use:
c5a03b1e29/compat/winansi.c (L558)
2020-01-21 21:26:58 +09:00
aycabta
f8ea2860b0
Introduce an abstracted structure about the encoding of Reline
...
The command prompt on Windows always uses Unicode to take input and print
output but most Reline implementation depends on Encoding.default_external.
This commit introduces an abstracted structure about the encoding of Reline.
2020-01-14 15:40:38 +09:00
aycabta
7bcc639c72
Rename old var name with new name
2019-10-25 10:07:17 +09:00
aycabta
6df6611ce7
Treat only left alt key as meta-key on Windows
...
On German keyboard, right alt key acts as like shift key.
Ex. right-alt-8 is just "[". This input doesn't have meta-key statement.
2019-10-24 02:49:14 +09:00
aycabta
7bc787fa06
Support forced enter insertion by Ctrl+Enter on Windows
2019-10-24 00:12:58 +09:00
aycabta
8bb716ab91
Fix indent...
2019-10-23 19:57:31 +09:00
aycabta
8c0629ba58
Treat key sequences from getwch() that start from 0 or 0xE0 correctly
2019-10-18 02:54:20 +09:00
aycabta
58657fa134
Add numeric keypad key sequences on Windows
2019-10-18 02:54:20 +09:00
aycabta
53c05a6cf4
Remove freeze
2019-10-18 02:54:20 +09:00
aycabta
13b106a19c
Ignore the input method key sequence from getwch() correctly
...
The function getwch() returns some key sequences which start from 0 or 0xE0
with a following key code. Alt+` that is on/off key for input methods gives 0
and 41 so Reline was always ignoring 0 and following keys but numeric keypad
keys give 0 and following actual keys. This commit changes the behavior to be
ignoring only the 0 and 41 sequence.
2019-10-18 02:54:20 +09:00
aycabta
136116819e
Use built-in Win32API on JRuby
...
It's fixed for JRuby dedicatedly.
2019-10-07 14:15:05 +09:00
aycabta
85dc89c907
Treat Japanese IME on/off code correctly
2019-09-02 06:37:25 +09:00
aycabta
a39b26b594
Check events that console window size changed on Windows
2019-08-29 21:11:53 +09:00
aycabta
3a425c7623
Fix alignment of a SHORT variable
...
typedef struct _COORD {
SHORT X;
SHORT Y; // I wanted to take this...
} COORD, *PCOORD;
typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
COORD dwSize;
COORD dwCursorPosition; // ...of this one
WORD wAttributes; // But it's combined with first 2bytes of this
SMALL_RECT srWindow;
COORD dwMaximumWindowSize;
} CONSOLE_SCREEN_BUFFER_INFO;
If wAttributes has non-zero value, the code breaks.
2019-08-29 21:05:19 +09:00
aycabta
b74dd665c0
CONSOLE_SCREEN_BUFFER_INFO is 22bytes
...
typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
COORD dwSize; // 4(SHORT X, Y)
COORD dwCursorPosition; // 4
WORD wAttributes; // 2
SMALL_RECT srWindow; // 8(SHORT Left, Top, Right, Bottom)
COORD dwMaximumWindowSize; // 4
} CONSOLE_SCREEN_BUFFER_INFO;
2019-08-29 21:03:44 +09:00
aycabta
893900dc78
Add stub set_screen_size for other platforms
2019-08-29 15:21:00 +09:00
aycabta
7df65ef676
Use inputrc data for keystroke setting
2019-06-01 09:06:27 +09:00