Commit graph

650 commits

Author SHA1 Message Date
Nobuyoshi Nakada
68ffb679d4 Undefine DSUSP key
Enable `Ctrl+Y`, which is bound with it by default on BSD-like
systems, for editing.
2019-09-17 15:16:12 +09:00
Adam Cammack
f9332ad833 Fix previous history in vi_insert mode 2019-09-17 15:14:38 +09:00
Adam Cammack
a3533bc904 Fix history navigation in vi_insert mode 2019-09-17 15:14:38 +09:00
aycabta
98f919ed47 The stdlib readline should raise Interrupt when pressing C-c 2019-09-14 00:16:31 +09:00
aycabta
83ef23bd75 Revert "Use IO#getch to read one char in raw mode"
This reverts commit 805b0a4811.
2019-09-14 00:11:01 +09:00
aycabta
e8fff0ec9c Revert "Use IO#getbyte"
This reverts commit 685f12bbca.
2019-09-14 00:10:45 +09:00
aycabta
06bbacc086 Revert "Support multibyte input"
This reverts commit 6d9e54816f.
2019-09-14 00:10:34 +09:00
Nobuyoshi Nakada
6d9e54816f Support multibyte input 2019-09-10 00:56:31 +09:00
Nobuyoshi Nakada
685f12bbca Use IO#getbyte 2019-09-10 00:56:31 +09:00
Nobuyoshi Nakada
805b0a4811 Use IO#getch to read one char in raw mode 2019-09-10 00:56:31 +09:00
aycabta
e9bc8b35c6 Behave ESC key correctly when vi command mode 2019-09-08 03:26:35 +09:00
aycabta
85dc89c907 Treat Japanese IME on/off code correctly 2019-09-02 06:37:25 +09:00
aycabta
11d6094cbe Reline 0.0.2 2019-09-01 11:23:52 +09:00
aycabta
c5bb074fe7 Re-calculate state variables of screen when screen size changes 2019-09-01 11:02:58 +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
0f405541bf Support SIGWINCH 2019-08-29 14:37:19 +09:00
aycabta
800821831d Always check multiline termination 2019-08-22 06:02:27 +09:00
aycabta
113a5c1e1d The "exe" dir doesn't exist in this repostiroy 2019-08-18 08:05:08 +09:00
Alan Wu
e9f82585ee Don't crash when deleting at the end of the line
To reproduce this bug, type one character into irb, then press the
delete key on your keyboard.
2019-08-18 07:43:19 +09:00
Kazuhiro NISHIYAMA
a4a2dd7942
Revert a6e32855d0 partially
Fix TypeError when typing `''.[TAB]`
2019-08-09 16:29:43 +09:00
aycabta
d626ca1e98 Remove obsolete TODO comment 2019-08-06 20:03:23 +09:00
aycabta
81a15d636e Update Unicode URL to 12.1.0 2019-08-06 20:03:23 +09:00
Nobuyoshi Nakada
b40589802b
[reline] Do not compile regexp for each line 2019-07-28 09:52:19 +09:00
Nobuyoshi Nakada
a6e32855d0
[reline] Do not escape and compile regexp for each byte 2019-07-28 09:47:40 +09:00
aycabta
0f9ec4a877 Check wether multibyte character is split 2019-07-25 17:19:16 +09:00
aycabta
c8ee44f44c Fix showing doc of "nil.to_s", nil doesn't have #name 2019-07-19 08:23:41 +09:00
aycabta
cd7b99bbfc Version 0.0.1 2019-07-15 00:36:59 +09:00
manga_osyo
04e6b90d5b Remove unused method. 2019-07-15 00:33:16 +09:00
manga_osyo
073cc52dcc Add class Reline::History and test. 2019-07-15 00:17:59 +09:00
Luke Gruber
3163a07878 fix issue with 'SIGINT' handling in LineEditor#reset
@old_trap is the string "DEFAULT" and not a callable object (Proc)
if there are no other signal handlers for SIGINT signal to chain.
2019-07-14 15:51:09 +09:00
Nobuyoshi Nakada
688cef2169
Refactored width calculations 2019-07-06 12:31:11 +09:00
Nobuyoshi Nakada
44aae5fee6
Simplified 2019-07-06 12:11:12 +09:00
aycabta
6c2b59f923 Support Control- and Meta- 2019-07-04 20:58:11 +09:00
aycabta
d9f8b88b47 Move a comment to proper place 2019-07-04 19:34:08 +09:00
Nobuyoshi Nakada
265b9a0edf
Parse key sequence more strictly 2019-07-04 18:54:50 +09:00
Nobuyoshi Nakada
12e06d32f5
Use lstrip instead of gsub which can match only once 2019-07-04 18:49:42 +09:00
Nobuyoshi Nakada
ee861e43f7
Skip indented comment lines [Bug #15981] 2019-07-04 18:47:22 +09:00
Nobuyoshi Nakada
90c51ca391 New indent must be non-negative number 2019-07-01 20:46:00 +09:00
aycabta
72bfc52de6 Decrease indent by closing token correctly 2019-06-27 01:21:06 +09:00
aycabta
c4c47b792d Disable auto indent when move cursor up or down
This commit suppresses a strange behavior below:

  if true
    1[cursor]
  end

and press down key

  if true
  1
  end
2019-06-20 16:00:30 +09:00
aycabta
235e72f17e Implement auto indent for multiline 2019-06-18 20:58:18 +09:00
aycabta
2fb1564c02 Implement line_no correctly 2019-06-16 14:46:28 +09:00
aycabta
d0e5564140 Set allow_escape_code for prompt 2019-06-14 08:45:35 +09:00
aycabta
64310b2573 Add Reline.prompt_proc 2019-06-14 07:42:53 +09:00
aycabta
02880d1f4a Skip transpose-words if less than 2 word 2019-06-06 04:57:52 +09:00
aycabta
c75a3356b3 Move I/O access from Reline::KeyStroke to Reline 2019-06-05 11:29:59 +09:00
aycabta
9a07915ae2 Add aliases for commands for changing text macro 2019-06-04 08:35:01 +09:00