From 36f9e33d52b7572536ac1a8af8d7e78363ad52c3 Mon Sep 17 00:00:00 2001 From: Amaan Qureshi Date: Fri, 30 Jun 2023 12:34:09 -0400 Subject: [PATCH] fix: handle error recovery better for dedents in case a string start is possible (#223) --- src/scanner.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/scanner.c b/src/scanner.c index 40c5e2cf..13fbfc90 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -327,8 +327,13 @@ bool tree_sitter_python_external_scanner_scan(void *payload, TSLexer *lexer, return true; } + bool next_tok_is_string_start = lexer->lookahead == '\"' || + lexer->lookahead == '\'' || + lexer->lookahead == '`'; + if ((valid_symbols[DEDENT] || - (!valid_symbols[NEWLINE] && !valid_symbols[STRING_START] && + (!valid_symbols[NEWLINE] && + !(valid_symbols[STRING_START] && next_tok_is_string_start) && !within_brackets)) && indent_length < current_indent_length &&