42
42
43
43
import java .io .IOException ;
44
44
import java .nio .charset .StandardCharsets ;
45
- import java .util .List ;
46
45
import java .util .logging .ConsoleHandler ;
47
46
import java .util .logging .Level ;
48
47
import java .util .logging .Logger ;
49
48
50
49
import org .graalvm .shadowed .org .jline .builtins .Completers ;
51
- import org .graalvm .shadowed .org .jline .reader .Candidate ;
52
50
import org .graalvm .shadowed .org .jline .reader .Completer ;
53
51
import org .graalvm .shadowed .org .jline .reader .LineReader ;
54
52
import org .graalvm .shadowed .org .jline .reader .LineReader .Option ;
55
- import org .graalvm .shadowed .org .jline .reader .LineReaderBuilder ;
56
- import org .graalvm .shadowed .org .jline .reader .ParsedLine ;
53
+ import org .graalvm .shadowed .org .jline .reader .impl .LineReaderImpl ;
57
54
import org .graalvm .shadowed .org .jline .terminal .Size ;
58
55
import org .graalvm .shadowed .org .jline .terminal .Terminal ;
59
56
import org .graalvm .shadowed .org .jline .terminal .impl .DumbTerminal ;
64
61
import com .oracle .truffle .api .CompilerDirectives ;
65
62
import com .oracle .truffle .api .CompilerDirectives .TruffleBoundary ;
66
63
67
- public class ConsoleHolder implements Completer {
64
+ public class ConsoleHolder {
68
65
69
66
// Set to true to print logging messages from JLine
70
67
private static final boolean DEBUG_JLINE = false ;
@@ -81,10 +78,9 @@ public class ConsoleHolder implements Completer {
81
78
}
82
79
83
80
private final RubyContext context ;
84
- private final LineReader readline ;
81
+ private final LineReaderImpl readline ;
85
82
private final IoStream in ;
86
83
private final IoStream out ;
87
- private Completer currentCompleter ;
88
84
89
85
public static ConsoleHolder create (RubyContext context ) {
90
86
final RubyIO stdin = (RubyIO ) context .getCoreLibrary ().getStdin ();
@@ -141,22 +137,17 @@ private ConsoleHolder(
141
137
throw new UnsupportedOperationException ("Couldn't initialize readline" , e );
142
138
}
143
139
144
- readline = LineReaderBuilder
145
- .builder ()
146
- .terminal (terminal )
147
- .history (history )
148
- .parser (parser )
149
- .completer (this )
150
- .build ();
140
+ readline = new LineReaderImpl (terminal , null , null );
141
+ readline .setHistory (history );
142
+ readline .setParser (parser );
143
+ readline .setCompleter (completer );
151
144
152
145
readline .option (Option .DISABLE_EVENT_EXPANSION , true );
153
146
readline .option (Option .HISTORY_BEEP , true );
154
147
155
148
if (!system ) {
156
149
readline .option (Option .BRACKETED_PASTE , false );
157
150
}
158
-
159
- this .currentCompleter = completer ;
160
151
}
161
152
162
153
private String getType () {
@@ -188,7 +179,7 @@ public ParserWithCustomDelimiters getParser() {
188
179
}
189
180
190
181
public void setCompleter (Completer completer ) {
191
- this . currentCompleter = completer ;
182
+ readline . setCompleter ( completer ) ;
192
183
}
193
184
194
185
public ConsoleHolder updateIn (int fd , RubyIO io ) {
@@ -202,7 +193,7 @@ public ConsoleHolder updateIn(int fd, RubyIO io) {
202
193
io ,
203
194
out .getFd (),
204
195
out .getIo (),
205
- currentCompleter ,
196
+ readline . getCompleter () ,
206
197
getHistory (),
207
198
getParser ());
208
199
}
@@ -218,13 +209,9 @@ public ConsoleHolder updateOut(int fd, RubyIO io) {
218
209
in .getIo (),
219
210
fd ,
220
211
io ,
221
- currentCompleter ,
212
+ readline . getCompleter () ,
222
213
getHistory (),
223
214
getParser ());
224
215
}
225
216
226
- @ Override
227
- public void complete (LineReader lineReader , ParsedLine parsedLine , List <Candidate > list ) {
228
- currentCompleter .complete (lineReader , parsedLine , list );
229
- }
230
217
}
0 commit comments