mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 09:04:59 +00:00
sql: Do not indent next line when current one is blank
Previously, if a user pressed Enter without typing a command at the SQL REPL, the next line would be automatically indented. This change makes it so we check if there were any tokens in the command before applying the indentation logic.
This commit is contained in:
parent
d6eeb05bf9
commit
0e51d99322
1 changed files with 4 additions and 1 deletions
|
@ -227,8 +227,10 @@ private:
|
|||
bool is_first_token = true;
|
||||
bool is_command = false;
|
||||
bool last_token_ended_statement = false;
|
||||
bool tokens_found = false;
|
||||
|
||||
for (SQL::AST::Token token = lexer.next(); token.type() != SQL::AST::TokenType::Eof; token = lexer.next()) {
|
||||
tokens_found = true;
|
||||
switch (token.type()) {
|
||||
case SQL::AST::TokenType::ParenOpen:
|
||||
++m_repl_line_level;
|
||||
|
@ -251,7 +253,8 @@ private:
|
|||
is_first_token = false;
|
||||
}
|
||||
|
||||
m_repl_line_level = last_token_ended_statement ? 0 : (m_repl_line_level > 0 ? m_repl_line_level : 1);
|
||||
if (tokens_found)
|
||||
m_repl_line_level = last_token_ended_statement ? 0 : (m_repl_line_level > 0 ? m_repl_line_level : 1);
|
||||
} while ((m_repl_line_level > 0) || piece.is_empty());
|
||||
|
||||
return piece.to_string();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue