mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 00:27:35 +00:00
LibJS: Fix incorrect token column values (#2401)
- initializing m_line_column to 1 in the lexer results in incorrect column values in tokens on the first line of input. - not incrementing m_line_column when EOF is reached results in an incorrect column value on the last token.
This commit is contained in:
parent
7bb69bb9bf
commit
11405c5139
4 changed files with 15 additions and 17 deletions
|
@ -528,19 +528,15 @@ int main(int argc, char** argv)
|
|||
editor.stylize(span, styles);
|
||||
};
|
||||
editor.strip_styles();
|
||||
StringBuilder builder;
|
||||
builder.append(editor.line());
|
||||
// FIXME: The lexer returns weird position information without this
|
||||
builder.append(" ");
|
||||
String str = builder.build();
|
||||
|
||||
size_t open_indents = s_repl_line_level;
|
||||
|
||||
JS::Lexer lexer(str);
|
||||
auto line = editor.line();
|
||||
JS::Lexer lexer(line);
|
||||
bool indenters_starting_line = true;
|
||||
for (JS::Token token = lexer.next(); token.type() != JS::TokenType::Eof; token = lexer.next()) {
|
||||
auto length = token.value().length();
|
||||
auto start = token.line_column() - 2;
|
||||
auto start = token.line_column() - 1;
|
||||
auto end = start + length;
|
||||
if (indenters_starting_line) {
|
||||
if (token.type() != JS::TokenType::ParenClose && token.type() != JS::TokenType::BracketClose && token.type() != JS::TokenType::CurlyClose) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue