vscode-rzk supports semantic highlighting via LSP. However, happy seems to fail on incorrect output.
On the other hand, lezer has error-recovery mechanism that lets it parse incorrect input, at least partially. This allows CodeMirror highlight partially incorrect code.
The parser package is here. The parser file will be generated upon installing the package.