Skip to content

Stop logging parser noise and propagate phantom-parse errors#36

Open
BobDu wants to merge 1 commit into
trinodb:mainfrom
BobDu:fix-parser-noise-and-error-listener
Open

Stop logging parser noise and propagate phantom-parse errors#36
BobDu wants to merge 1 commit into
trinodb:mainfrom
BobDu:fix-parser-noise-and-error-listener

Conversation

@BobDu

@BobDu BobDu commented May 28, 2026

Copy link
Copy Markdown

Summary

Two small frontend cleanups in QueryEditorPane.parseAndDecoratePromise:

  1. Remove console.log noise. Three console.log calls dump currentWord, caretPosition, and word bounds on every parse pass. They look like leftover debug output and clutter the browser devtools console of anyone embedding the editor.

  2. Propagate phantom-parse errors. When the first parse produces no statements, the code re-parses the input with a phantom character inserted at the cursor (to keep the syntax tree alive for tooltip/hover lookup). The primary parser swaps the default ANTLR error listener for the custom SqlBaseErrorListener so syntax errors are collected in errors. The recovery parser never did, so its errors fell back to ANTLR's ConsoleErrorListener (printing to console.error) and never reached the collected errors list. Mirror the primary parser's setup on parserWithChar.

Test plan

  • npm run lint — clean
  • npm run prettier:check — clean
  • npm run buildtsc && vite build succeeds
  • Manual: while typing an incomplete statement, observe browser devtools console no longer fills with per-keystroke Current word being parsed lines.

Two small cleanups in QueryEditorPane.parseAndDecoratePromise:

- Drop the three console.log statements that print the current word,
  cursor position, and word bounds. They look like leftover debug
  output, fire on every parse pass, and clutter end-user devtools.

- Attach the existing custom error listener to the phantom-character
  re-parser that runs when the first parse produces no statements.
  The primary parser already calls removeErrorListeners() and adds
  the SqlBaseErrorListener so syntax errors land in `errors`; the
  recovery parser created when statements.length == 0 did neither,
  so its errors fell back to ANTLR's default ConsoleErrorListener
  (printing to console.error) and never reached the collected
  errors list. Mirror the primary parser's setup.

Signed-off-by: BobDu <i@bobdu.cc>
@cla-bot

cla-bot Bot commented May 28, 2026

Copy link
Copy Markdown

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant