Skip to content

Commit de2a214

Browse files
committed
In REPL, ENTER means SUBMIT when:
- cursor is at end (discarding whitespaces) - and, input line is complete
1 parent f247799 commit de2a214

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

compiler/src/dotty/tools/repl/JLineTerminal.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,13 @@ final class JLineTerminal extends java.io.Closeable {
9292

9393
context match {
9494
case ParseContext.ACCEPT_LINE =>
95-
val lastLineOffset = line.lastIndexOfSlice(System.lineSeparator)
96-
if (cursor <= lastLineOffset || ParseResult.isIncomplete(line)) incomplete()
95+
// ENTER means SUBMIT when
96+
// - cursor is at end (discarding whitespaces)
97+
// - and, input line is complete
98+
val cursorIsAtEnd = line.indexWhere(!_.isWhitespace, from = cursor) >= 0
99+
if (cursorIsAtEnd || ParseResult.isIncomplete(line)) incomplete()
97100
else parsedLine("", 0)
98-
// using dummy values,
99-
// resulting parsed line is probably unused
101+
// using dummy values, resulting parsed line is probably unused
100102

101103
case ParseContext.COMPLETE =>
102104
// Parse to find completions (typically after a Tab).

0 commit comments

Comments
 (0)