diff --git a/CHANGELOG.md b/CHANGELOG.md index 5170f35..cc2f9bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed +- Improved `SyntaxError` handling in `lwp3 repl` command. + ### Fixed - Fixed `PortID` exception when running `lwp3 repl` command. diff --git a/pybricksdev/cli/lwp3/repl.py b/pybricksdev/cli/lwp3/repl.py index 08a57d9..64f3e30 100644 --- a/pybricksdev/cli/lwp3/repl.py +++ b/pybricksdev/cli/lwp3/repl.py @@ -183,8 +183,15 @@ async def welcome(): msg = eval(result, _eval_pool) if not isinstance(msg, AbstractMessage): raise ValueError("not a message object") + except SyntaxError as ex: + logger.error( + "%s\n\n %s\n %s", + ex.msg, + ex.text, + " " * ex.offset + "^" * (ex.end_offset - ex.offset), + ) except Exception: - logger.exception("bad input:") + logger.exception("unexpected error:") else: logger.info("sending: %s", msg) await client.write_gatt_char(